{
  "name": "@ulu/frontend",
  "prefix": "ulu",
  "snippets": {
    "themes": [
      {
        "title": "Theme Switching",
        "description": "Using the `theme-light` and `theme-dark` classes to change the visual context of a section.",
        "html": "<div>\n  <button class=\"button\" data-ulu-theme-toggle='{ \"target\": \"#theme-demo-box\" }'>Toggle Theme</button>\n  \n  <div id=\"theme-demo-box\" class=\"demo-theme-box theme-light padding\">\n    <h3 class=\"h3\">Themed Content</h3>\n    <p>This section changes its colors based on the applied theme class.</p>\n    <button class=\"button\">Themed Button</button>\n  </div>\n</div>"
      },
      {
        "title": "Theme Inversion",
        "description": "The `theme-inverse` utility automatically applies the opposite theme (e.g., dark inside light) based on the current context.",
        "html": "<div class=\"demo-theme-box theme-light\">\n  <h3 class=\"h3\">Light Context</h3>\n  <div class=\"demo-theme-box theme-inverse padding margin-top\">\n    <p>This box is automatically inverted to the dark theme because its parent is light.</p>\n    <button class=\"button\">Inverted Button</button>\n  </div>\n</div>"
      }
    ],
    "accordion": [
      {
        "title": "Basic Accordion",
        "description": "A standard accordion stack with plus-to-minus icons and one-at-a-time behavior.",
        "html": "<div data-ulu-details-group='{ \"onlyOneOpen\": true }'>\n  <details class=\"accordion\">\n    <summary class=\"accordion__summary\">\n      What is your return policy?\n      <span class=\"accordion__icon\" aria-hidden=\"true\">\n        <span class=\"css-icon css-icon--plus-to-minus\"></span>\n      </span>\n    </summary>\n    <div class=\"accordion__content\">\n      <p>You can return any unused item within 30 days of purchase for a full refund.</p>\n    </div>\n  </details>\n  <details class=\"accordion\">\n    <summary class=\"accordion__summary\">\n      Do you offer customer support?\n      <span class=\"accordion__icon\" aria-hidden=\"true\">\n        <span class=\"css-icon css-icon--plus-to-minus\"></span>\n      </span>\n    </summary>\n    <div class=\"accordion__content\">\n      <p>Yes, our customer support team is available 24/7 via email, live chat, or phone.</p>\n    </div>\n  </details>\n</div>"
      },
      {
        "title": "Transparent Variant",
        "description": "The `accordion--transparent` modifier blends the component into the background.",
        "html": "<div data-ulu-details-group='{ \"onlyOneOpen\": true }'>\n  <details class=\"accordion accordion--transparent\">\n    <summary class=\"accordion__summary\">\n      Product Features\n      <span class=\"accordion__icon\" aria-hidden=\"true\">\n        <span class=\"css-icon css-icon--angle-right-to-down\"></span>\n      </span>\n    </summary>\n    <div class=\"accordion__content\">\n      <ul>\n        <li>Water-resistant design</li>\n        <li>24-hour battery life</li>\n      </ul>\n    </div>\n  </details>\n  <details class=\"accordion accordion--transparent\">\n    <summary class=\"accordion__summary\">\n      Warranty Information\n      <span class=\"accordion__icon\" aria-hidden=\"true\">\n        <span class=\"css-icon css-icon--angle-right-to-down\"></span>\n      </span>\n    </summary>\n    <div class=\"accordion__content\">\n      <p>This product comes with a one-year limited warranty covering manufacturer defects.</p>\n    </div>\n  </details>\n</div>"
      },
      {
        "title": "Borderless Variant",
        "description": "The `accordion--borderless` modifier removes external borders for an inline look.",
        "html": "<div data-ulu-details-group='{ \"onlyOneOpen\": true }'>\n  <details class=\"accordion accordion--borderless\">\n    <summary class=\"accordion__summary\">\n      Privacy Settings\n      <span class=\"accordion__icon\" aria-hidden=\"true\">\n        <span class=\"css-icon css-icon--angle-down-to-up\"></span>\n      </span>\n    </summary>\n    <div class=\"accordion__content\">\n      <p>Manage who can see your profile and activity status.</p>\n    </div>\n  </details>\n  <details class=\"accordion accordion--borderless\">\n    <summary class=\"accordion__summary\">\n      Cookie Policy\n      <span class=\"accordion__icon\" aria-hidden=\"true\">\n        <span class=\"css-icon css-icon--angle-down-to-up\"></span>\n      </span>\n    </summary>\n    <div class=\"accordion__content\">\n      <p>We use cookies to improve your browsing experience.</p>\n    </div>\n  </details>\n</div>"
      }
    ],
    "badge-stack": [
      {
        "title": "Basic Badge Stack",
        "description": "Overlapping text-based badges.",
        "html": "<ul class=\"badge-stack\">\n  <li class=\"badge-stack__item\">\n    <span class=\"badge badge--small\">\n      <span class=\"badge__inner\"><span>JD</span></span>\n    </span>\n  </li>\n  <li class=\"badge-stack__item\">\n    <span class=\"badge badge--small\">\n      <span class=\"badge__inner\"><span>MS</span></span>\n    </span>\n  </li>\n  <li class=\"badge-stack__item\">\n    <span class=\"badge badge--small\">\n      <span class=\"badge__inner\"><span>AJ</span></span>\n    </span>\n  </li>\n  <li class=\"badge-stack__item\">\n    <span class=\"badge badge--small\">\n      <span class=\"badge__inner\"><span>+3</span></span>\n    </span>\n  </li>\n</ul>"
      },
      {
        "title": "Clickable Image Stack",
        "description": "A stack of clickable user profiles with images.",
        "html": "<ul class=\"badge-stack\">\n  <li class=\"badge-stack__item\">\n    <a href=\"#\" class=\"badge badge--small badge--clickable\">\n      <div class=\"badge__inner\">\n        <img src=\"https://picsum.photos/id/64/100/100\" alt=\"User 1\">\n      </div>\n    </a>\n  </li>\n  <li class=\"badge-stack__item\">\n    <a href=\"#\" class=\"badge badge--small badge--clickable\">\n      <div class=\"badge__inner\">\n        <img src=\"https://picsum.photos/id/65/100/100\" alt=\"User 2\">\n      </div>\n    </a>\n  </li>\n  <li class=\"badge-stack__item\">\n    <a href=\"#\" class=\"badge badge--small badge--clickable\">\n      <div class=\"badge__inner\">\n        <img src=\"https://picsum.photos/id/66/100/100\" alt=\"User 3\">\n      </div>\n    </a>\n  </li>\n</ul>"
      }
    ],
    "badge": [
      {
        "title": "Basic Badge",
        "description": "A standard badge with text.",
        "html": "<div class=\"badge\">\n  <div class=\"badge__inner\">\n    <span>JS</span>\n  </div>\n</div>"
      },
      {
        "title": "Badge Sizes",
        "description": "Demonstrating small, default, and large badge variants.",
        "html": "<div style=\"display: flex; gap: 1rem; align-items: center;\">\n  <div class=\"badge badge--small\">\n    <div class=\"badge__inner\">\n      <span>SM</span>\n    </div>\n  </div>\n  <div class=\"badge\">\n    <div class=\"badge__inner\">\n      <span>MD</span>\n    </div>\n  </div>\n  <div class=\"badge badge--large\">\n    <div class=\"badge__inner\">\n      <span>LG</span>\n    </div>\n  </div>\n</div>"
      },
      {
        "title": "Clickable Badge with Image",
        "description": "A badge containing an image that scales on hover.",
        "html": "<a href=\"#\" class=\"badge\">\n  <div class=\"badge__inner\">\n    <img src=\"https://picsum.photos/id/64/300/300\" alt=\"Profile Image\">\n  </div>\n</a>"
      }
    ],
    "basic-hero": [
      {
        "title": "Basic Hero",
        "description": "A hero section with content and media side-by-side on larger screens.",
        "fullscreen": true,
        "html": "<div class=\"basic-hero\">\n  <div class=\"basic-hero__content container\">\n    <div class=\"basic-hero__content-main\">\n      <h1 class=\"h1\">Hero Title with Supporting Text</h1>\n      <p class=\"type-large\">This is a description that provides more context about the page or section.</p>\n    </div>\n    <div class=\"basic-hero__content-media\">\n      <img src=\"https://picsum.photos/id/10/400/300\" alt=\"Hero Media\">\n    </div>\n  </div>\n</div>"
      },
      {
        "title": "Centered Hero",
        "description": "A centered layout for the hero section.",
        "fullscreen": true,
        "html": "<div class=\"basic-hero basic-hero--center\">\n  <div class=\"basic-hero__content container\">\n    <div class=\"basic-hero__content-main\">\n      <h1 class=\"h1\">Centered Hero Title</h1>\n      <p class=\"type-large\">A brief and compelling reason to explore further.</p>\n    </div>\n    <div class=\"basic-hero__content-media\">\n      <img src=\"https://picsum.photos/id/20/400/300\" alt=\"Hero Media\">\n    </div>\n  </div>\n</div>"
      }
    ],
    "breadcrumb": [
      {
        "title": "Standard Breadcrumb",
        "description": "A typical breadcrumb trail for navigation.",
        "html": "<nav class=\"breadcrumb\" aria-label=\"Breadcrumb\">\n  <ol class=\"breadcrumb__list\">\n    <li class=\"breadcrumb__item\">\n      <a href=\"#\" class=\"breadcrumb__link\">Home</a>\n      <span class=\"breadcrumb__separator\" aria-hidden=\"true\">/</span>\n    </li>\n    <li class=\"breadcrumb__item\">\n      <a href=\"#\" class=\"breadcrumb__link\">Products</a>\n      <span class=\"breadcrumb__separator\" aria-hidden=\"true\">/</span>\n    </li>\n    <li class=\"breadcrumb__item\" aria-current=\"page\">\n      <span class=\"breadcrumb__current\">Electronic Gadgets</span>\n    </li>\n  </ol>\n</nav>"
      },
      {
        "title": "Truncated Breadcrumb",
        "description": "Items automatically truncate with an ellipsis if they exceed the `item-max-width`.",
        "html": "<nav class=\"breadcrumb\" aria-label=\"Breadcrumb\">\n  <ol class=\"breadcrumb__list\">\n    <li class=\"breadcrumb__item\">\n      <a href=\"#\" class=\"breadcrumb__link\">Home</a>\n      <span class=\"breadcrumb__separator\" aria-hidden=\"true\">/</span>\n    </li>\n    <li class=\"breadcrumb__item\">\n      <a href=\"#\" class=\"breadcrumb__link\">This is an extremely long page title that will be truncated by the breadcrumb component</a>\n      <span class=\"breadcrumb__separator\" aria-hidden=\"true\">/</span>\n    </li>\n    <li class=\"breadcrumb__item\" aria-current=\"page\">\n      <span class=\"breadcrumb__current\">Current Page</span>\n    </li>\n  </ol>\n</nav>"
      }
    ],
    "button-group": [
      {
        "title": "Standard Button Group",
        "description": "A group of buttons with a standard gap between them.",
        "html": "<div class=\"button-group\">\n  <button class=\"button\">Action 1</button>\n  <button class=\"button\">Action 2</button>\n  <button class=\"button\">Action 3</button>\n</div>"
      },
      {
        "title": "Joined Button Group",
        "description": "Buttons in this group are visually connected, with rounded corners only on the outer edges.",
        "html": "<div class=\"button-group button-group--joined\">\n  <button class=\"button\">Left</button>\n  <button class=\"button is-active\">Middle</button>\n  <button class=\"button\">Right</button>\n</div>"
      }
    ],
    "button-verbose": [
      {
        "title": "Standard Verbose Button",
        "description": "A button that includes a title and body text, often used for important links or pagination.",
        "html": "<a href=\"#\" class=\"button-verbose\">\n  <strong class=\"button-verbose__title\">Primary Action Title</strong>\n  <span class=\"button-verbose__body\">Additional descriptive text that explains the consequence of this action.</span>\n  <span class=\"button-verbose__icon\" aria-hidden=\"true\">\n    <span class=\"css-icon css-icon--angle-right\"></span>\n  </span>\n</a>"
      },
      {
        "title": "Full Width Verbose Button",
        "description": "The `button-verbose--full-width` modifier makes the button span the entire width of its container.",
        "html": "<a href=\"#\" class=\"button-verbose button-verbose--full-width\">\n  <strong class=\"button-verbose__title\">Next Chapter</strong>\n  <span class=\"button-verbose__body\">Continue reading about the architecture of the system.</span>\n  <span class=\"button-verbose__icon\" aria-hidden=\"true\">\n    <span class=\"css-icon css-icon--angle-right\"></span>\n  </span>\n</a>"
      }
    ],
    "button": [
      {
        "title": "Primary Button",
        "description": "The default button style for main actions.",
        "wrapperClass": "demo-theme-box demo-width-small",
        "html": "<button class=\"button\">Primary Button</button>"
      },
      {
        "title": "Secondary Button",
        "description": "An alternative style for less important actions.",
        "html": "<button class=\"button button--secondary\">Secondary Button</button>"
      },
      {
        "title": "Small Button",
        "description": "A smaller button variant.",
        "html": "<button class=\"button button--small\">Small Button</button>"
      },
      {
        "title": "Large Button",
        "description": "A larger button variant.",
        "html": "<button class=\"button button--large\">Large Button</button>"
      },
      {
        "title": "Left Aligned Button",
        "description": "A button with its content aligned to the left, useful when the button spans a larger width.",
        "html": "<button class=\"button button--left\" style=\"width: 100%;\">Left Aligned</button>"
      }
    ],
    "callout": [
      {
        "title": "Basic Callout",
        "description": "A simple container to highlight content.",
        "html": "<div class=\"callout\">\n  <p>This is a default callout. It provides a subtle background to distinguish this section from the rest of the content.</p>\n</div>"
      },
      {
        "title": "Status Callouts",
        "description": "Modifiers for different semantic states.",
        "html": "<div class=\"callout callout--info\">\n  <p><strong>Info:</strong> Use this for helpful tips or additional context.</p>\n</div>\n<div class=\"callout callout--success\">\n  <p><strong>Success:</strong> Use this to confirm a positive action or state.</p>\n</div>\n<div class=\"callout callout--warning\">\n  <p><strong>Warning:</strong> Use this to alert the user about potential issues.</p>\n</div>\n<div class=\"callout callout--danger\">\n  <p><strong>Danger:</strong> Use this for critical errors or irreversible actions.</p>\n</div>"
      },
      {
        "title": "Outline Callout",
        "description": "A variant with no background color.",
        "html": "<div class=\"callout callout--outline\">\n  <p>This is an outline callout. It uses a border without a background fill.</p>\n</div>"
      }
    ],
    "captioned-figure": [
      {
        "title": "Traditional Layout",
        "description": "A traditional figure layout with the caption appearing below the image.",
        "html": "<figure class=\"captioned-figure captioned-figure--traditional\">\n  <img src=\"https://picsum.photos/id/1018/600/400\" alt=\"Landscape photo\">\n  <figcaption class=\"captioned-figure__caption\">\n    A beautiful landscape captured during sunset.\n  </figcaption>\n</figure>"
      },
      {
        "title": "Bottom-Right Overlay",
        "description": "The caption is overlaid on the bottom-right of the image using absolute positioning.",
        "html": "<figure class=\"captioned-figure captioned-figure--bottom captioned-figure--right\">\n  <img src=\"https://picsum.photos/id/1015/600/400\" alt=\"Landscape photo\">\n  <figcaption class=\"captioned-figure__caption\">\n    Overlay Caption\n  </figcaption>\n</figure>"
      },
      {
        "title": "Bottom-Center Overlay",
        "description": "The caption is centered at the bottom of the image.",
        "html": "<figure class=\"captioned-figure captioned-figure--bottom captioned-figure--center\">\n  <img src=\"https://picsum.photos/id/1016/600/400\" alt=\"Landscape photo\">\n  <figcaption class=\"captioned-figure__caption\">\n    Centered Overlay\n  </figcaption>\n</figure>"
      }
    ],
    "card-grid": [
      {
        "title": "Standard Card Grid",
        "description": "A responsive grid that automatically fills rows with cards.",
        "html": "<div class=\"card-grid\">\n  <article class=\"card\">\n    <div class=\"card__body\"><div class=\"card__main\"><h3 class=\"card__title\">Card 1</h3><p>Content for the first card.</p></div></div>\n  </article>\n  <article class=\"card\">\n    <div class=\"card__body\"><div class=\"card__main\"><h3 class=\"card__title\">Card 2</h3><p>Content for the second card.</p></div></div>\n  </article>\n  <article class=\"card\">\n    <div class=\"card__body\"><div class=\"card__main\"><h3 class=\"card__title\">Card 3</h3><p>Content for the third card.</p></div></div>\n  </article>\n</div>"
      },
      {
        "title": "Compact Card Grid",
        "description": "A grid with smaller minimum column widths and tighter gaps.",
        "html": "<div class=\"card-grid card-grid--compact\">\n  <article class=\"card\">\n    <div class=\"card__body\"><div class=\"card__main\"><h3 class=\"card__title\">Compact 1</h3></div></div>\n  </article>\n  <article class=\"card\">\n    <div class=\"card__body\"><div class=\"card__main\"><h3 class=\"card__title\">Compact 2</h3></div></div>\n  </article>\n  <article class=\"card\">\n    <div class=\"card__body\"><div class=\"card__main\"><h3 class=\"card__title\">Compact 3</h3></div></div>\n  </article>\n  <article class=\"card\">\n    <div class=\"card__body\"><div class=\"card__main\"><h3 class=\"card__title\">Compact 4</h3></div></div>\n  </article>\n</div>"
      }
    ],
    "card": [
      {
        "title": "Basic Card",
        "description": "A standard card with a title, body content, and a footer.",
        "html": "<article class=\"card\">\n  <div class=\"card__body\">\n    <div class=\"card__main\">\n      <h3 class=\"card__title\">Card Title</h3>\n      <p>This is the main content of the card. It provides a brief summary or introduction to a more detailed resource.</p>\n    </div>\n  </div>\n  <div class=\"card__footer\">\n    <a href=\"#\" class=\"button button--small\">Read More</a>\n  </div>\n</article>"
      },
      {
        "title": "Card with Image",
        "description": "A card that includes a featured image at the top.",
        "html": "<article class=\"card\">\n  <div class=\"card__image\">\n    <img src=\"https://picsum.photos/id/1035/600/400\" alt=\"Card Image\">\n  </div>\n  <div class=\"card__body\">\n    <div class=\"card__main\">\n      <h3 class=\"card__title\">Featured Resource</h3>\n      <p>Discover interesting insights and helpful tips in our latest featured article.</p>\n    </div>\n  </div>\n</article>"
      },
      {
        "title": "Clickable Card (Proxy Click)",
        "description": "A card where the entire area is clickable, using a proxy click pattern for accessibility.",
        "html": "<article class=\"card\" data-ulu-proxy-click>\n  <div class=\"card__image\">\n    <img src=\"https://picsum.photos/id/1019/600/400\" alt=\"Card Image\">\n  </div>\n  <div class=\"card__body\">\n    <div class=\"card__main\">\n      <h3 class=\"card__title\">\n        <a href=\"#\" class=\"card__title-link\" data-ulu-proxy-click-source>Entire Card is Clickable</a>\n      </h3>\n      <p>This pattern allows the whole card to act as a link while maintaining a single, accessible anchor point.</p>\n    </div>\n  </div>\n</article>"
      }
    ],
    "counter-list": [
      {
        "title": "Numeric Counter List",
        "description": "A standard ordered list styled with custom counters.",
        "html": "<ol class=\"counter-list\">\n  <li>First item in the list.</li>\n  <li>Second item with more content to demonstrate how the counter stays aligned.</li>\n  <li>Third item.</li>\n</ol>"
      },
      {
        "title": "Alphabetical Counter List",
        "description": "Using the `counter-list--alphabetical` modifier to use letters instead of numbers.",
        "html": "<ol class=\"counter-list counter-list--alphabetical\">\n  <li>Analyze the requirements.</li>\n  <li>Design the solution.</li>\n  <li>Implement the features.</li>\n</ol>"
      },
      {
        "title": "Non-List Counter Elements",
        "description": "You can also use the `counter-list__item` class on non-list elements (like divs).",
        "html": "<div class=\"counter-list\">\n  <div class=\"counter-list__item\">This is a div acting as a counter item.</div>\n  <div class=\"counter-list__item\">Another div in the counter flow.</div>\n</div>"
      }
    ],
    "css-icon": [
      {
        "title": "Basic UI Icons",
        "description": "Simple geometric icons for common actions.",
        "html": "<div style=\"font-size: 2rem; display: flex; gap: 1rem;\">\n  <span class=\"css-icon css-icon--plus\"></span>\n  <span class=\"css-icon css-icon--minus\"></span>\n  <span class=\"css-icon css-icon--close\"></span>\n  <span class=\"css-icon css-icon--menu\"></span>\n</div>"
      },
      {
        "title": "Navigation Icons",
        "description": "Icons for directional navigation and disclosures.",
        "html": "<div style=\"font-size: 2rem; display: flex; gap: 1rem;\">\n  <span class=\"css-icon css-icon--angle-right\"></span>\n  <span class=\"css-icon css-icon--angle-down\"></span>\n  <span class=\"css-icon css-icon--arrow-right\"></span>\n  <span class=\"css-icon css-icon--arrow-left\"></span>\n</div>"
      },
      {
        "title": "Stroke Weight Variation",
        "description": "Use the `css-icon--stroke-large` modifier for a bolder appearance.",
        "html": "<div style=\"font-size: 2rem; display: flex; gap: 1rem;\">\n  <span class=\"css-icon css-icon--plus\"></span>\n  <span class=\"css-icon css-icon--plus css-icon--stroke-large\"></span>\n  <span class=\"css-icon css-icon--angle-right\"></span>\n  <span class=\"css-icon css-icon--angle-right css-icon--stroke-large\"></span>\n</div>"
      },
      {
        "title": "Transition Icons (Active State)",
        "description": "Some icons animate between states when the `is-active` class is applied.",
        "html": "<div style=\"font-size: 2rem; display: flex; gap: 2rem; align-items: center;\">\n  <div>\n    <span class=\"css-icon css-icon--plus-to-minus\"></span>\n    <span class=\"css-icon css-icon--plus-to-minus is-active\"></span>\n    <span class=\"type-small\" style=\"display: block;\">Plus-to-Minus</span>\n  </div>\n  <div>\n    <span class=\"css-icon css-icon--menu-to-close\"></span>\n    <span class=\"css-icon css-icon--menu-to-close is-active\"></span>\n    <span class=\"type-small\" style=\"display: block;\">Menu-to-Close</span>\n  </div>\n</div>"
      }
    ],
    "data-grid": [
      {
        "title": "Basic 12-Column Grid",
        "description": "A standard 12-column grid layout using the `data-grid` and `data-grid-item` attributes.",
        "html": "<div data-grid=\"columns: 12\">\n  <div data-grid-item=\"width: 6\">\n    <div style=\"background: #eee; padding: 1rem;\">6 Columns (50%)</div>\n  </div>\n  <div data-grid-item=\"width: 6\">\n    <div style=\"background: #eee; padding: 1rem;\">6 Columns (50%)</div>\n  </div>\n  <div data-grid-item=\"width: 4\">\n    <div style=\"background: #ddd; padding: 1rem;\">4 Columns</div>\n  </div>\n  <div data-grid-item=\"width: 4\">\n    <div style=\"background: #ddd; padding: 1rem;\">4 Columns</div>\n  </div>\n  <div data-grid-item=\"width: 4\">\n    <div style=\"background: #ddd; padding: 1rem;\">4 Columns</div>\n  </div>\n</div>"
      },
      {
        "title": "Grid with Offsets",
        "description": "Using the `offset` property to create gaps in the grid layout.",
        "html": "<div data-grid=\"columns: 12\">\n  <div data-grid-item=\"width: 4\">\n    <div style=\"background: #eee; padding: 1rem;\">Width: 4</div>\n  </div>\n  <div data-grid-item=\"width: 4, offset: 4\">\n    <div style=\"background: #eee; padding: 1rem;\">Width: 4, Offset: 4</div>\n  </div>\n</div>"
      },
      {
        "title": "Responsive Column Widths",
        "description": "Defining different widths for different breakpoints (e.g., `width` for mobile, `width-large` for desktop).",
        "html": "<div data-grid=\"columns: 12\">\n  <div data-grid-item=\"width: 12, width-large: 8\">\n    <div style=\"background: #eee; padding: 1rem;\">8 Columns on Desktop, Full Width on Mobile</div>\n  </div>\n  <div data-grid-item=\"width: 12, width-large: 4\">\n    <div style=\"background: #eee; padding: 1rem;\">4 Columns on Desktop, Full Width on Mobile</div>\n  </div>\n</div>"
      }
    ],
    "data-list": [
      {
        "title": "Basic Data List",
        "description": "A standard list layout for simple items.",
        "html": "<ul class=\"data-list\">\n  <li class=\"data-list__item\">\n    <div class=\"data-list__column\">\n      <strong>Item One Title</strong>\n    </div>\n  </li>\n  <li class=\"data-list__item\">\n    <div class=\"data-list__column\">\n      <strong>Item Two Title</strong>\n    </div>\n  </li>\n</ul>"
      },
      {
        "title": "Flanked Layout (Prefixed + Suffixed)",
        "description": "Automatically aligns an icon at the start and an action at the end.",
        "html": "<ul class=\"data-list data-list--prefixed data-list--suffixed\">\n  <li class=\"data-list__item\">\n    <div class=\"data-list__column\" aria-hidden=\"true\">📄</div>\n    <div class=\"data-list__column\"><strong>Report_Q1.pdf</strong></div>\n    <div class=\"data-list__column\"><button class=\"button button--small\">Download</button></div>\n  </li>\n  <li class=\"data-list__item\">\n    <div class=\"data-list__column\" aria-hidden=\"true\">📊</div>\n    <div class=\"data-list__column\"><strong>Analytics_Data.xlsx</strong></div>\n    <div class=\"data-list__column\"><button class=\"button button--small\">Download</button></div>\n  </li>\n</ul>"
      },
      {
        "title": "Interactive Clickable Rows",
        "description": "Entire rows are interactive, using proxy-click logic to route to a primary link.",
        "html": "<ul class=\"data-list data-list--clickable\">\n  <li class=\"data-list__item\" data-ulu-proxy-click>\n    <div class=\"data-list__column\">\n      <a href=\"#\" data-ulu-proxy-click-source><strong>Important Update: New Security Features</strong></a>\n    </div>\n    <div class=\"data-list__column type-small\">2 hours ago</div>\n  </li>\n  <li class=\"data-list__item\" data-ulu-proxy-click>\n    <div class=\"data-list__column\">\n      <a href=\"#\" data-ulu-proxy-click-source><strong>Your Weekly Activity Summary</strong></a>\n    </div>\n    <div class=\"data-list__column type-small\">Yesterday</div>\n  </li>\n</ul>"
      },
      {
        "title": "Custom Grid with Spanning",
        "description": "Advanced usage using inline variables and column spanning.",
        "html": "<ul class=\"data-list\" style=\"--ulu-data-list-columns: auto 1fr auto auto;\">\n  <li class=\"data-list__item\">\n    <div class=\"data-list__column\">ID: 101</div>\n    <div class=\"data-list__column data-list__column--span-2\">\n      <strong>Product Name A</strong>\n      <span class=\"type-small\">In Stock</span>\n    </div>\n    <div class=\"data-list__column\">$19.99</div>\n  </li>\n</ul>"
      }
    ],
    "data-table": [
      {
        "title": "Standard Data Table",
        "description": "A native HTML table styled for data display, including headers, footers, and a caption.",
        "html": "<table class=\"data-table\">\n  <caption>Quarterly Performance Summary</caption>\n  <thead>\n    <tr>\n      <th>Category</th>\n      <th>Previous Q</th>\n      <th>Current Q</th>\n      <th>Change</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <td>Product Sales</td>\n      <td>$45,000</td>\n      <td>$52,000</td>\n      <td style=\"color: green;\">+15%</td>\n    </tr>\n    <tr>\n      <td>Service Fees</td>\n      <td>$12,000</td>\n      <td>$11,500</td>\n      <td style=\"color: red;\">-4%</td>\n    </tr>\n  </tbody>\n  <tfoot>\n    <tr>\n      <td>Total</td>\n      <td>$57,000</td>\n      <td>$63,500</td>\n      <td>+11%</td>\n    </tr>\n  </tfoot>\n</table>"
      },
      {
        "title": "Striped Table",
        "description": "Using the `data-table--striped` modifier to alternate background colors for rows.",
        "html": "<table class=\"data-table data-table--striped\">\n  <thead>\n    <tr>\n      <th>Employee Name</th>\n      <th>Department</th>\n      <th>Status</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <td>Jane Doe</td>\n      <td>Engineering</td>\n      <td>Active</td>\n    </tr>\n    <tr>\n      <td>John Smith</td>\n      <td>Marketing</td>\n      <td>On Leave</td>\n    </tr>\n    <tr>\n      <td>Alice Johnson</td>\n      <td>Product</td>\n      <td>Active</td>\n    </tr>\n  </tbody>\n</table>"
      },
      {
        "title": "Large First Column",
        "description": "The `data-table--large-first` modifier ensures the first column has a larger minimum width, useful for row labels.",
        "html": "<table class=\"data-table data-table--large-first\">\n  <thead>\n    <tr>\n      <th>Specification Feature Description</th>\n      <th>Value</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <td>Memory (RAM)</td>\n      <td>32GB DDR5</td>\n    </tr>\n    <tr>\n      <td>Processor (CPU)</td>\n      <td>8-Core 4.2GHz</td>\n    </tr>\n  </tbody>\n</table>"
      }
    ],
    "definition-list": [
      {
        "title": "Basic Stacked Layout",
        "description": "The default layout, which stacks terms and their definitions vertically.",
        "html": "<dl class=\"definition-list\">\n  <div>\n    <dt>Application Version</dt>\n    <dd>v2.4.5 (Stable)</dd>\n  </div>\n  <div>\n    <dt>Release Date</dt>\n    <dd>October 12, 2024</dd>\n  </div>\n</dl>"
      },
      {
        "title": "Table Layout",
        "description": "Using the `definition-list--table` modifier to create a two-column grid on larger screens.",
        "html": "<dl class=\"definition-list definition-list--table\">\n  <div>\n    <dt>Project Owner</dt>\n    <dd>Jane Doe</dd>\n  </div>\n  <div>\n    <dt>Primary Language</dt>\n    <dd>TypeScript (with Sass for styling)</dd>\n  </div>\n</dl>"
      },
      {
        "title": "Inline-All Layout",
        "description": "Using the `definition-list--inline-all` modifier to place terms and definitions on the same line.",
        "html": "<dl class=\"definition-list definition-list--inline-all\">\n  <div>\n    <dt>Status</dt>\n    <dd>Connected</dd>\n  </div>\n  <div>\n    <dt>Uptime</dt>\n    <dd>99.9%</dd>\n  </div>\n</dl>"
      },
      {
        "title": "Separated Layout",
        "description": "Using the `definition-list--separated` and `definition-list--separated-first` modifiers to add borders between items.",
        "html": "<dl class=\"definition-list definition-list--separated definition-list--separated-first\">\n  <div>\n    <dt>Support Tier</dt>\n    <dd>Premium (24/7)</dd>\n  </div>\n  <div>\n    <dt>Service SLA</dt>\n    <dd>99.99% Availability Guaranteed</dd>\n  </div>\n</dl>"
      }
    ],
    "flipcard": [
      {
        "title": "Basic Flipcard",
        "description": "A text-only flipcard that reveals more information when clicked.",
        "html": "<div class=\"flipcard\" data-ulu-flipcard>\n  <div class=\"flipcard__front\">\n    <div class=\"flipcard__front-content\">\n      <h3 class=\"h4\">Technical Strategy</h3>\n      <span class=\"flipcard__icon\" aria-hidden=\"true\">+</span>\n    </div>\n  </div>\n  <div class=\"flipcard__back\">\n    <div class=\"flipcard__back-content\">\n      <p>Our technical strategy focuses on modularity, performance, and accessibility across all platforms.</p>\n      <button class=\"button button--small\" data-ulu-flipcard-close>Close</button>\n    </div>\n  </div>\n</div>"
      },
      {
        "title": "Flipcard with Image",
        "description": "A flipcard using the `flipcard--w-image` modifier to include a background image on the front.",
        "html": "<div class=\"flipcard flipcard--w-image\" data-ulu-flipcard>\n  <div class=\"flipcard__front\">\n    <div class=\"flipcard__front-image\">\n      <img src=\"https://picsum.photos/id/1025/400/400\" alt=\"Front Image\">\n    </div>\n    <div class=\"flipcard__front-content\">\n      <h3 class=\"h4\">Project Alpha</h3>\n      <span class=\"flipcard__icon\" aria-hidden=\"true\">+</span>\n    </div>\n  </div>\n  <div class=\"flipcard__back\">\n    <div class=\"flipcard__back-content\">\n      <p>Project Alpha is our flagship initiative to redefine the user experience for complex data dashboards.</p>\n      <button class=\"button button--small\" data-ulu-flipcard-close>Close</button>\n    </div>\n  </div>\n</div>"
      }
    ],
    "headline-label": [
      {
        "title": "Basic Headline Label",
        "description": "A small, bold label placed above a headline to categorize content.",
        "html": "<h2 class=\"h2\">\n  <span class=\"headline-label\">Case Study<span class=\"hidden-visually\">:</span></span>\n  Modernizing Legacy Infrastructure\n</h2>\n<p>This case study explores the challenges and successes of a multi-year digital transformation project.</p>"
      }
    ],
    "hero": [
      {
        "title": "Split Hero (Graphic Left)",
        "description": "A hero section where the graphic and content are split side-by-side.",
        "html": "<section class=\"hero hero--split hero--left\">\n  <div class=\"hero__graphic\">\n    <img src=\"https://picsum.photos/id/102/1200/800\" class=\"hero__graphic-media\" alt=\"Hero Background\">\n  </div>\n  <div class=\"hero__content\">\n    <div class=\"hero__content-container container\">\n      <div class=\"hero__content-inner\">\n        <h1 class=\"h1\">Innovate Your Workflow</h1>\n        <p class=\"type-large\">Discover the tools and strategies that drive modern software development.</p>\n        <div class=\"button-group\">\n          <a href=\"#\" class=\"button\">Get Started</a>\n          <a href=\"#\" class=\"button button--outline\">Learn More</a>\n        </div>\n      </div>\n    </div>\n  </div>\n</section>"
      },
      {
        "title": "Overlay Hero",
        "description": "A hero section with the content overlaid on a full-width background graphic.",
        "html": "<section class=\"hero hero--overlay\">\n  <div class=\"hero__graphic\">\n    <img src=\"https://picsum.photos/id/103/1200/800\" class=\"hero__graphic-media\" alt=\"Hero Background\">\n  </div>\n  <div class=\"hero__content\">\n    <div class=\"hero__content-container container\">\n      <div class=\"hero__content-inner\" style=\"background: rgba(255,255,255,0.8); padding: 2rem; border-radius: 8px;\">\n        <h1 class=\"h1\">Full Screen Impact</h1>\n        <p class=\"type-large\">Create a bold first impression with a full-width immersive experience.</p>\n        <a href=\"#\" class=\"button\">Call to Action</a>\n      </div>\n    </div>\n  </div>\n</section>"
      }
    ],
    "image-grid": [
      {
        "title": "Basic Image Grid",
        "description": "A flex-based grid for displaying a collection of images that automatically reflows.",
        "html": "<ul class=\"image-grid\">\n  <li class=\"image-grid__item\">\n    <img src=\"https://picsum.photos/id/10/400/300\" alt=\"Image 1\">\n  </li>\n  <li class=\"image-grid__item\">\n    <img src=\"https://picsum.photos/id/11/400/300\" alt=\"Image 2\">\n  </li>\n  <li class=\"image-grid__item\">\n    <img src=\"https://picsum.photos/id/12/400/300\" alt=\"Image 3\">\n  </li>\n  <li class=\"image-grid__item\">\n    <img src=\"https://picsum.photos/id/13/400/300\" alt=\"Image 4\">\n  </li>\n  <li class=\"image-grid__item\">\n    <img src=\"https://picsum.photos/id/14/400/300\" alt=\"Image 5\">\n  </li>\n  <li class=\"image-grid__item\">\n    <img src=\"https://picsum.photos/id/15/400/300\" alt=\"Image 6\">\n  </li>\n</ul>"
      }
    ],
    "input-group": [
      {
        "title": "Search Input (Joined)",
        "description": "A search bar where the input and button are visually connected with shared borders.",
        "html": "<div class=\"form-theme\">\n  <div class=\"input-group input-group--joined\">\n    <div class=\"input-group__item input-group__item--field\">\n      <input type=\"text\" class=\"input-group__input\" placeholder=\"Search...\">\n    </div>\n    <div class=\"input-group__item\">\n      <button class=\"button input-group__button\">Search</button>\n    </div>\n  </div>\n</div>"
      },
      {
        "title": "Input with Currency Cue",
        "description": "Using a cue item to provide context, like a currency symbol.",
        "html": "<div class=\"form-theme\">\n  <div class=\"input-group input-group--joined\">\n    <div class=\"input-group__item input-group__item--cue\">$</div>\n    <div class=\"input-group__item input-group__item--field\">\n      <input type=\"number\" class=\"input-group__input\" placeholder=\"0.00\">\n    </div>\n  </div>\n</div>"
      },
      {
        "title": "Gapped Layout",
        "description": "The default layout with a small gap between the input and the action button.",
        "html": "<div class=\"form-theme\">\n  <div class=\"input-group\">\n    <div class=\"input-group__item input-group__item--field\">\n      <input type=\"text\" class=\"input-group__input\" placeholder=\"Enter coupon code\">\n    </div>\n    <div class=\"input-group__item\">\n      <button class=\"button button--outline input-group__button\">Apply</button>\n    </div>\n  </div>\n</div>"
      }
    ],
    "list-inline": [
      {
        "title": "Basic Inline List",
        "description": "A pipe-separated list of items displayed in a single line.",
        "html": "<ul class=\"list-inline\">\n  <li>Privacy Policy</li>\n  <li>Terms of Service</li>\n  <li>Contact Us</li>\n  <li>Support</li>\n</ul>"
      },
      {
        "title": "Large Gap Inline List",
        "description": "Using the `list-inline--large-gap` modifier for increased spacing between items.",
        "html": "<ul class=\"list-inline list-inline--large-gap\">\n  <li>Project Alpha</li>\n  <li>Project Beta</li>\n  <li>Project Gamma</li>\n</ul>"
      }
    ],
    "list-lines": [
      {
        "title": "Basic List Lines",
        "description": "A list with horizontal rules between each item.",
        "html": "<ul class=\"list-lines\">\n  <li>First item in the list</li>\n  <li>Second item with more content</li>\n  <li>Third item</li>\n</ul>"
      },
      {
        "title": "Dense List Lines",
        "description": "Using the `list-lines--dense` modifier for tighter vertical spacing.",
        "html": "<ul class=\"list-lines list-lines--dense\">\n  <li>Compact item one</li>\n  <li>Compact item two</li>\n  <li>Compact item three</li>\n</ul>"
      }
    ],
    "menu-stack": [
      {
        "title": "Basic Navigation Menu",
        "description": "A standard vertical list of links, often used for sidebars or secondary navigation.",
        "html": "<nav class=\"menu-stack\">\n  <h3 class=\"menu-stack__label\">Main Navigation</h3>\n  <ul class=\"menu-stack__list\">\n    <li class=\"menu-stack__item\">\n      <a href=\"#\" class=\"menu-stack__link is-active\">Dashboard</a>\n    </li>\n    <li class=\"menu-stack__item\">\n      <a href=\"#\" class=\"menu-stack__link\">Projects</a>\n    </li>\n    <li class=\"menu-stack__item\">\n      <a href=\"#\" class=\"menu-stack__link\">Tasks</a>\n    </li>\n  </ul>\n</nav>"
      },
      {
        "title": "Collapsible Sub-Menu",
        "description": "Using `details` to create a collapsible group within the menu stack.",
        "html": "<div class=\"menu-stack\">\n  <ul class=\"menu-stack__list\">\n    <li class=\"menu-stack__item\">\n      <details class=\"menu-stack__collapsible\">\n        <summary class=\"menu-stack__toggle\">\n          <span class=\"menu-stack__link-text\">Organization</span>\n          <span class=\"menu-stack__toggle-icon css-icon css-icon--angle-down-to-up\" aria-hidden=\"true\"></span>\n        </summary>\n        <div class=\"menu-stack__collapsible-content\">\n          <ul class=\"menu-stack__list\">\n            <li class=\"menu-stack__item\"><a class=\"menu-stack__link\" href=\"#\">Team Members</a></li>\n            <li class=\"menu-stack__item\"><a class=\"menu-stack__link\" href=\"#\">Permissions</a></li>\n          </ul>\n        </div>\n      </details>\n    </li>\n  </ul>\n</div>"
      },
      {
        "title": "Selectable (Checkbox) Menu",
        "description": "A menu containing checkboxes, useful for filtering or selection lists.",
        "html": "<div class=\"menu-stack form-theme\">\n  <h3 class=\"menu-stack__label\">Filter by Status</h3>\n  <ul class=\"menu-stack__list\">\n    <li class=\"menu-stack__item\">\n      <div class=\"menu-stack__selectable\">\n        <input type=\"checkbox\" id=\"status-1\" checked>\n        <label for=\"status-1\">Active</label>\n      </div>\n    </li>\n    <li class=\"menu-stack__item\">\n      <div class=\"menu-stack__selectable\">\n        <input type=\"checkbox\" id=\"status-2\">\n        <label for=\"status-2\">Pending</label>\n      </div>\n    </li>\n    <li class=\"menu-stack__item\">\n      <div class=\"menu-stack__selectable\">\n        <input type=\"checkbox\" id=\"status-3\">\n        <label for=\"status-3\">Completed</label>\n      </div>\n    </li>\n  </ul>\n</div>"
      }
    ],
    "modal": [
      {
        "title": "Basic Centered Modal",
        "description": "The default centered modal configuration, triggered by a button.",
        "html": "<button class=\"button\" data-ulu-dialog-trigger=\"modal-example-center\">Open Modal</button>\n\n<div id=\"modal-example-center\" \n     data-ulu-modal-builder='{ \"title\": \"Information\" }' \n     hidden>\n  <p>This is a standard centered modal window. It can contain any HTML content, including text, images, or forms.</p>\n  <div class=\"button-group\">\n    <button class=\"button\" data-ulu-dialog-close>Confirm</button>\n    <button class=\"button button--outline\" data-ulu-dialog-close>Cancel</button>\n  </div>\n</div>"
      },
      {
        "title": "Right Sidebar Modal",
        "description": "Using the position: 'right' option to create a sidebar-style modal.",
        "html": "<button class=\"button\" data-ulu-dialog-trigger=\"modal-example-sidebar\">Open Sidebar</button>\n\n<div id=\"modal-example-sidebar\" \n     data-ulu-modal-builder='{ \"title\": \"Settings\", \"position\": \"right\" }' \n     hidden>\n  <div class=\"menu-stack\">\n    <ul class=\"menu-stack__list\">\n      <li class=\"menu-stack__item\"><a href=\"#\" class=\"menu-stack__link\">Notification Settings</a></li>\n      <li class=\"menu-stack__item\"><a href=\"#\" class=\"menu-stack__link\">Security Options</a></li>\n      <li class=\"menu-stack__item\"><a href=\"#\" class=\"menu-stack__link\">Account Data</a></li>\n    </ul>\n  </div>\n</div>"
      },
      {
        "title": "Fullscreen Modal",
        "description": "A modal that fills the entire viewport, useful for immersive content or complex tasks.",
        "html": "<button class=\"button\" data-ulu-dialog-trigger=\"modal-example-fullscreen\">View Fullscreen</button>\n\n<div id=\"modal-example-fullscreen\" \n     data-ulu-modal-builder='{ \"title\": \"Editor Mode\", \"size\": \"fullscreen\" }' \n     hidden>\n  <div class=\"container\">\n    <h2 class=\"h2\">Comprehensive Overview</h2>\n    <p>This view allows for focused interaction with complex data or large media assets without the distraction of the underlying page.</p>\n    <button class=\"button\" data-ulu-dialog-close>Exit Fullscreen</button>\n  </div>\n</div>"
      }
    ],
    "nav-strip": [
      {
        "title": "Basic Nav Strip",
        "description": "A simple horizontal list of navigation links with an active state underline.",
        "html": "<nav class=\"nav-strip\">\n  <ul class=\"nav-strip__list\">\n    <li class=\"nav-strip__item\"><a href=\"#\" class=\"nav-strip__link\">Overview</a></li>\n    <li class=\"nav-strip__item\"><a href=\"#\" class=\"nav-strip__link is-active\">Features</a></li>\n    <li class=\"nav-strip__item\"><a href=\"#\" class=\"nav-strip__link\">Pricing</a></li>\n    <li class=\"nav-strip__item\"><a href=\"#\" class=\"nav-strip__link\">Support</a></li>\n  </ul>\n</nav>"
      },
      {
        "title": "Nav Strip with Base Rule",
        "description": "Using the `nav-strip--rule` modifier to add a continuous horizontal line beneath the navigation items.",
        "html": "<nav class=\"nav-strip nav-strip--rule\">\n  <ul class=\"nav-strip__list\">\n    <li class=\"nav-strip__item\"><a href=\"#\" class=\"nav-strip__link is-active\">Dashboard</a></li>\n    <li class=\"nav-strip__item\"><a href=\"#\" class=\"nav-strip__link\">Settings</a></li>\n    <li class=\"nav-strip__item\"><a href=\"#\" class=\"nav-strip__link\">Analytics</a></li>\n  </ul>\n</nav>"
      },
      {
        "title": "Automatic (Markup Only) Nav Strip",
        "description": "The `nav-strip--auto` modifier applies styling to standard `ul/li/a` tags without requiring component-specific classes on every element.",
        "html": "<div class=\"nav-strip nav-strip--auto\">\n  <ul>\n    <li><a href=\"#\" class=\"is-active\">Recent</a></li>\n    <li><a href=\"#\">Popular</a></li>\n    <li><a href=\"#\">Trending</a></li>\n  </ul>\n</div>"
      }
    ],
    "overlay-section": [
      {
        "title": "Basic Overlay Section",
        "description": "A section with a full-bleed background and centered content box.",
        "html": "<section class=\"overlay-section\">\n  <div class=\"overlay-section__background\">\n    <img src=\"https://picsum.photos/id/101/1200/800\" alt=\"Background Image\">\n  </div>\n  <div class=\"overlay-section__content\">\n    <h2 class=\"h2\">Centered Content</h2>\n    <p>This content box is centered over the background image, providing a clear focal point for messaging.</p>\n    <a href=\"#\" class=\"button\">Explore More</a>\n  </div>\n</section>"
      },
      {
        "title": "Right-Aligned Overlay",
        "description": "Using the `overlay-section--right` modifier to position the content box on the right side of the section.",
        "html": "<section class=\"overlay-section overlay-section--right\">\n  <div class=\"overlay-section__background\">\n    <img src=\"https://picsum.photos/id/104/1200/800\" alt=\"Background Image\">\n  </div>\n  <div class=\"overlay-section__content\">\n    <h2 class=\"h2\">Side Aligned</h2>\n    <p>Positioning content to the side can help prevent obscuring important details in the background image.</p>\n    <a href=\"#\" class=\"button\">Contact Us</a>\n  </div>\n</section>"
      }
    ],
    "panel": [
      {
        "title": "Standard Panel",
        "description": "A structured container with a distinct header, body, and footer.",
        "html": "<div class=\"panel\">\n  <div class=\"panel__row panel__row--header\">\n    <h3 class=\"h4\">Account Overview</h3>\n  </div>\n  <div class=\"panel__row\">\n    <p>Your subscription is active and will renew on November 15th. You have 3 active projects and 12 collaborators.</p>\n  </div>\n  <div class=\"panel__row panel__row--footer\">\n    <a href=\"#\" class=\"button button--small\">Manage Subscription</a>\n  </div>\n</div>"
      },
      {
        "title": "Transparent Panel with Separators",
        "description": "Using the `panel--transparent` modifier for a seamless look, with `panel__row--separator-top` for visual division.",
        "html": "<div class=\"panel panel--transparent\">\n  <div class=\"panel__row panel__row--header\">\n    <h3 class=\"h4\">System Status</h3>\n  </div>\n  <div class=\"panel__row\">\n    <p>All systems are operational. No active incidents reported in the last 24 hours.</p>\n  </div>\n  <div class=\"panel__row panel__row--separator-top\">\n    <p class=\"type-small\">Last checked: 5 minutes ago</p>\n  </div>\n</div>"
      }
    ],
    "popover": [
      {
        "title": "Basic Popover",
        "description": "A standard popover that appears near a trigger element, including a pointer arrow.",
        "html": "<div style=\"padding: 4rem 0;\">\n  <button class=\"button\" data-ulu-popover-trigger>Toggle Popover</button>\n  <div class=\"popover\" data-ulu-popover-content>\n    <div class=\"popover__inner\">\n      <p>This is the content of the popover. It can contain text, links, or other small UI elements.</p>\n    </div>\n    <span class=\"popover__arrow\" data-ulu-popover-arrow></span>\n  </div>\n</div>"
      },
      {
        "title": "Popover with Footer",
        "description": "Using the `popover__footer` element to add actions or metadata at the bottom.",
        "html": "<div style=\"padding: 4rem 0;\">\n  <button class=\"button\" data-ulu-popover-trigger>Open Menu</button>\n  <div class=\"popover\" data-ulu-popover-content>\n    <div class=\"popover__header\">Options</div>\n    <div class=\"popover__inner\">\n      <ul class=\"list-lines list-lines--dense\">\n        <li>Notification Settings</li>\n        <li>Privacy Controls</li>\n      </ul>\n    </div>\n    <div class=\"popover__footer\">\n      <a href=\"#\" class=\"type-small\">Learn More</a>\n    </div>\n    <span class=\"popover__arrow\" data-ulu-popover-arrow></span>\n  </div>\n</div>"
      },
      {
        "title": "Tooltip Modifier",
        "description": "The `popover--tooltip` modifier creates a smaller, non-interactive overlay typically used for labels.",
        "html": "<div style=\"padding: 2rem 0;\">\n  <button class=\"button\" data-ulu-popover-trigger='{ \"floating\": { \"placement\": \"top\" }, \"trigger\": \"hover\" }'>Hover Me</button>\n  <div class=\"popover popover--tooltip\" data-ulu-popover-content>\n    <div class=\"popover__inner\">\n      Helpful hint about this action\n    </div>\n    <span class=\"popover__arrow\" data-ulu-popover-arrow></span>\n  </div>\n</div>"
      }
    ],
    "progress-bar": [
      {
        "title": "Basic Progress Bar",
        "description": "A standard progress bar with a label and percentage value.",
        "html": "<div class=\"progress-bar\">\n  <div class=\"progress-bar__header\">\n    <strong class=\"progress-bar__label\">System Update</strong>\n    <span class=\"progress-bar__value\">65%</span>\n  </div>\n  <div class=\"progress-bar__track\">\n    <div class=\"progress-bar__bar\" style=\"width: 65%;\"></div>\n  </div>\n</div>"
      },
      {
        "title": "Indeterminate Loader",
        "description": "An animated bar for states where progress is unknown, using the `progress-bar--indeterminate` modifier.",
        "html": "<div class=\"progress-bar progress-bar--loader progress-bar--indeterminate\">\n  <div class=\"progress-bar__track\">\n    <div class=\"progress-bar__bar\"></div>\n  </div>\n</div>"
      },
      {
        "title": "Semantic Status Bars",
        "description": "Using status modifiers like `progress-bar--success` and `progress-bar--danger`.",
        "html": "<div class=\"progress-bar progress-bar--success\">\n  <div class=\"progress-bar__header\"><strong class=\"progress-bar__label\">Setup Complete</strong></div>\n  <div class=\"progress-bar__track\">\n    <div class=\"progress-bar__bar\" style=\"width: 100%;\"></div>\n  </div>\n</div>\n<div class=\"progress-bar progress-bar--danger\">\n  <div class=\"progress-bar__header\"><strong class=\"progress-bar__label\">Storage Low</strong></div>\n  <div class=\"progress-bar__track\">\n    <div class=\"progress-bar__bar\" style=\"width: 92%;\"></div>\n  </div>\n</div>"
      }
    ],
    "progress-circle": [
      {
        "title": "Basic Donut Chart",
        "description": "A circular progress indicator using an SVG donut chart structure.",
        "html": "<div class=\"progress-circle\">\n  <div class=\"progress-circle__chart\">\n    <svg class=\"progress-circle__chart-svg\" viewBox=\"0 0 32 32\">\n      <circle class=\"progress-circle__chart-track\" cx=\"16\" cy=\"16\" r=\"11\"></circle>\n      <circle class=\"progress-circle__chart-pie\" cx=\"16\" cy=\"16\" r=\"11\" style=\"stroke-dasharray: 65 100;\"></circle>\n      <circle class=\"progress-circle__chart-mask\" cx=\"16\" cy=\"16\"></circle>\n    </svg>\n    <strong class=\"progress-circle__chart-value\">65%</strong>\n  </div>\n</div>"
      },
      {
        "title": "Pie Chart Variant",
        "description": "Using the `progress-circle--pie` modifier to create a solid circular progress indicator.",
        "html": "<div class=\"progress-circle progress-circle--pie\">\n  <div class=\"progress-circle__chart\">\n    <svg class=\"progress-circle__chart-svg\" viewBox=\"0 0 32 32\">\n      <circle class=\"progress-circle__chart-track\" cx=\"16\" cy=\"16\" r=\"16\"></circle>\n      <circle class=\"progress-circle__chart-pie\" cx=\"16\" cy=\"16\" r=\"16\" style=\"stroke-dasharray: 40 100;\"></circle>\n      <circle class=\"progress-circle__chart-mask\" cx=\"16\" cy=\"16\" r=\"16\"></circle>\n    </svg>\n    <strong class=\"progress-circle__chart-value\" style=\"color: white;\">40%</strong>\n  </div>\n</div>"
      },
      {
        "title": "Small Progress Circle",
        "description": "Using the `progress-circle--small` modifier for space-constrained layouts.",
        "html": "<div class=\"progress-circle progress-circle--small\">\n  <div class=\"progress-circle__chart\">\n    <svg class=\"progress-circle__chart-svg\" viewBox=\"0 0 32 32\">\n      <circle class=\"progress-circle__chart-track\" cx=\"16\" cy=\"16\" r=\"9.5\"></circle>\n      <circle class=\"progress-circle__chart-pie\" cx=\"16\" cy=\"16\" r=\"9.5\" style=\"stroke-dasharray: 85 100;\"></circle>\n      <circle class=\"progress-circle__chart-mask\" cx=\"16\" cy=\"16\"></circle>\n    </svg>\n  </div>\n  <div class=\"progress-circle__value\">85% Complete</div>\n</div>"
      }
    ],
    "pull-quote": [
      {
        "title": "Standard Pull Quote",
        "description": "A centered pull quote with an optional author image, name, and title.",
        "html": "<figure class=\"pull-quote\">\n  <blockquote class=\"pull-quote__body type-large-x\">\n    <p>The best way to predict the future is to create it. Design systems provide the foundation for that creation.</p>\n  </blockquote>\n  <figcaption class=\"pull-quote__author\">\n    <div class=\"pull-quote__author-image\">\n      <div class=\"badge badge--small\">\n        <div class=\"badge__inner\">\n          <img src=\"https://picsum.photos/id/64/100/100\" alt=\"Jane Doe\">\n        </div>\n      </div>\n    </div>\n    <strong class=\"pull-quote__author-name\">Jane Doe</strong>\n    <span class=\"pull-quote__author-title\">Principal Design Architect</span>\n  </figcaption>\n</figure>"
      }
    ],
    "rail": [
      {
        "title": "Basic Rail",
        "description": "A flexible horizontal container with the last item pushed to the right using `rail__item--pull`.",
        "html": "<div class=\"rail\">\n  <div class=\"rail__item\">\n    <h3 class=\"h4 no-margin\">Section Title</h3>\n  </div>\n  <div class=\"rail__item\"><span class=\"tag\">Active</span></div>\n  <div class=\"rail__item rail__item--pull\">\n    <button class=\"button button--small\">Action</button>\n  </div>\n</div>"
      },
      {
        "title": "Justified Toolbar",
        "description": "Using the `rail--justified` modifier to space items out across the full width.",
        "html": "<div class=\"rail rail--justified\">\n  <div class=\"rail__item\">\n    <strong>Showing 1-10 of 124 results</strong>\n  </div>\n  <div class=\"rail__item\">\n    <div class=\"button-group\">\n      <button class=\"button button--small button--outline\">Previous</button>\n      <button class=\"button button--small button--outline\">Next</button>\n    </div>\n  </div>\n</div>"
      },
      {
        "title": "Rail with Separator",
        "description": "Using the `rail__item--separator` modifier to add a vertical divider before an item.",
        "html": "<div class=\"rail\">\n  <div class=\"rail__item\">Account Settings</div>\n  <div class=\"rail__item\">Security</div>\n  <div class=\"rail__item rail__item--separator\">\n    <a href=\"#\" class=\"color-danger\">Log Out</a>\n  </div>\n</div>"
      }
    ],
    "ratio-box": [
      {
        "title": "Default Ratio (4/3)",
        "description": "A standard 4/3 aspect ratio box, useful for traditional photography or balanced content.",
        "html": "<div class=\"ratio-box\" style=\"max-width: 400px;\">\n  <img src=\"https://picsum.photos/id/1011/400/300\" class=\"ratio-box__content\" alt=\"4/3 Image\">\n</div>"
      },
      {
        "title": "Widescreen Ratio (16/9)",
        "description": "Using the `ratio-box--16x9` modifier for video content or wide banners.",
        "html": "<div class=\"ratio-box ratio-box--16x9\" style=\"max-width: 600px;\">\n  <img src=\"https://picsum.photos/id/1015/600/337\" class=\"ratio-box__content\" alt=\"16/9 Image\">\n</div>"
      }
    ],
    "rule": [
      {
        "title": "Basic Horizontal Rule",
        "description": "A standard horizontal line used to separate sections of content.",
        "html": "<p>Content above the rule.</p>\n<hr class=\"rule\">\n<p>Content below the rule.</p>"
      },
      {
        "title": "Short Accent Rule",
        "description": "Using the `rule--short` modifier to create a small, decorative line often used under headings.",
        "html": "<h3 class=\"h3\">Section Title</h3>\n<div class=\"rule rule--short\"></div>\n<p>A brief introduction to the section follows the decorative short rule.</p>"
      },
      {
        "title": "Large Margin Rule",
        "description": "A rule with increased vertical spacing using the `rule--margin-large` modifier.",
        "html": "<div class=\"rule rule--margin-large\"></div>\n<p>This rule creates significant visual separation between major content blocks.</p>"
      }
    ],
    "skeleton": [
      {
        "title": "Skeleton Text",
        "description": "Placeholder lines for text content during loading.",
        "html": "<div style=\"max-width: 400px;\">\n  <div class=\"skeleton skeleton--text skeleton--width-large\"></div>\n  <div class=\"skeleton skeleton--text\"></div>\n  <div class=\"skeleton skeleton--text\"></div>\n  <div class=\"skeleton skeleton--text skeleton--width-small\"></div>\n</div>"
      },
      {
        "title": "Skeleton Media",
        "description": "A placeholder for images or video assets.",
        "html": "<div style=\"max-width: 300px;\">\n  <div class=\"skeleton skeleton--media\">\n    <span aria-hidden=\"true\">🖼️</span>\n  </div>\n</div>"
      },
      {
        "title": "Composite Skeleton (Card)",
        "description": "Combining different skeleton elements to represent a complex UI component.",
        "html": "<article class=\"card\" style=\"max-width: 300px;\">\n  <div class=\"card__image\">\n    <div class=\"skeleton skeleton--block\" style=\"aspect-ratio: 16/9;\"></div>\n  </div>\n  <div class=\"card__body\">\n    <div class=\"card__title\">\n      <div class=\"skeleton skeleton--text skeleton--width-large\"></div>\n    </div>\n    <div class=\"card__main\">\n      <div class=\"skeleton skeleton--text\"></div>\n      <div class=\"skeleton skeleton--text skeleton--width-small\"></div>\n    </div>\n  </div>\n</article>"
      }
    ],
    "slider": [
      {
        "title": "Image Slider",
        "description": "A standard carousel for cycling through images.",
        "html": "<div class=\"slider\" data-ulu-slider>\n  <div class=\"slider__control-context\">\n    <ul class=\"slider__track\" data-ulu-slider-track>\n      <li class=\"slider__slide\" data-ulu-slider-slide>\n        <img src=\"https://picsum.photos/id/10/800/400\" alt=\"Slide 1\">\n      </li>\n      <li class=\"slider__slide\" data-ulu-slider-slide>\n        <img src=\"https://picsum.photos/id/11/800/400\" alt=\"Slide 2\">\n      </li>\n      <li class=\"slider__slide\" data-ulu-slider-slide>\n        <img src=\"https://picsum.photos/id/12/800/400\" alt=\"Slide 3\">\n      </li>\n    </ul>\n    <div class=\"Slider__controls\">\n      <button class=\"button button--icon Slider__control-button Slider__control-button--previous\" data-ulu-slider-previous aria-label=\"Previous Slide\">\n        <span class=\"css-icon css-icon--angle-left\"></span>\n      </button>\n      <button class=\"button button--icon Slider__control-button Slider__control-button--next\" data-ulu-slider-next aria-label=\"Next Slide\">\n        <span class=\"css-icon css-icon--angle-right\"></span>\n      </button>\n    </div>\n  </div>\n  <div class=\"Slider__nav\" data-ulu-slider-nav></div>\n</div>"
      }
    ],
    "sticky-list": [
      {
        "title": "Sticky Header List",
        "description": "A list where the header stays sticky as the user scrolls through the individual items.",
        "html": "<div class=\"sticky-list\">\n  <h3 class=\"sticky-list__title\">Process Steps</h3>\n  <ul class=\"sticky-list__list\">\n    <li class=\"sticky-list__item\">\n      <h4 class=\"h4\">1. Discovery</h4>\n      <p>Researching current market trends and user needs to identify core challenges and opportunities.</p>\n    </li>\n    <li class=\"sticky-list__item\">\n      <h4 class=\"h4\">2. Definition</h4>\n      <p>Establishing clear project goals, technical requirements, and functional specifications.</p>\n    </li>\n    <li class=\"sticky-list__item\">\n      <h4 class=\"h4\">3. Design</h4>\n      <p>Creating comprehensive architectural plans, UI/UX designs, and detailed system workflows.</p>\n    </li>\n    <li class=\"sticky-list__item\">\n      <h4 class=\"h4\">4. Development</h4>\n      <p>Iterative implementation of features, rigorous testing, and continuous integration of components.</p>\n    </li>\n  </ul>\n</div>"
      }
    ],
    "tabs": [
      {
        "title": "Horizontal Tabs",
        "description": "A standard tabbed interface with labels positioned horizontally above the content.",
        "html": "<div class=\"tabs\">\n  <div role=\"tablist\" data-ulu-tablist='{ \"equalHeights\": true }'>\n    <button role=\"tab\" id=\"tab-1\" aria-selected=\"true\" aria-controls=\"panel-1\">General Info</button>\n    <button role=\"tab\" id=\"tab-2\" aria-selected=\"false\" aria-controls=\"panel-2\">Specifications</button>\n    <button role=\"tab\" id=\"tab-3\" aria-selected=\"false\" aria-controls=\"panel-3\">Reviews</button>\n  </div>\n  <div role=\"tabpanel\" id=\"panel-1\" aria-labelledby=\"tab-1\">\n    <p>This is the general information about the product or service. It covers the core value propositions and high-level features.</p>\n  </div>\n  <div role=\"tabpanel\" id=\"panel-2\" aria-labelledby=\"tab-2\" hidden>\n    <p>Technical specifications and detailed measurements are listed here for professional review.</p>\n  </div>\n  <div role=\"tabpanel\" id=\"panel-3\" aria-labelledby=\"tab-3\" hidden>\n    <p>Customer feedback and ratings provide real-world insights from our community of users.</p>\n  </div>\n</div>"
      },
      {
        "title": "Vertical Tabs",
        "description": "Using the `tabs--vertical` modifier to place tab labels in a sidebar layout on larger screens.",
        "html": "<div class=\"tabs tabs--vertical\">\n  <div role=\"tablist\" data-ulu-tablist='{ \"vertical\": true, \"equalHeights\": true }'>\n    <button role=\"tab\" id=\"v-tab-1\" aria-selected=\"true\" aria-controls=\"v-panel-1\">Account Profile</button>\n    <button role=\"tab\" id=\"v-tab-2\" aria-selected=\"false\" aria-controls=\"v-panel-2\">Privacy Settings</button>\n    <button role=\"tab\" id=\"v-tab-3\" aria-selected=\"false\" aria-controls=\"v-panel-3\">Notification Preferences</button>\n  </div>\n  <div role=\"tabpanel\" id=\"v-panel-1\" aria-labelledby=\"v-tab-1\">\n    <p>Manage your personal information, profile picture, and contact details.</p>\n  </div>\n  <div role=\"tabpanel\" id=\"v-panel-2\" aria-labelledby=\"v-tab-2\" hidden>\n    <p>Control who can see your activity and how your data is used across the platform.</p>\n  </div>\n  <div role=\"tabpanel\" id=\"v-panel-3\" aria-labelledby=\"v-tab-3\" hidden>\n    <p>Customize which alerts you receive via email, push notification, or SMS.</p>\n  </div>\n</div>"
      }
    ],
    "tag": [
      {
        "title": "Basic Tag",
        "description": "A small label for categorization or status identification.",
        "html": "<span class=\"tag\">Standard Tag</span>\n<span class=\"tag tag--outline\">Outline Tag</span>"
      },
      {
        "title": "Semantic Status Tags",
        "description": "Using status modifiers like `tag--success` and `tag--danger`.",
        "html": "<span class=\"tag tag--success\">Verified</span>\n<span class=\"tag tag--danger\">Action Required</span>"
      },
      {
        "title": "Counter Tag",
        "description": "Using the `tag--counter` modifier to display numerical values, often for notifications or counts.",
        "html": "<span class=\"tag tag--counter\">5</span>\n<span class=\"tag tag--small tag--counter\">124</span>"
      }
    ],
    "tagged": [
      {
        "title": "Tagged Icon Button",
        "description": "Positioning a notification counter tag over an icon button.",
        "html": "<button class=\"button button--icon tagged\">\n  <span class=\"button__icon\" aria-hidden=\"true\">🔔</span>\n  <span class=\"tagged__tag tag tag--danger tag--small tag--counter\">3</span>\n</button>"
      },
      {
        "title": "Tagged Text Button",
        "description": "Positioning a tag over a standard text-based button.",
        "html": "<button class=\"button tagged\">\n  <span>Messages</span>\n  <span class=\"tagged__tag tag tag--danger tag--small tag--counter\">12</span>\n</button>"
      }
    ],
    "tile-grid": [
      {
        "title": "Basic Tile Grid (Reflowable)",
        "description": "A grid of tiles that automatically reflows to fit as many items as possible based on a preferred minimum width.",
        "html": "<div class=\"tile-grid\">\n  <div class=\"tile-grid__item\" style=\"background: #eee; border: 1px solid #ccc; display: flex; align-items: center; justify-content: center;\">Tile 1</div>\n  <div class=\"tile-grid__item\" style=\"background: #eee; border: 1px solid #ccc; display: flex; align-items: center; justify-content: center;\">Tile 2</div>\n  <div class=\"tile-grid__item\" style=\"background: #eee; border: 1px solid #ccc; display: flex; align-items: center; justify-content: center;\">Tile 3</div>\n  <div class=\"tile-grid__item\" style=\"background: #eee; border: 1px solid #ccc; display: flex; align-items: center; justify-content: center;\">Tile 4</div>\n  <div class=\"tile-grid__item\" style=\"background: #eee; border: 1px solid #ccc; display: flex; align-items: center; justify-content: center;\">Tile 5</div>\n</div>"
      },
      {
        "title": "Static Column Grid",
        "description": "Using the `tile-grid--static` modifier to enforce a specific number of columns that adapt per breakpoint (e.g., 2 on small, 3 on medium).",
        "html": "<div class=\"tile-grid tile-grid--static\">\n  <div class=\"tile-grid__item\" style=\"background: #ddd; border: 1px solid #bbb; display: flex; align-items: center; justify-content: center;\">Static 1</div>\n  <div class=\"tile-grid__item\" style=\"background: #ddd; border: 1px solid #bbb; display: flex; align-items: center; justify-content: center;\">Static 2</div>\n  <div class=\"tile-grid__item\" style=\"background: #ddd; border: 1px solid #bbb; display: flex; align-items: center; justify-content: center;\">Static 3</div>\n  <div class=\"tile-grid__item\" style=\"background: #ddd; border: 1px solid #bbb; display: flex; align-items: center; justify-content: center;\">Static 4</div>\n</div>"
      }
    ],
    "wysiwyg": [
      {
        "title": "WYSIWYG Content",
        "description": "Automatically applies standard styling to raw HTML elements (headings, lists, links) within a container.",
        "html": "<div class=\"wysiwyg\">\n  <h2>Main Topic</h2>\n  <p>This is a paragraph with a <a href=\"#\">link inside it</a>. The styling is automatically handled by the `.wysiwyg` class.</p>\n  <ul>\n    <li>Unordered list item one</li>\n    <li>Unordered list item two</li>\n  </ul>\n  <h3>Sub-section</h3>\n  <p>Headings are also automatically sized according to the typography configuration.</p>\n</div>"
      }
    ]
  },
  "configuration": {
    "layout": {
      "description": "SCSS Configuration for layout. To override these defaults, use the set mixin: `@include ulu.component-layout-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "margin",
          "type": "Number",
          "description": "Common margin for site",
          "default": "2rem"
        },
        {
          "name": "max-width",
          "type": "Number",
          "description": "Common max-width for site",
          "default": "90rem"
        },
        {
          "name": "z-index-above",
          "type": "Number",
          "description": "Common z-index, below sticky",
          "default": "1000"
        },
        {
          "name": "z-index-fixed",
          "type": "Number",
          "description": "Common z-index, above everything",
          "default": "100"
        },
        {
          "name": "z-index-sticky",
          "type": "Number",
          "description": "Common z-index for sticky or stuck items",
          "default": "450"
        }
      ]
    },
    "typography": {
      "description": "SCSS Configuration for typography. To override these defaults, use the set mixin: `@include ulu.component-typography-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "letter-spacing-uppercase",
          "type": "Dimension",
          "default": "0.04em"
        },
        {
          "name": "margin-bottom",
          "type": "Number",
          "description": "Default margin for typography (like paragraphs)",
          "default": "1em"
        },
        {
          "name": "margin-top",
          "type": "Number",
          "description": "Default margin for typography (like paragraphs)",
          "default": "null"
        },
        {
          "name": "headline-margin-top",
          "type": "Number",
          "description": "Default margin for typography headlines in $sizes",
          "default": "1.5em"
        },
        {
          "name": "responsive-change",
          "type": "Number",
          "description": "Amount to scale typography by browser's width (use viewport units)",
          "default": "0.05vw"
        },
        {
          "name": "scale-steps",
          "type": "Number",
          "default": "5"
        },
        {
          "name": "size-ratio",
          "type": "Number",
          "description": "Font size scale when using preset sizes, ratio mixin)",
          "default": "1.8"
        },
        {
          "name": "size-line-height-ratio",
          "type": "Number",
          "description": "Default line height scaling (when using preset sizes, ratio mixin). Can shrink line-height as size increase if desirable",
          "default": "0.97"
        },
        {
          "name": "font-family",
          "type": "Number",
          "description": "Default font family",
          "default": "(ui-sans-serif, \"Open Sans\", Helvetica, Arial, sans-serif)"
        },
        {
          "name": "font-family-monospace",
          "type": "Number",
          "description": "Base font-family for monospace",
          "default": "(Menlo, Consolas, Monaco, monospace)"
        },
        {
          "name": "font-family-sans",
          "type": "CssValue",
          "default": "(ui-sans-serif, \"Open Sans\", Helvetica, Arial, sans-serif)"
        },
        {
          "name": "font-family-serif",
          "type": "CssValue",
          "default": "(Cambria, Georgia, serif"
        },
        {
          "name": "font-size",
          "type": "Number",
          "description": "Default font size (use pixels, converted, is used for rem base)",
          "default": "16px"
        },
        {
          "name": "font-weight",
          "type": "CssValue",
          "default": "inherit"
        },
        {
          "name": "font-weight-bold",
          "type": "CssValue",
          "default": "bold"
        },
        {
          "name": "font-weight-light",
          "type": "CssValue",
          "default": "300"
        },
        {
          "name": "font-weight-normal",
          "type": "CssValue",
          "default": "normal"
        },
        {
          "name": "font-weight-semibold",
          "type": "CssValue",
          "default": "600"
        },
        {
          "name": "line-height",
          "type": "Number",
          "description": "Default line height",
          "default": "1.5"
        },
        {
          "name": "line-height-dense",
          "type": "Number",
          "description": "Default dense line height",
          "default": "1.3"
        },
        {
          "name": "line-height-densest",
          "type": "Number",
          "default": "1.1"
        },
        {
          "name": "line-height-spaced",
          "type": "Number",
          "default": "1.75"
        },
        {
          "name": "space-size",
          "type": "CssUnit",
          "description": "The size of a space for the site's typography (used when creating faux spaces, like for .flow-inline utility)",
          "default": "0.38em"
        }
      ]
    },
    "units": {
      "description": "SCSS Configuration for units. To override these defaults, use the set mixin: `@include ulu.component-units-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "default",
          "type": "Number",
          "description": "Base unit of measure",
          "default": "1rem"
        },
        {
          "name": "large",
          "type": "Number",
          "default": "1rem * 2"
        },
        {
          "name": "large-x",
          "type": "Number",
          "default": "1rem * 3"
        },
        {
          "name": "large-xx",
          "type": "Number",
          "default": "1rem * 4"
        },
        {
          "name": "small",
          "type": "Number",
          "default": "1rem * 0.75"
        },
        {
          "name": "small-x",
          "type": "Number",
          "default": "1rem * 0.5"
        }
      ]
    },
    "elements": {
      "description": "SCSS Configuration for elements. To override these defaults, use the set mixin: `@include ulu.component-elements-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "details-animation",
          "type": "CssValue",
          "description": "Animation for the details element when toggled.",
          "default": "(UluFadeInDown 350ms ease-in-out)"
        },
        {
          "name": "link",
          "type": "Boolean",
          "description": "Enables link styling.",
          "default": "true"
        },
        {
          "name": "link-hover",
          "type": "Boolean",
          "description": "Enables link hover and focus styling.",
          "default": "true"
        },
        {
          "name": "link-visited",
          "type": "Boolean",
          "description": "Enables visited link styling.",
          "default": "true"
        }
      ]
    },
    "root": {
      "description": "SCSS Configuration for root. To override these defaults, use the set mixin: `@include ulu.component-root-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "sticky-offset-top",
          "type": "String",
          "description": "Total top offset for sticky positioning. Accounts for the primary header and any required breathing room.",
          "default": "cssvar.add(cssvar.use-ulu(\"header-height\"), cssvar.use-ulu(\"sticky-margin\"))"
        },
        {
          "name": "sticky-offset-bottom",
          "type": "Dimension",
          "description": "Bottom offset for sticky positioning. Useful when accounting for fixed footers or mobile navigation bars.",
          "default": "0px"
        },
        {
          "name": "sticky-margin",
          "type": "Dimension",
          "description": "Desired visual space between a sticky element and the bottom of the header.",
          "default": "0px"
        },
        {
          "name": "header-height",
          "type": "Dimension",
          "description": "The physical rendered height of the site's fixed/sticky header.",
          "default": "0px"
        },
        {
          "name": "fullscreen-height",
          "type": "String",
          "description": "Utility height representing the visible viewport space below the header.",
          "default": "cssvar.subtract(100dvh, cssvar.use-ulu(\"header-height\"))"
        },
        {
          "name": "fullscreen-height-sticky",
          "type": "String",
          "description": "Utility height representing the safe scrollable area between all sticky layout boundaries.",
          "default": "cssvar.subtract(100dvh, cssvar.use-ulu(\"sticky-offset-top\"), cssvar.use-ulu(\"sticky-offset-bottom\"))"
        }
      ]
    },
    "themes": {
      "description": "SCSS Configuration for themes. To override these defaults, use the set mixin: `@include ulu.component-themes-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "default",
          "type": "String",
          "description": "The theme key output to :root",
          "default": "\"light\""
        },
        {
          "name": "color-schemes",
          "type": "Map",
          "description": "Maps theme names to their corresponding valid CSS color-scheme value (e.g. (\"high-contrast\": \"dark\")). Note: If a theme name is literally \"light\" or \"dark\", it does not need to be mapped here.",
          "default": "()"
        },
        {
          "name": "inverses",
          "type": "Map",
          "description": "Maps theme names to their opposite theme name (e.g. (\"light\": \"dark\", \"dark\": \"light\")). Used to output the .theme-inverse utility.",
          "default": "()"
        }
      ]
    },
    "accordion": {
      "description": "SCSS Configuration for accordion. To override these defaults, use the set mixin: `@include ulu.component-accordion-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "background-color",
          "type": "Color",
          "description": "This is the background color of the accordion before it is expanded.",
          "default": "background"
        },
        {
          "name": "background-color-open",
          "type": "Color",
          "description": "This is the background color of the accordion when it is expanded. This will change the background color of the accordion's summary as well as the details.",
          "default": "white"
        },
        {
          "name": "border-color",
          "type": "String",
          "description": "The color of the accordion border.",
          "default": "\"rule-light\""
        },
        {
          "name": "border-radius",
          "type": "Boolean|Number",
          "description": "This applies a rounding of edges for the accordion. If there are multiple accordions in a stack, this will only apply to the top of the first accordion and the bottom of the last accordion.",
          "default": "true"
        },
        {
          "name": "border-width",
          "type": "Dimension",
          "description": "The width of the borders of the accordions.",
          "default": "1px"
        },
        {
          "name": "box-shadow",
          "type": "CssValue",
          "description": "Adds a box shadow to accordion container.",
          "default": "none"
        },
        {
          "name": "margin",
          "type": "Dimension",
          "description": "This is the margin above and below the accordion. Multiple Accordions will stack. See margin-between below.",
          "default": "(1.5em 0)"
        },
        {
          "name": "margin-between",
          "type": "Dimension",
          "description": "This adds a margin between adjacent accordions. By default, accordions do not have any net margin between each other.",
          "default": "0"
        },
        {
          "name": "padding-x",
          "type": "Dimension",
          "description": "Singular value for the left and right padding.",
          "default": "1.5em"
        },
        {
          "name": "padding-y",
          "type": "Dimension",
          "description": "Singular value for the top and bottom padding.",
          "default": "1.5em"
        },
        {
          "name": "icon-background-color",
          "type": "Color",
          "description": "The background color of the icon.",
          "default": "transparent"
        },
        {
          "name": "icon-background-color-hover",
          "type": "Color",
          "description": "The background color of the icon when hovered or focused.",
          "default": "transparent"
        },
        {
          "name": "icon-border-radius",
          "type": "Number",
          "description": "The border-radius of the icon.",
          "default": "50%"
        },
        {
          "name": "icon-color",
          "type": "String",
          "description": "Color of the icon. This uses color.scss, so the value of this option should be a color variable from color.scss.",
          "default": "link"
        },
        {
          "name": "icon-color-hover",
          "type": "String",
          "description": "Color of the icon when hovered or focused on. This uses color.scss, so the value of this options should be a color variable from color.scss.",
          "default": "link-hover"
        },
        {
          "name": "icon-font-size",
          "type": "Dimension",
          "description": "The font-size of the icon.",
          "default": "1em"
        },
        {
          "name": "icon-margin",
          "type": "Dimension",
          "description": "The margin to the left of the icon.",
          "default": "1em"
        },
        {
          "name": "icon-size",
          "type": "Dimension",
          "description": "The size of the icon. Used as the base in the flex property.",
          "default": "auto"
        },
        {
          "name": "icon-stroke-width",
          "type": "Dimension",
          "description": "The stroke width of the icon.",
          "default": "0.15em"
        },
        {
          "name": "summary-background-color",
          "type": "Color",
          "description": "The background color for the summary (toggle button) of the accordion.",
          "default": "#f6f6f6"
        },
        {
          "name": "summary-background-color-hover",
          "type": "Color",
          "description": "The background color for the summary (toggle button) of the accordion when hovered.",
          "default": "null"
        },
        {
          "name": "summary-color",
          "type": "Color",
          "description": "The color of the text in the accordion summary.",
          "default": "null"
        },
        {
          "name": "summary-color-hover",
          "type": "Color",
          "description": "The color of the text in the accordion summary when hovering or focusing on it.",
          "default": "null"
        },
        {
          "name": "summary-line-height",
          "type": "Dimension",
          "description": "Adjusts the line height of the summary element.",
          "default": "null"
        },
        {
          "name": "summary-padding-y",
          "type": "Dimension",
          "description": "The vertical padding of the summary.",
          "default": "1em"
        },
        {
          "name": "summary-type-size",
          "type": "String|Boolean",
          "description": "The typography size of the text in the accordion summary. Can be a boolean to disable.",
          "default": "\"large\""
        },
        {
          "name": "summary-border-enabled",
          "type": "Boolean",
          "description": "Whether the summary has a border when the accordion is open.",
          "default": "true"
        },
        {
          "name": "summary-border-color",
          "type": "Color",
          "description": "The color of the summary border.",
          "default": "rule-light"
        },
        {
          "name": "summary-border-width",
          "type": "Dimension",
          "description": "The width of the summary border.",
          "default": "1px"
        },
        {
          "name": "transparent-content-padding",
          "type": "Dimension",
          "description": "The padding of the content area for transparent accordions.",
          "default": "(0.25em 0)"
        },
        {
          "name": "borderless-margin-between",
          "type": "Dimension",
          "description": "Margin between accordions when using no-border modifier.",
          "default": "0.5em"
        },
        {
          "name": "active-selector",
          "type": "String",
          "description": "The selector used for the active state of a non-<details> accordion.",
          "default": "'.is-active'"
        }
      ]
    },
    "adaptive-spacing": {
      "description": "SCSS Configuration for adaptive-spacing. To override these defaults, use the set mixin: `@include ulu.component-adaptive-spacing-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "outputMargin",
          "type": "Boolean",
          "description": "Toggles the output of margin classes.",
          "default": "false"
        },
        {
          "name": "outputPadding",
          "type": "Boolean",
          "description": "This is the background color of the accordion before it is expanded.",
          "default": "true"
        },
        {
          "name": "outputX",
          "type": "Boolean",
          "description": "This is the background color of the accordion before it is expanded.",
          "default": "true"
        },
        {
          "name": "outputY",
          "type": "Boolean",
          "description": "This is the background color of the accordion before it is expanded.",
          "default": "true"
        },
        {
          "name": "selectorX",
          "type": "Boolean",
          "description": "This is the background color of the accordion before it is expanded.",
          "default": "\"sides\""
        },
        {
          "name": "selectorY",
          "type": "Boolean",
          "description": "This is the background color of the accordion before it is expanded.",
          "default": "\"ends\""
        }
      ]
    },
    "badge": {
      "description": "SCSS Configuration for badge. To override these defaults, use the set mixin: `@include ulu.component-badge-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "background-color",
          "type": "Color",
          "description": "Background color (if no image)",
          "default": "gray"
        },
        {
          "name": "background-color-hover",
          "type": "Color",
          "description": "Optional background color for hover when using badge--clickable modifier",
          "default": "null"
        },
        {
          "name": "border-radius",
          "type": "Number",
          "description": "Border radius of badge",
          "default": "50%"
        },
        {
          "name": "color",
          "type": "Color",
          "description": "Type color",
          "default": "black"
        },
        {
          "name": "color-hover",
          "type": "Color",
          "description": "Optional color for hover when using badge--clickable modifier",
          "default": "null"
        },
        {
          "name": "box-shadow",
          "type": "CssValue",
          "description": "Optional box-shadow",
          "default": "null"
        },
        {
          "name": "box-shadow-hover",
          "type": "CssValue",
          "description": "Optional box-shadow for hover when using badge--clickable modifier",
          "default": "null"
        },
        {
          "name": "font-size",
          "type": "Number",
          "description": "Font size (basic ie. 1.3rem) for badge",
          "default": "1.3rem"
        },
        {
          "name": "font-weight",
          "type": "Keyword",
          "description": "Font weight",
          "default": "bold"
        },
        {
          "name": "font-family",
          "type": "String",
          "description": "Specify font family, defaults to typography font-family-sans",
          "default": "true"
        },
        {
          "name": "width",
          "type": "Number",
          "description": "Width of badge (default size)",
          "default": "10rem"
        },
        {
          "name": "transition-duration",
          "type": "Time",
          "description": "Transition duration amount for transitioned properties",
          "default": "110ms"
        },
        {
          "name": "hover-scale",
          "type": "Number",
          "description": "Scale of badge (if clickable) on hover (enlarges badge)",
          "default": "1.2"
        },
        {
          "name": "sizes",
          "type": "List",
          "description": "List of other sizes (large by default), each size is a map of (width, font-size)",
          "default": "Object"
        }
      ]
    },
    "badge-stack": {
      "description": "SCSS Configuration for badge-stack. To override these defaults, use the set mixin: `@include ulu.component-badge-stack-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "width",
          "type": "Dimension",
          "description": "Width of the badge stack",
          "default": "10rem"
        },
        {
          "name": "overlap",
          "type": "Dimension",
          "description": "Right margin for stacked items",
          "default": "-5px"
        },
        {
          "name": "border-width",
          "type": "Dimension",
          "description": "Border width for stacked items",
          "default": "3px"
        }
      ]
    },
    "basic-hero": {
      "description": "SCSS Configuration for basic-hero. To override these defaults, use the set mixin: `@include ulu.component-basic-hero-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "text-align",
          "type": "CssValue",
          "description": "Alignment of text within hero.",
          "default": "center"
        },
        {
          "name": "background-color",
          "type": "Color",
          "description": "Background color of the hero",
          "default": "\"color-hero-background\""
        }
      ]
    },
    "breadcrumb": {
      "description": "SCSS Configuration for breadcrumb. To override these defaults, use the set mixin: `@include ulu.component-breadcrumb-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "margin",
          "type": "List",
          "description": "Margin for component",
          "default": "(0 0 1.25em 0)"
        },
        {
          "name": "row-gap",
          "type": "CssUnit",
          "description": "Gap when breadcrumbs wrap",
          "default": "0.35em"
        },
        {
          "name": "color",
          "type": "Color",
          "description": "Base color (links inherit this)",
          "default": "\"type-tertiary\""
        },
        {
          "name": "color-hover",
          "type": "Color",
          "description": "Color for link hover",
          "default": "\"link-hover\""
        },
        {
          "name": "line-height",
          "type": "CssUnit",
          "description": "Line height, defaults to typography line-height-densest",
          "default": "true"
        },
        {
          "name": "item-max-width",
          "type": "CssUnit",
          "description": "Max length of item text",
          "default": "15em"
        },
        {
          "name": "separator-color",
          "type": "Color",
          "description": "Optional color to apply to separator",
          "default": "null"
        },
        {
          "name": "separator-opacity",
          "type": "Number",
          "description": "Optional opacity for separator",
          "default": "0.7"
        },
        {
          "name": "separator-margin",
          "type": "List",
          "description": "Separator margin",
          "default": "(0 0.5em)"
        }
      ]
    },
    "button": {
      "description": "SCSS Configuration for button. To override these defaults, use the set mixin: `@include ulu.component-button-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "active-selector",
          "type": "String",
          "description": "The selector that determines if a button is active",
          "default": "\"&.is-active\""
        },
        {
          "name": "box-shadow",
          "type": "CssValue",
          "description": "Specify box shadow for default button. Default true will fallback to element \"box-shadow\"",
          "default": "true"
        },
        {
          "name": "line-height",
          "type": "Number",
          "description": "Line height for button",
          "default": "1.1"
        },
        {
          "name": "letter-spacing",
          "type": "Dimension",
          "default": "0.02em"
        },
        {
          "name": "margin",
          "type": "Dimension",
          "description": "Margin for buttons, usually left margin is omitted so buttons can flow inline and make space between them and the next element inline",
          "default": "(0.45em 0.5em 0.45em 0)"
        },
        {
          "name": "min-width",
          "type": "Dimension",
          "description": "The smallest width for all buttons",
          "default": "9rem"
        },
        {
          "name": "padding",
          "type": "Dimension",
          "description": "Button inner padding value, pass space separated list",
          "default": "(0.75em 1.5em)"
        },
        {
          "name": "white-space",
          "type": "CssValue",
          "description": "Adjust button line wrapping, by default line's are not wrapped",
          "default": "nowrap"
        },
        {
          "name": "gap",
          "type": "Dimension",
          "description": "Gap to use between items within the button",
          "default": "0.5em"
        },
        {
          "name": "border-color",
          "type": "String",
          "description": "The border color for the button, usually if there is no border we set this to match the background color so if a button with no borders is adjacent a style that has borders the heights will match.",
          "default": "\"control-border\""
        },
        {
          "name": "border-color-hover",
          "type": "String",
          "description": "Color of border when button is hovered",
          "default": "\"control-border-hover\""
        },
        {
          "name": "border-color-active",
          "type": "String",
          "description": "Color of border when a button has active class",
          "default": "\"control-border-active\""
        },
        {
          "name": "border-radius",
          "type": "Dimension",
          "description": "Border Radius for button",
          "default": "2rem"
        },
        {
          "name": "border-width",
          "type": "Dimension",
          "description": "Width of button border",
          "default": "1px"
        },
        {
          "name": "background-color",
          "type": "String",
          "description": "Background color of button",
          "default": "\"control-background\""
        },
        {
          "name": "background-color-hover",
          "type": "String",
          "description": "Background color of button when hovered",
          "default": "\"control-background-hover\""
        },
        {
          "name": "background-color-active",
          "type": "String",
          "description": "Background color of button when active",
          "default": "\"control-background-active\""
        },
        {
          "name": "color",
          "type": "String",
          "description": "Text color of button",
          "default": "\"control\""
        },
        {
          "name": "color-hover",
          "type": "String",
          "description": "Text color of button when hovered",
          "default": "\"control-hover\""
        },
        {
          "name": "color-active",
          "type": "String",
          "description": "Text color of button when active",
          "default": "\"control-active\""
        },
        {
          "name": "font-family",
          "type": "CssValue",
          "description": "Font family for button",
          "default": "inherit"
        },
        {
          "name": "font-weight",
          "type": "CssValue",
          "description": "Font weight for button",
          "default": "bold"
        },
        {
          "name": "font-size",
          "type": "String",
          "description": "Font size for button, can be omitted if it should inherit, sizes can also work with utility type size classes",
          "default": "\"base\""
        },
        {
          "name": "icon-size",
          "type": "Dimension",
          "description": "The size of a button when used with an icon",
          "default": "2.5rem"
        },
        {
          "name": "icon-font-size",
          "type": "Dimension",
          "description": "The font size for the icon when a button is an icon button",
          "default": "1.38rem"
        },
        {
          "name": "icon-border-radius",
          "type": "Dimension",
          "description": "The border radius of a icon button (defaults to 50% circle)",
          "default": "50%"
        },
        {
          "name": "text-shadow",
          "type": "CssValue",
          "description": "Text shadow for button",
          "default": "none"
        },
        {
          "name": "text-transform",
          "type": "CssValue",
          "description": "Text transform for button",
          "default": "none"
        },
        {
          "name": "text-decoration",
          "type": "CssValue",
          "description": "Text decoration of button",
          "default": "none"
        },
        {
          "name": "transition-enabled",
          "type": "Boolean",
          "description": "Whether or not to enable transitions on button properties like background-color, color, border color as they change state",
          "default": "true"
        },
        {
          "name": "transition-duration",
          "type": "Time",
          "description": "The duration of the button's transition if enabled",
          "default": "200ms"
        },
        {
          "name": "transition-properties",
          "type": "List",
          "description": "The properties to transition if `transition-enabled`",
          "default": "(border-color, background-color, color, box-shadow)"
        }
      ]
    },
    "button-group": {
      "description": "SCSS Configuration for button-group. To override these defaults, use the set mixin: `@include ulu.component-button-group-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "gap",
          "type": "Dimension",
          "description": "Gap between buttons",
          "default": "0.45em"
        },
        {
          "name": "gap-joined",
          "type": "Dimension",
          "description": "When using --joined modifier optional gap, if 0 the buttons borders will overlap, joined-gap is useful if your buttons don't have borders",
          "default": "0"
        },
        {
          "name": "no-min-width",
          "type": "Boolean",
          "description": "Buttons within the button group should have no min width",
          "default": "true"
        }
      ]
    },
    "button-verbose": {
      "description": "SCSS Configuration for button-verbose. To override these defaults, use the set mixin: `@include ulu.component-button-verbose-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "background-color",
          "type": "Color",
          "description": "Background color for the button.",
          "default": "white"
        },
        {
          "name": "background-color-hover",
          "type": "Color",
          "description": "Background color for the button when hovered or focused.",
          "default": "link"
        },
        {
          "name": "border-radius",
          "type": "String",
          "description": "Border radius of the button.",
          "default": "border-radius"
        },
        {
          "name": "border-width",
          "type": "String",
          "description": "Border width (or set to true to inherit button border width default)",
          "default": "null"
        },
        {
          "name": "border-color",
          "type": "String",
          "description": "Border color (or set to true to inherit button border width default)",
          "default": "null"
        },
        {
          "name": "box-shadow",
          "type": "CssValue",
          "description": "Box shadow for the button. If set to true, uses default box-shadow.",
          "default": "true"
        },
        {
          "name": "box-shadow-hover",
          "type": "CssValue",
          "description": "Box shadow for the button when hovered or focused. If set to true, uses default box-shadow-hover.",
          "default": "true"
        },
        {
          "name": "color",
          "type": "String",
          "description": "Text color for the button.",
          "default": "type"
        },
        {
          "name": "color-hover",
          "type": "String",
          "description": "Text color for the button when hovered or focused.",
          "default": "type"
        },
        {
          "name": "icon-color",
          "type": "Color",
          "description": "Color for button icons.",
          "default": "gray"
        },
        {
          "name": "icon-color-hover",
          "type": "Color",
          "description": "Optional color for icon when hovered",
          "default": "null"
        },
        {
          "name": "icon-font-size",
          "type": "Dimension",
          "description": "Font size for the button.",
          "default": "1.25rem"
        },
        {
          "name": "line-height",
          "type": "Number",
          "description": "Line height for button text.",
          "default": "1.2"
        },
        {
          "name": "margin",
          "type": "Dimension",
          "description": "Margin for the button.",
          "default": "1em"
        },
        {
          "name": "margin-inline",
          "type": "Dimension",
          "description": "Margin for the button when using the inline modifier.",
          "default": "0.75em"
        },
        {
          "name": "min-width",
          "type": "Dimension",
          "description": "Min-width of the button.",
          "default": "20rem"
        },
        {
          "name": "padding-x",
          "type": "Dimension",
          "description": "Horizontal padding of the button.",
          "default": "0.65em"
        },
        {
          "name": "padding-y",
          "type": "Dimension",
          "description": "Vertical padding of the button.",
          "default": "1em"
        },
        {
          "name": "title-color",
          "type": "String",
          "description": "Color of the title of the button.",
          "default": "link"
        },
        {
          "name": "title-color-hover",
          "type": "String",
          "description": "Color of the title of the button when hovered or focused.",
          "default": "link-hover"
        },
        {
          "name": "title-margin",
          "type": "Dimension",
          "description": "Margin for the button's title.",
          "default": "0.5em"
        },
        {
          "name": "cap",
          "type": "Boolean",
          "description": "Enable left cap style",
          "default": "false"
        },
        {
          "name": "cap-side",
          "type": "Color",
          "description": "The side that gets the cap",
          "default": "\"left\""
        },
        {
          "name": "cap-match-radius",
          "type": "Number",
          "description": "The cap should have be rounded to match the parent's border radius",
          "default": "true"
        },
        {
          "name": "cap-options",
          "type": "Map",
          "description": "The options for cap (see element.cap for options)"
        },
        {
          "name": "cap-options-hover",
          "type": "Map",
          "description": "The options for cap when hovered"
        }
      ]
    },
    "callout": {
      "description": "SCSS Configuration for callout. To override these defaults, use the set mixin: `@include ulu.component-callout-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "background-color",
          "type": "Color",
          "description": "The background color of the Callout.",
          "default": "rgb(240, 240, 240)"
        },
        {
          "name": "border-color",
          "type": "Color",
          "description": "The border color of the Callout.",
          "default": "\"rule-light\""
        },
        {
          "name": "border-radius",
          "type": "Boolean",
          "description": "The border radius of the Callout.",
          "default": "true"
        },
        {
          "name": "border-width",
          "type": "Dimension",
          "description": "The border width of the Callout.",
          "default": "1px"
        },
        {
          "name": "box-shadow",
          "type": "CssValue",
          "description": "The box-shadow of the Callout.",
          "default": "none"
        },
        {
          "name": "caps-disabled",
          "type": "Boolean",
          "description": "If set will not output any cap styles for both base and styles",
          "default": "false"
        },
        {
          "name": "cap",
          "type": "Boolean",
          "description": "Toggles the use of caps on default callout",
          "default": "false"
        },
        {
          "name": "cap-side",
          "type": "Boolean",
          "description": "The side that gets the cap",
          "default": "\"left\""
        },
        {
          "name": "cap-match-radius",
          "type": "Number",
          "description": "The cap should have be rounded to match the parent's border radius",
          "default": "true"
        },
        {
          "name": "cap-options",
          "type": "Map",
          "description": "The options for cap (see element.cap for options)"
        },
        {
          "name": "margin",
          "type": "Dimension",
          "description": "Bottom margin of the Callout.",
          "default": "2rem"
        },
        {
          "name": "padding",
          "type": "Dimension",
          "description": "Padding of the Callout.",
          "default": "1.5rem"
        }
      ]
    },
    "captioned-figure": {
      "description": "SCSS Configuration for captioned-figure. To override these defaults, use the set mixin: `@include ulu.component-captioned-figure-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "text-alignment-matches",
          "type": "Boolean",
          "description": "Toggles matching alignment.",
          "default": "false"
        },
        {
          "name": "text-alignment-matches-center-only",
          "type": "Boolean",
          "description": "Toggles matching alignment, but only if center.",
          "default": "true"
        },
        {
          "name": "background-color",
          "type": "Color",
          "description": "Background color of the component.",
          "default": "white"
        },
        {
          "name": "box-shadow",
          "type": "CssValue",
          "description": "Box shadow the captioned figure.",
          "default": "true"
        },
        {
          "name": "margin-bottom",
          "type": "Dimension",
          "description": "Bottom margin of the captioned figure.",
          "default": "true"
        },
        {
          "name": "line-height",
          "type": "Number",
          "description": "Line height of the captioned figure caption.",
          "default": "true"
        },
        {
          "name": "caption-padding",
          "type": "Dimension",
          "description": "Padding of the captioned figure caption.",
          "default": "0.5em"
        },
        {
          "name": "color",
          "type": "Color",
          "description": "Font color of the captioned figure caption.",
          "default": "null"
        },
        {
          "name": "type-size",
          "type": "String",
          "description": "Font size of the captioned figure caption.",
          "default": "\"small\""
        },
        {
          "name": "caption-max-width",
          "type": "Dimension",
          "description": "Max width of the captioned figure caption.",
          "default": "min(100%, 15em)"
        },
        {
          "name": "caption-background-color",
          "type": "Color",
          "description": "background color of the captioned figure caption.",
          "default": "rgba(255,255,255,0.7)"
        },
        {
          "name": "caption-backdrop-filter",
          "type": "CssValue",
          "description": "Filter of the backdrop of the captioned figure.",
          "default": "blur(2px)"
        },
        {
          "name": "traditional-caption-color",
          "type": "Color",
          "description": "Traditional style for font color.",
          "default": "null"
        },
        {
          "name": "traditional-caption-background-color",
          "type": "Color",
          "description": "Traditional style for caption background color.",
          "default": "transparent"
        },
        {
          "name": "traditional-caption-padding",
          "type": "Dimension",
          "description": "Traditional style for caption padding.",
          "default": "0.5em"
        },
        {
          "name": "traditional-caption-max-width",
          "type": "Dimension",
          "description": "Traditional style for caption max width.",
          "default": "35em"
        },
        {
          "name": "traditional-caption-text-align",
          "type": "CssValue",
          "description": "Traditional style for caption text-align.",
          "default": "right"
        }
      ]
    },
    "card": {
      "description": "SCSS Configuration for card. To override these defaults, use the set mixin: `@include ulu.component-card-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "padding",
          "type": "Dimension",
          "description": "The common padding",
          "default": "2rem"
        },
        {
          "name": "margin-y",
          "type": "Dimension",
          "description": "Top and bottom margin for the card.",
          "default": "3rem"
        },
        {
          "name": "max-width",
          "type": "Dimension",
          "description": "The max-width of the card.",
          "default": "28rem"
        },
        {
          "name": "line-height",
          "type": "Dimension",
          "description": "The line-height of the card.",
          "default": "null"
        },
        {
          "name": "body-min-height",
          "type": "Dimension",
          "description": "the min-height of the card body.",
          "default": "10rem"
        },
        {
          "name": "color",
          "type": "Color",
          "description": "The type color of the card.",
          "default": "\"type\""
        },
        {
          "name": "color-hover",
          "type": "Color",
          "description": "The type color of the card when hovered or focused.",
          "default": "null"
        },
        {
          "name": "background-color",
          "type": "Color",
          "description": "The background color of the card.",
          "default": "white"
        },
        {
          "name": "background-color-hover",
          "type": "Color",
          "description": "The background color of the card when hovered or focused.",
          "default": "rgb(242, 244, 246)"
        },
        {
          "name": "border-radius",
          "type": "Dimension",
          "description": "The border radius of the card.",
          "default": "5px"
        },
        {
          "name": "border-width",
          "type": "CssValue",
          "description": "The card border width",
          "default": "1px"
        },
        {
          "name": "border-color",
          "type": "Color",
          "description": "The card border color",
          "default": "#ccc"
        },
        {
          "name": "border-hover-width",
          "type": "Dimension",
          "description": "The card border width when hovered or focused.",
          "default": "2px"
        },
        {
          "name": "border-hover-color",
          "type": "Color",
          "description": "The card border color when hovered or focused.",
          "default": "#278cca"
        },
        {
          "name": "box-shadow",
          "type": "CssValue",
          "description": "The box-shadow for the card.",
          "default": "null"
        },
        {
          "name": "box-shadow-hover",
          "type": "CssValue",
          "description": "The box-shadow for the card when hovered or focused.",
          "default": "null"
        },
        {
          "name": "box-shadow-interactive-only",
          "type": "Boolean",
          "description": "If true, the box shadow will only be applied to cards that are interactive (clickable).",
          "default": "false"
        },
        {
          "name": "transition-enabled",
          "type": "Boolean",
          "description": "Enable or disable transition for card.",
          "default": "true"
        },
        {
          "name": "transition-duration",
          "type": "Time",
          "description": "The animation duration for the card animation.",
          "default": "200ms"
        },
        {
          "name": "transition-timing-function",
          "type": "CssValue",
          "description": "The timing function for the card animation.",
          "default": "ease-in-out"
        },
        {
          "name": "transition-properties",
          "type": "List",
          "description": "The properties for the card animation.",
          "default": "(border-color, background-color, color, box-shadow, transform, outline-color, outline-width)"
        },
        {
          "name": "clickable-card-selector",
          "type": "String",
          "description": "The selector for proxy-click.js to find the card and implement the clickable card script.",
          "default": "data-ulu-proxy-click-init"
        },
        {
          "name": "clickable-card-interact-selector",
          "type": "String",
          "description": "The selectors for the cards being interacted with.",
          "default": "&:hover, &:focus-within"
        },
        {
          "name": "title-color",
          "type": "Color",
          "description": "The type color of the title.",
          "default": "null"
        },
        {
          "name": "title-color-hover",
          "type": "Color",
          "description": "The type color of the title (if link/button) when hovered or focused",
          "default": "null"
        },
        {
          "name": "title-margin",
          "type": "Dimension",
          "description": "The margin for the title.",
          "default": "1rem"
        },
        {
          "name": "title-font-weight",
          "type": "CssValue",
          "description": "The font weight for the title.",
          "default": "bold"
        },
        {
          "name": "image-within-border",
          "type": "Boolean",
          "description": "If false, the image will bleed to the edges of the card, sitting under the border.",
          "default": "true"
        },
        {
          "name": "image-aspect-ratio",
          "type": "Number",
          "description": "The aspect ratio of the image.",
          "default": "5/3"
        },
        {
          "name": "image-background-color",
          "type": "Color",
          "description": "The background color behind the image.",
          "default": "rgb(238, 238, 238)"
        },
        {
          "name": "image-margin",
          "type": "Dimension",
          "description": "The margin for the image",
          "default": "null"
        },
        {
          "name": "image-border",
          "type": "Dimension",
          "description": "Optional border for the image.",
          "default": "null"
        },
        {
          "name": "image-transform-hover",
          "type": "CssValue",
          "description": "Animation for the image when hovered or focused.",
          "default": "null"
        },
        {
          "name": "image-filter-hover",
          "type": "CssValue",
          "description": "Filter for the image when hovered or focused.",
          "default": "null"
        },
        {
          "name": "image-transition-enabled",
          "type": "Boolean",
          "description": "Enable or disable the image transition.",
          "default": "true"
        },
        {
          "name": "image-transition-duration",
          "type": "Time",
          "description": "The duration of the image transition.",
          "default": "350ms"
        },
        {
          "name": "image-transition-timing-function",
          "type": "CssValue",
          "description": "The timing function for the image transition.",
          "default": "ease-in-out"
        },
        {
          "name": "image-transition-properties",
          "type": "List",
          "description": "The properties for the image transitions.",
          "default": "(transform, filter, background-color)"
        },
        {
          "name": "image-fit-padding",
          "type": "Dimension",
          "description": "Padding on inside of image when using image fit modifier",
          "default": "1rem"
        },
        {
          "name": "image-fit-filter",
          "type": "CssValue",
          "description": "Filter to use on image when using image fit modifier",
          "default": "drop-shadow(0 0px 8px rgba(0, 0, 0, 0.3))"
        },
        {
          "name": "image-icon-max-width",
          "type": "Dimension",
          "description": "Max width for image when using the modifier on the .card__image--icon",
          "default": "8rem"
        },
        {
          "name": "footer-padding-y",
          "type": "Dimension",
          "description": "The top and bottom padding for the footer.",
          "default": "0.25rem"
        },
        {
          "name": "footer-min-height",
          "type": "Dimension",
          "description": "The min height for the footer",
          "default": "2.5rem"
        },
        {
          "name": "footer-justify",
          "type": "CssValue",
          "description": "Flex alignment of footer items (on end by default)",
          "default": "flex-end"
        },
        {
          "name": "footer-inline-padding",
          "type": "Dimension",
          "description": "The padding for the footer when using the 'footer-inline' modifier.",
          "default": "0.5rem"
        },
        {
          "name": "footer-background-color",
          "type": "Color",
          "description": "The background color of the footer.",
          "default": "null"
        },
        {
          "name": "horizontal-enabled",
          "type": "String",
          "description": "Enable the output of horizontal related layout modifiers",
          "default": "false"
        },
        {
          "name": "horizontal-persist-enabled",
          "type": "String",
          "description": "Enable the output of horizontal-persist related layout modifiers",
          "default": "false"
        },
        {
          "name": "horizontal-breakpoint",
          "type": "String",
          "description": "The breakpoint used to change the card to vertical if using the card--horizontal styling. Uses ulu's breakpoint module.",
          "default": "small"
        },
        {
          "name": "horizontal-min-height",
          "type": "Dimension",
          "description": "Minimum height when horizontal",
          "default": "20rem"
        },
        {
          "name": "horizontal-max-width",
          "type": "Dimension",
          "description": "Maximum width when horizontal",
          "default": "80rem"
        },
        {
          "name": "horizontal-image-width",
          "type": "CssValue",
          "description": "The width of the image area when using the 'horizontal' modifier.",
          "default": "min(33%, 20rem)"
        },
        {
          "name": "horizontal-main-max-width",
          "type": "Dimension",
          "description": "The max-width of the main content area when using the 'horizontal' modifier.",
          "default": "40rem"
        },
        {
          "name": "horizontal-aside-width",
          "type": "CssValue",
          "description": "The width of the aside content area when using the 'horizontal' modifier.",
          "default": "40%"
        },
        {
          "name": "aside-rule",
          "type": "Boolean",
          "description": "Whether or not to have a rule separating body and aside",
          "default": "true"
        },
        {
          "name": "aside-rule-width",
          "type": "Dimension",
          "description": "Size of rule",
          "default": "1px"
        },
        {
          "name": "aside-rule-color",
          "type": "String",
          "description": "Color of rule",
          "default": "\"rule-light\""
        },
        {
          "name": "aside-background-color",
          "type": "Color",
          "description": "Color of aside background color",
          "default": "null"
        },
        {
          "name": "overlay-enabled",
          "type": "Color",
          "description": "Enable the output of overlay modifier styles",
          "default": "false"
        },
        {
          "name": "overlay-aspect-ratio",
          "type": "Number",
          "description": "The aspect ratio of the card when using the 'overlay' modifier.",
          "default": "4/3"
        },
        {
          "name": "overlay-color",
          "type": "Color",
          "description": "The type color of the card when using card--overlay.",
          "default": "white"
        },
        {
          "name": "overlay-title-color",
          "type": "Color",
          "description": "The color of the title when using the 'overlay' modifier.",
          "default": "null"
        },
        {
          "name": "overlay-title-color-hover",
          "type": "Color",
          "description": "The type color of the card title when hovered or focused and when using card--overlay.",
          "default": "rgb(79, 175, 230)"
        },
        {
          "name": "overlay-background-color",
          "type": "Color",
          "description": "The background color for the text box when using card--overlay.",
          "default": "rgba(0, 0, 0, 0.6)"
        },
        {
          "name": "overlay-background-color-hover",
          "type": "Color",
          "description": "The background color of the overlay when hovered or focused.",
          "default": "red"
        },
        {
          "name": "overlay-footer-background-color",
          "type": "Color",
          "description": "The background color of the footer when using the 'overlay' modifier. Defaults to 'overlay-background-color'.",
          "default": "null"
        },
        {
          "name": "overlay-shading",
          "type": "Boolean",
          "description": "Whether to apply a gradient shading to the overlay to improve text readability.",
          "default": "true"
        },
        {
          "name": "overlay-shading-height",
          "type": "Dimension",
          "description": "The height of the gradient shading on the overlay.",
          "default": "4rem"
        },
        {
          "name": "overlay-body-padding-y",
          "type": "Dimension",
          "description": "The top and bottom padding of the body content when using the 'overlay' modifier.",
          "default": "1rem"
        }
      ]
    },
    "card-grid": {
      "description": "SCSS Configuration for card-grid. To override these defaults, use the set mixin: `@include ulu.component-card-grid-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "gap",
          "type": "Dimension",
          "description": "The grid gap of the card-grid.",
          "default": "1.5rem"
        },
        {
          "name": "min-width",
          "type": "Dimension",
          "description": "The min-width for the implicit grid columns.",
          "default": "20rem"
        },
        {
          "name": "compact-gap",
          "type": "Dimension",
          "description": "The grid gap of the card-grid--compact.",
          "default": "0.75rem"
        },
        {
          "name": "compact-min-width",
          "type": "Dimension",
          "description": "The min-width for the implicit grid columns of the card-grid--compact.",
          "default": "14rem"
        }
      ]
    },
    "counter-list": {
      "description": "SCSS Configuration for counter-list. To override these defaults, use the set mixin: `@include ulu.component-counter-list-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "margin",
          "type": "List|CssUnit",
          "description": "The top and bottom margin of the list.",
          "default": "(2rem 0)"
        },
        {
          "name": "item-margin",
          "type": "List|CssUnit",
          "description": "The margin applied to each list item.",
          "default": "((0 0 1rem 0))"
        },
        {
          "name": "align-items",
          "type": "Keyword",
          "description": "How to align the counter (flexbox align-items values)",
          "default": "baseline"
        },
        {
          "name": "counter-width",
          "type": "CssUnit",
          "description": "The width and height (if height is falsy)",
          "default": "2.4em"
        },
        {
          "name": "counter-height",
          "type": "CssUnit",
          "description": "The height (optional)",
          "default": "null"
        },
        {
          "name": "counter-gap",
          "type": "CssUnit",
          "description": "The gap between the counter and the list item content.",
          "default": "1em"
        },
        {
          "name": "counter-style",
          "type": "String",
          "description": "The list-style-type used for the counter.",
          "default": "numeric"
        },
        {
          "name": "counter-border-radius",
          "type": "Keyword|Percentage",
          "description": "The border-radius of the counter element.",
          "default": "50%"
        },
        {
          "name": "counter-font-size",
          "type": "CssUnit",
          "description": "The font-size of the counter text.",
          "default": "1.2em"
        },
        {
          "name": "counter-color",
          "type": "Color|String",
          "description": "The text color of the counter. Accepts color names or hex codes.",
          "default": "white"
        },
        {
          "name": "counter-background-color",
          "type": "Color|String",
          "description": "The background color of the counter. Refers to a color in the color module.",
          "default": "\"accent\""
        },
        {
          "name": "extra-selector",
          "type": "String",
          "description": "Additional selectors to include table styling.",
          "default": "null"
        }
      ]
    },
    "css-icon": {
      "description": "SCSS Configuration for css-icon. To override these defaults, use the set mixin: `@include ulu.component-css-icon-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "active-selector",
          "type": "String",
          "description": "> summary &, &.is-active] The active selector for css-icon.",
          "default": "details[open"
        },
        {
          "name": "color",
          "type": "Color",
          "description": "The color of the css-icon.",
          "default": "currentColor"
        },
        {
          "name": "font-family",
          "type": "CssValue",
          "default": "('Courier New', monospace)"
        },
        {
          "name": "margin",
          "type": "CssValue",
          "description": "The icon's margin",
          "default": "(0 0.15em)"
        },
        {
          "name": "size",
          "type": "Dimension",
          "description": "The width, height and font size of the css-icon.",
          "default": "1.1em"
        },
        {
          "name": "stroke-border-radius",
          "type": "Dimension",
          "description": "The rounding of the strokes for css-icon.",
          "default": "1px"
        },
        {
          "name": "stroke-width",
          "type": "Dimension",
          "description": "The stroke width of the css-icon.",
          "default": "0.15em"
        },
        {
          "name": "drag-gap-multiplier",
          "type": "Dimension",
          "description": "Multiplier used to adjust the space between drag-x/drag-y icons (used for all stroke sizes)",
          "default": "0.75"
        },
        {
          "name": "text-offset",
          "type": "Dimension",
          "description": "When using an icon with text, adds a margin to match the text height.",
          "default": "0.05em"
        },
        {
          "name": "text-size",
          "type": "Dimension",
          "description": "font-size of the icon when using text.",
          "default": "1em"
        },
        {
          "name": "vertical-align",
          "type": "Dimension",
          "description": "Vertical-align for css-icon",
          "default": "-0.2em"
        },
        {
          "name": "transition-duration",
          "type": "Time",
          "description": "The duration length for the transition.",
          "default": "200ms"
        },
        {
          "name": "transition-timing-function",
          "type": "CssValue",
          "description": "The timing function for the transition.",
          "default": "ease-in"
        },
        {
          "name": "stroke-sizes",
          "type": "Map",
          "description": "Modifiers to adjust stroke sizes for the icons.",
          "default": "Map"
        }
      ]
    },
    "data-grid": {
      "description": "SCSS Configuration for data-grid. To override these defaults, use the set mixin: `@include ulu.component-data-grid-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "attribute",
          "type": "String",
          "description": "Default attribute to use for grid mixin.",
          "default": "data-grid"
        },
        {
          "name": "attribute-container",
          "type": "String",
          "description": "Default attribute to use for grid's container.",
          "default": "data-grid-container"
        },
        {
          "name": "columns",
          "type": "Number",
          "description": "Default for grid mixin.",
          "default": "12"
        },
        {
          "name": "gutter",
          "type": "Number",
          "description": "Default gutter for grid mixin.",
          "default": "14px"
        },
        {
          "name": "position-class-column-first",
          "type": "String",
          "description": "Classname for position system (JS) grid uses to display rules (layout can flow, script will update classes)",
          "default": "position-column-first"
        },
        {
          "name": "position-class-column-last",
          "type": "String",
          "description": "See definition above",
          "default": "position-column-last"
        },
        {
          "name": "position-class-row-first",
          "type": "String",
          "description": "See definition above",
          "default": "position-row-first"
        },
        {
          "name": "position-class-row-last",
          "type": "String",
          "description": "See definition above",
          "default": "position-row-last"
        },
        {
          "name": "sticky-bottom",
          "type": "Dimension",
          "description": "When a column is sticky bottom this is the value for the sticky offset, set to --ulu-sticky-offset-bottom by default",
          "default": "var(--ulu-sticky-offset-bottom, 0)"
        },
        {
          "name": "sticky-top",
          "type": "Dimension",
          "description": "When a column is sticky top this is the value for the sticky offset, set to --ulu-sticky-offset-top by default",
          "default": "var(--ulu-sticky-offset-top, 0)"
        },
        {
          "name": "rule-color",
          "type": "String",
          "description": "The color of the rule. This uses color.scss, so the value of this option should be a color variable from color.scss.",
          "default": "\"rule\""
        },
        {
          "name": "rule-size",
          "type": "Dimension",
          "description": "The width of the rule",
          "default": "1px"
        },
        {
          "name": "extra-breakpoints",
          "type": "Map",
          "description": "Default extra breakpoints for grid mixin",
          "default": "Map"
        },
        {
          "name": "extra-gutter-scales",
          "type": "Map",
          "description": "Extra options for gutter scales.",
          "default": "Map"
        },
        {
          "name": "extra-rule-styles",
          "type": "Map",
          "description": "Extra options for rule styles.",
          "default": "Map"
        }
      ]
    },
    "data-list": {
      "description": "SCSS Configuration for data-list. To override these defaults, use the set mixin: `@include ulu.component-data-list-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "grid-template-columns",
          "type": "String",
          "description": "The default master grid columns.",
          "default": "1fr"
        },
        {
          "name": "grid-template-columns-stacked",
          "type": "String",
          "description": "The stacked grid columns (default is single column stack).",
          "default": "100%"
        },
        {
          "name": "row-gap",
          "type": "Dimension",
          "description": "The space between list items (rows). Forced to 0 if overlap-borders is true.",
          "default": "0"
        },
        {
          "name": "column-gap",
          "type": "Dimension",
          "description": "The space between columns.",
          "default": "1rem"
        },
        {
          "name": "column-gap-stacked",
          "type": "Dimension",
          "description": "The space between stacked elements when stacked within an item.",
          "default": "0.5rem"
        },
        {
          "name": "group-gap-stacked",
          "type": "Dimension",
          "description": "The space between stacked elements inside a nested column when stacked.",
          "default": "0.25rem"
        },
        {
          "name": "padding",
          "type": "Dimension",
          "description": "The padding inside list items.",
          "default": "1rem clamp(0.65rem, 3vw, 1.5rem),"
        },
        {
          "name": "overlap-borders",
          "type": "Boolean",
          "description": "If true, applies a negative top margin to items to prevent double-thick borders between touching rows, and forces row-gap to 0.",
          "default": "true"
        },
        {
          "name": "border-width",
          "type": "Dimension",
          "description": "The border width for the list items.",
          "default": "1px"
        },
        {
          "name": "border-color",
          "type": "String",
          "description": "The border color key for the list items.",
          "default": "\"rule-light\""
        },
        {
          "name": "border-radius",
          "type": "Dimension",
          "description": "The border radius for the list items.",
          "default": "null"
        },
        {
          "name": "box-shadow",
          "type": "CssValue",
          "description": "The box shadow for the list items.",
          "default": "null"
        },
        {
          "name": "background-color",
          "type": "Color",
          "description": "The default background color for items.",
          "default": "transparent"
        },
        {
          "name": "background-color-even",
          "type": "Color",
          "description": "The background color for even-numbered items (for striping).",
          "default": "null"
        },
        {
          "name": "background-color-hover",
          "type": "Color",
          "description": "The background color for items on hover.",
          "default": "null"
        },
        {
          "name": "clickable-background-color-hover",
          "type": "Color",
          "description": "The background color for clickable items on hover.",
          "default": "#e8e8e8"
        },
        {
          "name": "clickable-border-color-hover",
          "type": "String",
          "description": "The border color for interactive (clickable) items on hover/focus.",
          "default": "\"control-border-hover\""
        },
        {
          "name": "stacked-breakpoint",
          "type": "String",
          "description": "The breakpoint below which groups stack. Defaults to the global default breakpoint via function fallback.",
          "default": "true"
        },
        {
          "name": "span-count",
          "type": "Number",
          "description": "The number of span modifiers to create, increase if needed, (ie. data-list__column--span-2, --span-3, ...)",
          "default": "4"
        },
        {
          "name": "header-font-weight",
          "type": "CssValue",
          "description": "The font weight for the header row text.",
          "default": "bold"
        },
        {
          "name": "header-border-bottom-width",
          "type": "Dimension",
          "description": "The width for the bottom border of the header row.",
          "default": "2px"
        },
        {
          "name": "header-border-bottom-color",
          "type": "String",
          "description": "The color key for the bottom border of the header row.",
          "default": "\"rule\""
        }
      ]
    },
    "data-table": {
      "description": "SCSS Configuration for data-table. To override these defaults, use the set mixin: `@include ulu.component-data-table-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "cell-padding",
          "type": "Dimension",
          "description": "Padding of the th and td elements.",
          "default": "(0.5em,)"
        },
        {
          "name": "text-align",
          "type": "CssValue",
          "description": "Text align of the table.",
          "default": "left"
        },
        {
          "name": "type-size",
          "type": "String",
          "description": "Font size of the table.",
          "default": "\"small\""
        },
        {
          "name": "vertical-align",
          "type": "CssValue",
          "description": "Vertical align for td/th",
          "default": "top"
        },
        {
          "name": "background-color",
          "type": "Color",
          "description": "Background color of table container.",
          "default": "white"
        },
        {
          "name": "header-background-color",
          "type": "Color",
          "description": "Background color of the the table header.",
          "default": "#f5f4f4"
        },
        {
          "name": "body-background-color",
          "type": "Color",
          "description": "Background color of table body.",
          "default": "white"
        },
        {
          "name": "footer-background-color",
          "type": "Color",
          "description": "Background color of table footer.",
          "default": "#f3f3f3"
        },
        {
          "name": "color",
          "type": "Color",
          "description": "Font color of the table.",
          "default": "\"type-secondary\""
        },
        {
          "name": "header-color",
          "type": "Color",
          "description": "Font color for the table header.",
          "default": "\"headline\""
        },
        {
          "name": "footer-color",
          "type": "Color",
          "description": "Font color for the table footer.",
          "default": "null"
        },
        {
          "name": "line-height",
          "type": "Number",
          "description": "Line height for the table.",
          "default": "true"
        },
        {
          "name": "column-min-width",
          "type": "Dimension",
          "description": "Min-width of the th element.",
          "default": "6em"
        },
        {
          "name": "first-column-large-min-width",
          "type": "Dimension",
          "description": "When using \"--large-first\" style, the min width of the first th element.",
          "default": "15em"
        },
        {
          "name": "border-width",
          "type": "Dimension",
          "description": "Border width of the table.",
          "default": "1px"
        },
        {
          "name": "border-color",
          "type": "Color",
          "description": "Border color for the table.",
          "default": "#dddddd"
        },
        {
          "name": "striped-row-background-color",
          "type": "Color",
          "description": "Background color for even rows if using \"--striped\" styling.",
          "default": "#eeeeee"
        },
        {
          "name": "muted-row-background-color",
          "type": "Color",
          "description": "Background color for odd rows if using \"--striped\" styling.",
          "default": "#ccc"
        },
        {
          "name": "muted-row-border-color",
          "type": "Color",
          "description": "Border color for odd rows if using \"--striped\" styling.",
          "default": "null"
        },
        {
          "name": "highlighted-row-background-color",
          "type": "Color",
          "description": "Background color row if using \"__row-highlighted\" styling.",
          "default": "#ccc"
        },
        {
          "name": "highlighted-row-border-color",
          "type": "Color",
          "description": "Border color row if using \"__row-highlighted\" styling.",
          "default": "null"
        },
        {
          "name": "large-header-cell-padding-y",
          "type": "Dimension",
          "description": "Vertical padding of header if using \"--large-header\" styling.",
          "default": "1em"
        },
        {
          "name": "caption-type-size",
          "type": "String",
          "description": "Type size of table caption.",
          "default": "\"large\""
        },
        {
          "name": "caption-background-color",
          "type": "Color",
          "description": "Background color of table caption.",
          "default": "null"
        },
        {
          "name": "caption-font-weight",
          "type": "CssValue",
          "description": "Font weight of caption.",
          "default": "bold"
        },
        {
          "name": "caption-border-bottom",
          "type": "CssBalue",
          "description": "Bottom border of the caption.",
          "default": "null"
        },
        {
          "name": "caption-margin",
          "type": "Dimension",
          "description": "Margin of the caption.",
          "default": "(0,)"
        },
        {
          "name": "caption-padding",
          "type": "Dimension",
          "description": "Padding of the caption.",
          "default": "(0.65em 0)"
        },
        {
          "name": "caption-text-align",
          "type": "CssValue",
          "description": "Text align of the caption.",
          "default": "left"
        },
        {
          "name": "extra-selector",
          "type": "String",
          "description": "Additional selectors to include table styling.",
          "default": "\".wysiwyg table\""
        }
      ]
    },
    "definition-list": {
      "description": "SCSS Configuration for definition-list. To override these defaults, use the set mixin: `@include ulu.component-definition-list-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "term-font-weight",
          "type": "String",
          "description": "The font-weight of the dt element.",
          "default": "true"
        },
        {
          "name": "term-color",
          "type": "String",
          "description": "Set a color for the term",
          "default": "null"
        },
        {
          "name": "line-height",
          "type": "Dimension",
          "description": "The line-height of the definition list.",
          "default": "true"
        },
        {
          "name": "item-margin",
          "type": "CssUnit",
          "description": "The spacing for each item.",
          "default": "0.75em"
        },
        {
          "name": "separator",
          "type": "Boolean",
          "description": "Whether to show a separator between items.",
          "default": "true"
        },
        {
          "name": "separator-border",
          "type": "Border",
          "description": "The border style for the separator.",
          "default": "true"
        },
        {
          "name": "separator-padding",
          "type": "Dimension",
          "description": "The padding for the separator.",
          "default": "0.75em"
        },
        {
          "name": "table-breakpoint",
          "type": "String",
          "description": "The breakpoint for the table layout.",
          "default": "medium"
        },
        {
          "name": "table-template-columns",
          "type": "String",
          "description": "The grid-template-columns for the table layout.",
          "default": "(25% 75%)"
        },
        {
          "name": "table-gap",
          "type": "Dimension",
          "description": "The gap for the table layout.",
          "default": "1rem"
        },
        {
          "name": "inline-description-separator",
          "type": "String",
          "description": "The separator for multiple dd elements in inline layout.",
          "default": "\",\""
        },
        {
          "name": "inline-term-separator",
          "type": "String",
          "description": "The separator for dt elements in inline layout.",
          "default": "\":\""
        }
      ]
    },
    "flipcard": {
      "description": "SCSS Configuration for flipcard. To override these defaults, use the set mixin: `@include ulu.component-flipcard-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "background-color",
          "type": "Color",
          "description": "Background color of the text-only flipcard front.",
          "default": "\"background\""
        },
        {
          "name": "background-color-image",
          "type": "Color",
          "description": "Background color of the image flipcard front.",
          "default": "\"accent\""
        },
        {
          "name": "image-opacity",
          "type": "Number",
          "description": "Opacity of the image to allow shading from the background color.",
          "default": "0.7"
        },
        {
          "name": "background-color-back",
          "type": "Color",
          "description": "Background color on the back of the flipcard.",
          "default": "\"placeholder-background\""
        },
        {
          "name": "border-width",
          "type": "Dimension",
          "description": "Flipcard border width",
          "default": "1px"
        },
        {
          "name": "border-color",
          "type": "Color",
          "description": "Flipcard border color",
          "default": "\"rule-light\""
        },
        {
          "name": "border-radius",
          "type": "Dimension",
          "description": "Border radius for flipcard.",
          "default": "6px"
        },
        {
          "name": "border-color-hover",
          "type": "Color",
          "description": "border color when hovered.",
          "default": "\"rule\""
        },
        {
          "name": "border-width-focus",
          "type": "Dimension",
          "description": "Border width that shows when focused.",
          "default": "3px"
        },
        {
          "name": "border-color-focus",
          "type": "Color",
          "description": "border color when focused",
          "default": "\"focus\""
        },
        {
          "name": "anim-duration",
          "type": "Time",
          "description": "Animation duration.",
          "default": "430ms"
        },
        {
          "name": "anim-delay",
          "type": "Time",
          "description": "Animation delay.",
          "default": "200ms"
        },
        {
          "name": "anim-front-close",
          "type": "String",
          "description": "Animation name for front close.",
          "default": "\"FlipcardFrontClose\""
        },
        {
          "name": "anim-front-open",
          "type": "String",
          "description": "Animation name for front open.",
          "default": "\"FlipcardFrontOpen\""
        },
        {
          "name": "anim-back-open",
          "type": "String",
          "description": "Animation name for back open.",
          "default": "\"FlipcardBackOpen\""
        },
        {
          "name": "anim-timing-function",
          "type": "CssValue",
          "description": "Animation timing function.",
          "default": "ease-out"
        },
        {
          "name": "padding",
          "type": "Dimension",
          "description": "Padding for the flipcard.",
          "default": "1.5rem"
        },
        {
          "name": "title-color",
          "type": "Color",
          "description": "Color of the front page text.",
          "default": "\"type\""
        },
        {
          "name": "title-color-hover",
          "type": "Color",
          "description": "Color of the front page text when hovered or focused.",
          "default": "\"link-hover\""
        },
        {
          "name": "icon-color",
          "type": "Color",
          "description": "Color of the icon.",
          "default": "\"type-secondary\""
        },
        {
          "name": "icon-color-hover",
          "type": "Color",
          "description": "Color of the icon when hovered or focused.",
          "default": "\"link-hover\""
        },
        {
          "name": "icon-color-image",
          "type": "Color",
          "description": "Color of the icon when using an image.",
          "default": "\"white\""
        },
        {
          "name": "icon-color-image-hover",
          "type": "Color",
          "description": "Color of the icon when using an image and hovered or focused.",
          "default": "\"white\""
        },
        {
          "name": "title-color-image",
          "type": "Color",
          "description": "Color of the front page text when using an image.",
          "default": "\"white\""
        },
        {
          "name": "title-color-image-hover",
          "type": "Color",
          "description": "Color of the front page text when using an image and hovered or focused.",
          "default": "\"white\""
        },
        {
          "name": "bottom-shadow",
          "type": "Boolean",
          "description": "Boolean that enables a bottom shadow to the image flipcard.",
          "default": "true"
        }
      ]
    },
    "flipcard-grid": {
      "description": "SCSS Configuration for flipcard-grid. To override these defaults, use the set mixin: `@include ulu.component-flipcard-grid-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "gutter",
          "type": "Dimension",
          "description": "The gutter between grid items.",
          "default": "1rem"
        },
        {
          "name": "grid-template-columns",
          "type": "CssValue",
          "description": "The size ratio of items in the grid.",
          "default": "1fr 1fr"
        }
      ]
    },
    "form-theme": {
      "description": "SCSS Configuration for form-theme. To override these defaults, use the set mixin: `@include ulu.component-form-theme-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "color",
          "type": "CssValue",
          "description": "Color of the text of the form.",
          "default": "inherit"
        },
        {
          "name": "color-placeholder",
          "type": "CssValue",
          "description": "Color for the placeholder text.",
          "default": "\"type-tertiary\""
        },
        {
          "name": "drupal",
          "type": "Boolean",
          "description": "Toggle if using drupal to include drupal specific styling.",
          "default": "false"
        },
        {
          "name": "error-color",
          "type": "Color",
          "description": "Type color for errors.",
          "default": "\"danger\""
        },
        {
          "name": "error-highlight-color",
          "type": "Color",
          "description": "Outline color of error container.",
          "default": "rgb(251, 242, 242)"
        },
        {
          "name": "error-selector",
          "type": "String",
          "description": "Class for error styling.",
          "default": "\".is-danger\""
        },
        {
          "name": "file-button-style",
          "type": "Map",
          "description": "@joe-check should this have a fallback",
          "default": "true"
        },
        {
          "name": "font-weight-label",
          "type": "CssValue",
          "description": "Font weight of the labels.",
          "default": "bold"
        },
        {
          "name": "font-weight-legend",
          "type": "CssValue",
          "description": "Font weight of the legend.",
          "default": "bold"
        },
        {
          "name": "font-weight-placeholder",
          "type": "CssValue",
          "description": "Font weight of placeholder text.",
          "default": "normal"
        },
        {
          "name": "font-weight-input",
          "type": "CssValue",
          "description": "Font weight of input text.",
          "default": "null"
        },
        {
          "name": "font-weight-textarea",
          "type": "CssValue",
          "description": "Font weight of textarea text.",
          "default": "null"
        },
        {
          "name": "font-weight-select",
          "type": "CssValue",
          "description": "Font weight of select text.",
          "default": "null"
        },
        {
          "name": "input-border",
          "type": "CssValue",
          "description": "Border of the input.",
          "default": "element.get-rule-style()"
        },
        {
          "name": "input-border-radius",
          "type": "Dimension",
          "description": "Border radius of the input.",
          "default": "0"
        },
        {
          "name": "input-padding-x",
          "type": "Dimension",
          "description": "Horizontal padding of the input.",
          "default": "0.5em"
        },
        {
          "name": "input-padding-y",
          "type": "Dimension",
          "description": "Vertical padding of the input.",
          "default": "0.25em"
        },
        {
          "name": "input-min-width",
          "type": "Dimension",
          "description": "Min width of the input.",
          "default": "10em"
        },
        {
          "name": "input-background-color",
          "type": "Color",
          "description": "Background color of the input.",
          "default": "white"
        },
        {
          "name": "item-align-items",
          "type": "CssValue",
          "description": "Alignment for items inline.",
          "default": "flex-start"
        },
        {
          "name": "item-border-radius",
          "type": "Dimension",
          "description": "Border radius for __item.",
          "default": "null"
        },
        {
          "name": "item-highlight-width",
          "type": "Dimension",
          "description": "Width of the item box highlight.",
          "default": "6px"
        },
        {
          "name": "item-margin-y",
          "type": "Dimension",
          "description": "Vertical margin for items.",
          "default": "0.75em"
        },
        {
          "name": "required-color",
          "type": "Color",
          "description": "Color for required text.",
          "default": "\"danger\""
        },
        {
          "name": "text-input-margin-bottom",
          "type": "Dimension",
          "description": "Bottom margin for the label.",
          "default": "0.5em"
        },
        {
          "name": "text-input-margin-top",
          "type": "Dimension",
          "description": "Top margin for the label.",
          "default": "1em"
        },
        {
          "name": "warning-color",
          "type": "Color",
          "description": "The warning text color.",
          "default": "\"warning\""
        },
        {
          "name": "warning-highlight-color",
          "type": "Color",
          "description": "Outline color of the warning.",
          "default": "rgb(255, 249, 237)"
        },
        {
          "name": "warning-selector",
          "type": "String",
          "description": "Selector for adding warning styles.",
          "default": "\".is-warning\""
        },
        {
          "name": "check-input-color",
          "type": "Color",
          "description": "@joe-check unused",
          "default": "currentColor"
        },
        {
          "name": "check-input-size",
          "type": "Dimension",
          "description": "Size of input box.",
          "default": "1.15em"
        },
        {
          "name": "check-input-touch-size",
          "type": "Dimension",
          "description": "Touchable size of the input box.",
          "default": "2em"
        },
        {
          "name": "check-input-background-color",
          "type": "Color",
          "description": "Background color for the check input.",
          "default": "white"
        },
        {
          "name": "check-input-background-color-checked",
          "type": "Color",
          "description": "Background color for the check input when checked.",
          "default": "white"
        },
        {
          "name": "check-input-background-color-hover",
          "type": "Color",
          "description": "Background color for the check input when hovered or focused.",
          "default": "white"
        },
        {
          "name": "check-input-background-color-indeterminate",
          "type": "Color",
          "description": "Background color for the indeterminate check input.",
          "default": "white"
        },
        {
          "name": "check-input-border",
          "type": "Map",
          "description": "@joe-check check how this is called with a fallback in the styles mixin",
          "default": "null"
        },
        {
          "name": "check-input-border-color-hover",
          "type": "Color",
          "description": "Check input border color.",
          "default": "null"
        },
        {
          "name": "check-input-border-color-checked",
          "type": "Color",
          "description": "Check input border color when checked.",
          "default": "null"
        },
        {
          "name": "check-input-border-color-indeterminate",
          "type": "Color",
          "description": "Indeterminate check input border color.",
          "default": "null"
        },
        {
          "name": "check-input-border-color-focus",
          "type": "Color",
          "description": "Check input border color when hovered or focused.",
          "default": "null"
        },
        {
          "name": "check-input-outline",
          "type": "CssValue",
          "description": "Check input outline.",
          "default": "null"
        },
        {
          "name": "check-input-outline-hover",
          "type": "CssValue",
          "description": "Check input outline when hovered.",
          "default": "null"
        },
        {
          "name": "check-input-outline-checked",
          "type": "CssValue",
          "description": "Check input outline when checked.",
          "default": "null"
        },
        {
          "name": "check-input-outline-focus",
          "type": "CssValue",
          "description": "Check input outline when focused.",
          "default": "1px solid white"
        },
        {
          "name": "check-input-touch-color-hover",
          "type": "Color",
          "description": "Check input background color when hovered.",
          "default": "#e8e8e8"
        },
        {
          "name": "check-input-touch-color-focus",
          "type": "Color",
          "description": "Check input background color when focused.",
          "default": "null"
        },
        {
          "name": "check-input-radio-size",
          "type": "Dimension",
          "description": "Radio border size.",
          "default": "0.3em"
        },
        {
          "name": "check-input-checkmark-width",
          "type": "Dimension",
          "description": "Width of checkmark.",
          "default": "0.38em"
        },
        {
          "name": "check-input-checkmark-height",
          "type": "Dimension",
          "description": "Height of checkmark.",
          "default": "0.68em"
        },
        {
          "name": "check-input-checkmark-offset-y",
          "type": "Dimension",
          "description": "vertical offset of checkmark.",
          "default": "-0.2em"
        },
        {
          "name": "check-input-checkmark-stroke-size",
          "type": "Dimension",
          "description": "stroke size of checkmark.",
          "default": "0.18em"
        },
        {
          "name": "check-input-mark-color",
          "type": "Color",
          "description": "Check input color.",
          "default": "currentColor"
        },
        {
          "name": "check-input-mark-color-hover",
          "type": "Color",
          "description": "Check input color when hovered.",
          "default": "null"
        },
        {
          "name": "check-input-mark-color-focus",
          "type": "Color",
          "description": "Check input color when focused.",
          "default": "null"
        },
        {
          "name": "check-input-mark-color-checked",
          "type": "Color",
          "description": "Check input color when checked.",
          "default": "null"
        },
        {
          "name": "check-input-mark-color-indeterminate",
          "type": "Color",
          "description": "Check input color when indeterminate.",
          "default": "null"
        },
        {
          "name": "check-input-disabled-opacity",
          "type": "Number",
          "description": "Opacity of the check input when disabled.",
          "default": "0.6"
        },
        {
          "name": "check-input-border-radius",
          "type": "Dimension",
          "description": "Checkbox input border radius.",
          "default": "0"
        },
        {
          "name": "description-color",
          "type": "Color",
          "description": "Color of help text.",
          "default": "false"
        },
        {
          "name": "description-margin",
          "type": "CssValue",
          "description": "Margin for help text.",
          "default": "(0.25em 0)"
        },
        {
          "name": "description-max-width",
          "type": "Dimension",
          "description": "Max width of help text.",
          "default": "25em"
        },
        {
          "name": "description-line-height",
          "type": "Number",
          "description": "Line height for description element, defaults to typography line-height-dense",
          "default": "true"
        },
        {
          "name": "fieldset-background",
          "type": "Color",
          "description": "Background color of fieldset element.",
          "default": "transparent"
        },
        {
          "name": "fieldset-border",
          "type": "CssValue",
          "description": "Border for fieldset",
          "default": "none"
        },
        {
          "name": "fieldset-margin-bottom",
          "type": "Dimension",
          "description": "Bottom margin for the fieldset element.",
          "default": "1rem"
        },
        {
          "name": "fieldset-margin-top",
          "type": "Dimension",
          "description": "Bottom margin for the fieldset element.",
          "default": "1rem"
        },
        {
          "name": "fieldset-padding",
          "type": "Dimension",
          "description": "Padding for the fieldset element.",
          "default": "0"
        },
        {
          "name": "fieldset-margin-compact",
          "type": "Dimension",
          "description": "@joe-check unused",
          "default": "0"
        },
        {
          "name": "fieldset-border-radius",
          "type": "Dimension",
          "description": "Border radius of the fieldset element.",
          "default": "0"
        },
        {
          "name": "fieldset-legend-color",
          "type": "Color",
          "description": "Text color for the fieldset's label.",
          "default": "inherit"
        },
        {
          "name": "fieldset-legend-border-bottom",
          "type": "Dimension",
          "description": "Bottom border color for the fieldset's label",
          "default": "null"
        },
        {
          "name": "fieldset-legend-padding-bottom",
          "type": "Dimension",
          "description": "Bottom padding for the fieldset's label",
          "default": "null"
        },
        {
          "name": "select-border-radius",
          "type": "Dimension",
          "description": "Border radius for the select element.",
          "default": "4px"
        },
        {
          "name": "select-background-color",
          "type": "Color",
          "description": "Background color for the select element.",
          "default": "null"
        },
        {
          "name": "select-border",
          "type": "CssValue",
          "description": "The border for the select element. Fallback to input border.",
          "default": "null"
        },
        {
          "name": "select-padding-x",
          "type": "Dimension",
          "description": "Horizontal padding for the select element. Fallback to input-padding-x.",
          "default": "null"
        },
        {
          "name": "select-padding-y",
          "type": "Dimension",
          "description": "Vertical padding for the select element. Fallback to input-padding-y.",
          "default": "null"
        },
        {
          "name": "select-image",
          "type": "CssValue",
          "description": "Url for select element's background image.",
          "default": "null"
        },
        {
          "name": "select-image-size",
          "type": "Dimension",
          "description": "Background size for the select image.",
          "default": "0.9em"
        },
        {
          "name": "select-image-offset",
          "type": "Dimension",
          "description": "Offset for the select image.",
          "default": "0.7em"
        },
        {
          "name": "select-image-margin",
          "type": "Dimension",
          "description": "select image margin.",
          "default": "0.65em"
        },
        {
          "name": "inline-gap",
          "type": "Dimension",
          "description": "Gap between items that are inline like checkboxes",
          "default": "1em"
        }
      ]
    },
    "graphic-text-group": {
      "description": "SCSS Configuration for graphic-text-group. To override these defaults, use the set mixin: `@include ulu.component-graphic-text-group-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "gap",
          "type": "CssUnit",
          "description": "The gap between graphic and text.",
          "default": "1rem"
        },
        {
          "name": "gap-compact",
          "type": "CssUnit",
          "description": "The smaller gap applied when the compact modifier is used.",
          "default": "0.5rem"
        },
        {
          "name": "margin",
          "type": "List",
          "description": "Margin applied to the group.",
          "default": "2em 0"
        },
        {
          "name": "graphic-width",
          "type": "CssUnit",
          "description": "The default safe width for the graphic.",
          "default": "3.5rem"
        },
        {
          "name": "rule-border",
          "type": "Border",
          "description": "The border style for the rules.",
          "default": "true"
        },
        {
          "name": "rule-padding",
          "type": "CssUnit",
          "description": "The padding applied when using rules.",
          "default": "1rem"
        },
        {
          "name": "wrap-breakpoint",
          "type": "String",
          "description": "The breakpoint name at which the layout wraps to a column.",
          "default": "\"small\""
        },
        {
          "name": "separator-border",
          "type": "Border",
          "description": "The border style for the separator between graphic and text.",
          "default": "true"
        },
        {
          "name": "separator-gap",
          "type": "CssUnit",
          "description": "The gap when the separator modifier is used (typically smaller since there are two gaps around the separator).",
          "default": "0.5rem"
        }
      ]
    },
    "headline-label": {
      "description": "SCSS Configuration for headline-label. To override these defaults, use the set mixin: `@include ulu.component-headline-label-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "color",
          "type": "Color",
          "description": "The text color of the headline label.",
          "default": "ulu.cssvar-use(\"color-accent\")"
        },
        {
          "name": "margin-bottom",
          "type": "Dimension",
          "description": "The bottom margin of the headline label.",
          "default": "0.2em"
        },
        {
          "name": "font-weight",
          "type": "String",
          "description": "The font weight of the headline label.",
          "default": "typography.get(\"font-weight-bold\")"
        },
        {
          "name": "font-family",
          "type": "String",
          "description": "The font family of the headline label.",
          "default": "typography.get(\"font-family-sans\")"
        },
        {
          "name": "line-height",
          "type": "Dimension|Number",
          "description": "The font family of the headline label.",
          "default": "typography.get(\"line-height-dense\")"
        },
        {
          "name": "text-transform",
          "type": "String",
          "description": "The font family of the headline label.",
          "default": "null"
        },
        {
          "name": "type-size",
          "type": "String",
          "description": "The typography size preset to use for the headline label (e.g., \"small\", \"medium\", \"large\"), Only uses the font-size value for size",
          "default": "\"small\""
        }
      ]
    },
    "hero": {
      "description": "SCSS Configuration for hero. To override these defaults, use the set mixin: `@include ulu.component-hero-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "extra-split-ratios",
          "type": "Map",
          "description": "A map where the name is the modifier and the value is a list with two percentages (the first percentage will be correspond with the graphic or content depending on selector [ie. .hero--split-graphic-[name] would apply the first percentage to the graphic while hero--split-content-[name] would apply the first percentage to the content])",
          "default": "wide 70/30"
        },
        {
          "name": "breakpoint",
          "type": "String",
          "description": "At what breakpoint the hero goes to small screen styling.",
          "default": "\"medium\""
        },
        {
          "name": "height",
          "type": "Dimension",
          "description": "Height of the hero.",
          "default": "var(--ulu-fullscreen-height)"
        },
        {
          "name": "height-compact",
          "type": "Dimension",
          "description": "Height of the hero when using the \"--compact\" styling.",
          "default": "40vh"
        },
        {
          "name": "graphic-height-stacked",
          "type": "Dimension",
          "description": "Height of the graphic.",
          "default": "60vh"
        },
        {
          "name": "content-max-width",
          "type": "Dimension",
          "description": "Max width of the content.",
          "default": "40rem"
        },
        {
          "name": "content-padding-top",
          "type": "Dimension",
          "description": "Top padding of the content.",
          "default": "3rem"
        },
        {
          "name": "content-padding-bottom",
          "type": "Dimension",
          "description": "Bottom padding of the content.",
          "default": "3rem"
        },
        {
          "name": "text-align",
          "type": "CssValue",
          "description": "Text align of the content.",
          "default": "center"
        }
      ]
    },
    "image-grid": {
      "description": "SCSS Configuration for image-grid. To override these defaults, use the set mixin: `@include ulu.component-image-grid-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "breakpoint",
          "type": "String",
          "description": "Sets the min breakpoint for the grid to print. This uses breakpoint.scss, so the value of this option should be a breakpoint variable from breakpoint.scss.",
          "default": "\"small\""
        },
        {
          "name": "gap",
          "type": "Dimension",
          "description": "The gap between images in the grid.",
          "default": "3px"
        },
        {
          "name": "min-width",
          "type": "Dimension",
          "description": "The min-width of the images in the grid.",
          "default": "math.div(100%, 3)"
        }
      ]
    },
    "input-group": {
      "description": "SCSS Configuration for input-group. To override these defaults, use the set mixin: `@include ulu.component-input-group-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "gap",
          "type": "Dimension",
          "description": "Gap between items when not joined",
          "default": "0.5em"
        },
        {
          "name": "border-radius",
          "type": "Dimension",
          "description": "Border radius for joined items (and cue when not joined). Defaults to form-theme input-border-radius",
          "default": "null"
        },
        {
          "name": "item-min-width",
          "type": "Dimension",
          "description": "Minimum width for items (buttons, cues)",
          "default": "0"
        },
        {
          "name": "item-padding-x",
          "type": "Dimension",
          "description": "Horizontal padding for cue items",
          "default": "0.75em"
        },
        {
          "name": "item-padding-y",
          "type": "Dimension",
          "description": "Vertical padding for cue items. Defaults to button vertical padding.",
          "default": "null"
        },
        {
          "name": "overlap-margin",
          "type": "Dimension",
          "description": "Negative margin for joined items. Defaults to form-theme border width.",
          "default": "null"
        },
        {
          "name": "field-min-width",
          "type": "Dimension",
          "description": "Minimum width for the field item",
          "default": "0"
        },
        {
          "name": "cue-background-color",
          "type": "Color",
          "description": "Background color for cue items",
          "default": "rgba(0,0,0,0.1)"
        },
        {
          "name": "joined-button-radius-match",
          "type": "Color",
          "description": "Whether or not to use the 'border-radius' for input-group vs button's border-radius",
          "default": "true"
        }
      ]
    },
    "list-inline": {
      "description": "SCSS Configuration for list-inline. To override these defaults, use the set mixin: `@include ulu.component-list-inline-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "rule-style",
          "type": "String",
          "description": "Name of element > rule style to use for divider/border",
          "default": "\"light\""
        },
        {
          "name": "margin-top",
          "type": "Dimension",
          "description": "Top margin of list.",
          "default": "0"
        },
        {
          "name": "margin-bottom",
          "type": "Dimension",
          "description": "Bottom margin of list.",
          "default": "1em"
        },
        {
          "name": "space-between",
          "type": "Dimension",
          "description": "Gap between item and dividers",
          "default": "1em"
        },
        {
          "name": "space-between-large",
          "type": "Dimension",
          "description": "Gap between item and dividers when using large-gap modifier",
          "default": "1em"
        }
      ]
    },
    "list-lines": {
      "description": "SCSS Configuration for list-lines. To override these defaults, use the set mixin: `@include ulu.component-list-lines-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "border-first",
          "type": "Boolean",
          "description": "If enabled, adds a top border to the first item in list-lines.",
          "default": "true"
        },
        {
          "name": "border-last",
          "type": "Boolean",
          "description": "If enabled, adds a bottom border to the last item in list-lines.",
          "default": "true"
        },
        {
          "name": "rule-style",
          "type": "String",
          "description": "Name of element > rule style to use for divider/border",
          "default": "\"light\""
        },
        {
          "name": "margin-bottom",
          "type": "Dimension",
          "description": "Bottom margin of list.",
          "default": "1em"
        },
        {
          "name": "margin-top",
          "type": "Dimension",
          "description": "Top margin of list.",
          "default": "0"
        },
        {
          "name": "padding-between",
          "type": "Dimension",
          "description": "Padding between items in list.",
          "default": "1em"
        },
        {
          "name": "padding-between",
          "type": "Dimension",
          "description": "Padding between items in list when using dense modifier",
          "default": "1em"
        },
        {
          "name": "line-height-dense",
          "type": "Dimension",
          "description": "Line height when list lines has dense modifier (defaults to typography line-height-dense)",
          "default": "true"
        }
      ]
    },
    "menu-stack": {
      "description": "SCSS Configuration for menu-stack. To override these defaults, use the set mixin: `@include ulu.component-menu-stack-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "nested-indent",
          "type": "Dimension",
          "description": "The indentation of child lists within the menu-stack.",
          "default": "0.5em"
        },
        {
          "name": "rule-margin",
          "type": "Dimension",
          "description": "Sets the padding and margin of the rule.",
          "default": "0.5em"
        },
        {
          "name": "rule-style",
          "type": "String",
          "description": "Determines the styling of the rule. Uses the rule.scss component.",
          "default": "default"
        },
        {
          "name": "toggle-icon-rotate",
          "type": "Number",
          "description": "Set a value to rotate the collapsible item toggle icon rotation when open (ie. 90deg)",
          "default": "false"
        },
        {
          "name": "label-color",
          "type": "Color",
          "description": "The type color of the label.",
          "default": "null"
        },
        {
          "name": "label-margin",
          "type": "Dimension",
          "description": "The margin of the label.",
          "default": "0.5em"
        },
        {
          "name": "label-text-transform",
          "type": "CssValue",
          "description": "Transforms the label text.",
          "default": "uppercase"
        },
        {
          "name": "label-type-size",
          "type": "CssValue",
          "description": "Adjusts the type size of the label. Only uses font-size from type size.",
          "default": "false"
        },
        {
          "name": "label-font-weight",
          "type": "CssValue",
          "description": "Adjust label font weight",
          "default": "bold"
        },
        {
          "name": "label-line-height",
          "type": "CssValue",
          "description": "Adjust the label line-height, defaults to typography line-height-dense",
          "default": "true"
        },
        {
          "name": "link-active-selectors",
          "type": "list",
          "description": "')] Selectors to apply active styling.",
          "default": "(.is-active, '[aria-current=page"
        },
        {
          "name": "link-background-color",
          "type": "Color",
          "description": "The background color of the menu-stack toggle.",
          "default": "transparent"
        },
        {
          "name": "link-background-color-active",
          "type": "Color",
          "description": "The background color of the menu-stack toggle when active.",
          "default": "rgb(219, 219, 219)"
        },
        {
          "name": "link-background-color-hover",
          "type": "Color",
          "description": "The background color of the menu-stack toggle when hovered or focused.",
          "default": "rgb(219, 219, 219)"
        },
        {
          "name": "link-border-radius",
          "type": "Dimension",
          "description": "The border radius of the menu-stack toggle. If set to true, will use the border radius from the button component.",
          "default": "true"
        },
        {
          "name": "link-color",
          "type": "String",
          "description": "The type color of the menu-stack toggle. This uses color.scss, so the value of this option should be a color variable from color.scss.",
          "default": "link"
        },
        {
          "name": "link-color-active",
          "type": "Color",
          "description": "The type color of the menu-stack toggle when active.",
          "default": "black"
        },
        {
          "name": "link-color-hover",
          "type": "String",
          "description": "The type color of the menu-stack toggle when hovered or focused.  This uses color.scss, so the value of this option should be a color variable from color.scss.",
          "default": "link-hover"
        },
        {
          "name": "link-font-weight",
          "type": "CssValue",
          "description": "The font weight of the menu-stack toggle.",
          "default": "null"
        },
        {
          "name": "link-line-height",
          "type": "CssValue",
          "description": "Adjust the link line-height, defaults to typography line-height-dense",
          "default": "true"
        },
        {
          "name": "link-icon-margin",
          "type": "Dimension",
          "description": "Adds a right margin to the icon.",
          "default": "0.65em"
        },
        {
          "name": "link-icon-width",
          "type": "Dimension",
          "description": "The width of the icon.",
          "default": "1em"
        },
        {
          "name": "link-icon-font-size",
          "type": "Dimension",
          "description": "Set the font-size for the icon (not set by default)",
          "default": "null"
        },
        {
          "name": "link-margin",
          "type": "Dimension",
          "description": "Margin for the menu-stack toggle.",
          "default": "0.2em"
        },
        {
          "name": "link-padding-x",
          "type": "Dimension",
          "description": "Horizontal padding for menu-stack toggle.",
          "default": "1em"
        },
        {
          "name": "link-padding-y",
          "type": "Dimension",
          "description": "Vertical padding for menu-stack toggle.",
          "default": "0.35em"
        },
        {
          "name": "link-separated-margin",
          "type": "Boolean",
          "description": "Enables a margin between the items in the menu-stack.",
          "default": "false"
        },
        {
          "name": "link-separated-rule-style",
          "type": "Boolean",
          "description": "Enables a rule between the items in the menu-stack.",
          "default": "false"
        },
        {
          "name": "selectable-input-width",
          "type": "Dimension",
          "description": "The width of the checkbox/radio input",
          "default": "3em"
        },
        {
          "name": "selectable-input-top",
          "type": "Dimension",
          "description": "To fine tune the y/top value for absolutely positioned input, if you pass null/falsey it will use the padding which isn't always perfect since this is setup to not be centered when wrapping lines in label",
          "default": "0.73em"
        },
        {
          "name": "selectable-input-font-size",
          "type": "Dimension",
          "description": "Optional to set a specific font-size on the input",
          "default": "null"
        },
        {
          "name": "link-transition-duration",
          "type": "Duration",
          "description": "The duration of the link state transition.",
          "default": "200ms"
        },
        {
          "name": "link-transition-properties",
          "type": "List",
          "description": "The properties to transition on link state change.",
          "default": "(border-color, background-color, color, box-shadow)"
        },
        {
          "name": "title-color",
          "type": "CssValue",
          "description": "Color to use for the title modifier",
          "default": "null"
        },
        {
          "name": "title-font-weight",
          "type": "CssValue",
          "description": "The font weight for the title modifier.",
          "default": "bold"
        },
        {
          "name": "title-separator-enabled",
          "type": "Boolean",
          "description": "Enables a separator rule below the title item.",
          "default": "true"
        },
        {
          "name": "title-separator-color",
          "type": "Color",
          "description": "The color of the title separator rule.",
          "default": "rule"
        },
        {
          "name": "title-rule-style",
          "type": "String",
          "description": "The rule style to use for the title separator.",
          "default": "light"
        },
        {
          "name": "title-separated-margin",
          "type": "Boolean",
          "description": "Use specific margin for title separated items.",
          "default": "false"
        },
        {
          "name": "columns-gap",
          "type": "Dimension",
          "description": "The gap between columns in a columns menu stack.",
          "default": "2rem"
        },
        {
          "name": "columns-min-width",
          "type": "Dimension",
          "description": "The minimum width of a column in a columns menu stack.",
          "default": "18rem"
        },
        {
          "name": "compact-link-padding-x",
          "type": "Dimension",
          "description": "The links horizontal padding when using the compact option.",
          "default": "0.75em"
        },
        {
          "name": "compact-link-padding-y",
          "type": "Dimension",
          "description": "The links vertical padding when using the compact option.",
          "default": "0.25em"
        },
        {
          "name": "compact-link-margin",
          "type": "Dimension",
          "description": "Margin between items when compact",
          "default": "0.2em"
        },
        {
          "name": "compact-link-border-radius",
          "type": "Dimension",
          "description": "Unless set will use the normal link border radius",
          "default": "null"
        },
        {
          "name": "compact-selectable-input-width",
          "type": "Dimension",
          "description": "The width of the checkbox/radio input (when compact modifier)",
          "default": "2em"
        },
        {
          "name": "compact-selectable-input-font-size",
          "type": "Dimension",
          "description": "Optional compact input font-size",
          "default": "null"
        },
        {
          "name": "compact-selectable-input-top",
          "type": "Dimension",
          "description": "Optional y/top for input",
          "default": "null"
        },
        {
          "name": "stacked-link-padding-x",
          "type": "Dimension",
          "description": "The links horizontal padding when using the stacked option.",
          "default": "0.4em"
        },
        {
          "name": "stacked-link-padding-y",
          "type": "Dimension",
          "description": "The links vertical padding when using the stacked option.",
          "default": "0.4em"
        },
        {
          "name": "stacked-link-icon-margin",
          "type": "Dimension",
          "description": "Margin between icon and text when stacked.",
          "default": "0.35em"
        },
        {
          "name": "stacked-link-border-radius",
          "type": "Dimension",
          "description": "Border radius for stacked style of links, defaults to element \"border-radius-small\"",
          "default": "true"
        },
        {
          "name": "stacked-link-font-weight",
          "type": "Dimension",
          "description": "Optional font-weight for stacked style",
          "default": "true"
        }
      ]
    },
    "modal": {
      "description": "SCSS Configuration for modal. To override these defaults, use the set mixin: `@include ulu.component-modal-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "backdrop-blur",
          "type": "CssValue",
          "description": "Determines the blur of the backdrop.",
          "default": "4px"
        },
        {
          "name": "backdrop-color",
          "type": "Color",
          "description": "The unblurred background color outside the modal. If set to true, will use the element.scss property for backdrop-color.",
          "default": "true"
        },
        {
          "name": "background-color",
          "type": "Color",
          "description": "The background color of the modal.",
          "default": "white"
        },
        {
          "name": "body-padding",
          "type": "Dimension",
          "description": "The padding of the body content.",
          "default": "1rem"
        },
        {
          "name": "border-radius",
          "type": "CssValue",
          "description": "The border radius of the modal. If set to true, will use the element.scss property for border-radius-large.",
          "default": "true"
        },
        {
          "name": "box-shadow",
          "type": "CssValue",
          "description": "Determines the box-shadow of the modal. If set to true, will use the element.scss property for backdrop-color.",
          "default": "true"
        },
        {
          "name": "height",
          "type": "Dimension",
          "description": "The min-height of the modal.",
          "default": "340px"
        },
        {
          "name": "height-no-header",
          "type": "Dimension",
          "description": "The min-height of the modal.",
          "default": "100px"
        },
        {
          "name": "width",
          "type": "Dimension",
          "description": "The width of the Modal",
          "default": "60rem"
        },
        {
          "name": "min-width",
          "type": "Dimension",
          "description": "The min-width of the Modal (for resizing, etc)",
          "default": "300px"
        },
        {
          "name": "animation-duration",
          "type": "Time",
          "description": "Animation duration for the modal opening.",
          "default": "300ms"
        },
        {
          "name": "animation-duration-exit",
          "type": "Time",
          "description": "Animation duration for the modal closing.",
          "default": "150ms"
        },
        {
          "name": "animation-timing-function",
          "type": "CssValue",
          "description": "The animation timing menu of the modal.",
          "default": "cubic-bezier(0, 0, .2, 1)"
        },
        {
          "name": "close-background-color",
          "type": "Color",
          "description": "Background color for the modal close icon.",
          "default": "null"
        },
        {
          "name": "close-background-color-hover",
          "type": "Close",
          "description": "Background color for the modal close icon when hovered or focused.",
          "default": "null"
        },
        {
          "name": "close-border-color",
          "type": "Color",
          "description": "Border color of the modal__close element. Overrides button border color if using button styling. Fallback to close-background-color.",
          "default": "null"
        },
        {
          "name": "close-border-color-hover",
          "type": "Color",
          "description": "Border color hover of the modal__close element. Overrides button border color if using button styling. Fallback to close-background-color-hover.",
          "default": "null"
        },
        {
          "name": "close-box-shadow",
          "type": "Color",
          "description": "Box-shadow of the modal__close element. Overrides button border color if using button styling. Defaults to remove box-shadow styling.",
          "default": "none"
        },
        {
          "name": "close-color",
          "type": "Color",
          "description": "Type color for the modal close icon.",
          "default": "null"
        },
        {
          "name": "close-color-hover",
          "type": "Color",
          "description": "Type color for the modal close icon when hovered or focused.",
          "default": "null"
        },
        {
          "name": "close-margin",
          "type": "Dimension",
          "description": "The margin for the modal close icon.",
          "default": "0.5rem"
        },
        {
          "name": "header-background-color",
          "type": "Color",
          "description": "Background color for the header.",
          "default": "black"
        },
        {
          "name": "header-border-bottom",
          "type": "CssValue",
          "description": "Bottom-border on the modal header.",
          "default": "none"
        },
        {
          "name": "header-color",
          "type": "Color",
          "description": "Type color of the header.",
          "default": "white"
        },
        {
          "name": "header-padding",
          "type": "Dimension",
          "description": "The padding of the modal header.",
          "default": "1rem"
        },
        {
          "name": "footer-padding",
          "type": "Dimension",
          "description": "The padding of the modal footer.",
          "default": "(0.5rem 1rem)"
        },
        {
          "name": "footer-background-color",
          "type": "Color",
          "description": "The background color of the footer",
          "default": "(0.5rem 1rem)"
        },
        {
          "name": "footer-border-top",
          "type": "Color",
          "description": "The border between body and footer",
          "default": "(0.5rem 1rem)"
        },
        {
          "name": "footer-text-align",
          "type": "CssValue",
          "description": "Text alignment for footer",
          "default": "right"
        },
        {
          "name": "resizer-background-color",
          "type": "Color",
          "description": "The background color of the resizer.",
          "default": "rgb(221, 221, 221)"
        },
        {
          "name": "resizer-background-color-hover",
          "type": "Color",
          "description": "The background color of the resizer when hovered or focused.",
          "default": "rgb(192, 192, 192)"
        },
        {
          "name": "resizer-color",
          "type": "Color",
          "description": "The type color of the resizer.",
          "default": "rgb(99, 99, 99)"
        },
        {
          "name": "resizer-color-hover",
          "type": "Color",
          "description": "The type color of the resizer when hovered or focused.",
          "default": "black"
        },
        {
          "name": "resizer-width",
          "type": "Dimension",
          "description": "The width of the resizer.",
          "default": "1rem"
        },
        {
          "name": "resizer-center-size",
          "type": "Dimension",
          "description": "The width/height of the resizer (in bottom right corner) used when position center with resize enabled",
          "default": "1.65rem"
        },
        {
          "name": "title-color",
          "type": "Color",
          "description": "Type color of the title.",
          "default": "white"
        },
        {
          "name": "title-font-weight",
          "type": "CssValue",
          "description": "Font weight of the title.",
          "default": "bold"
        },
        {
          "name": "title-font-family",
          "type": "CssValue",
          "description": "Font family for title",
          "default": "null"
        },
        {
          "name": "title-icon-margin",
          "type": "Dimension",
          "description": "The margin of the title icon",
          "default": "0.5em"
        },
        {
          "name": "title-size",
          "type": "String",
          "description": "The font-size of the title. This uses typography.scss, so the value of this options should be a variable from typography.scss.",
          "default": "large"
        },
        {
          "name": "title-text-transform",
          "type": "CssValue",
          "description": "Transform option for the title.",
          "default": "null"
        },
        {
          "name": "sizes",
          "type": "Map",
          "description": "Size options to enable unique stylings.",
          "default": "Map"
        },
        {
          "name": "breakpoint",
          "type": "String",
          "description": "Optional breakpoint for modals (used for adaptive things like fullscreen-mobile), if set to true will fallback to breakpoint default",
          "default": "true"
        },
        {
          "name": "frame-aspect-ratio",
          "type": "String",
          "description": "Default aspect ratio for single embedded items in frame-ratio layout",
          "default": "list.slash(16, 9)"
        },
        {
          "name": "frame-fill-min-height",
          "type": "String",
          "description": "Default minimum height for single embedded items in frame-fill layout",
          "default": "65vh"
        }
      ]
    },
    "nav-strip": {
      "description": "SCSS Configuration for nav-strip. To override these defaults, use the set mixin: `@include ulu.component-nav-strip-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "activeSelector",
          "type": "String",
          "description": "Selector that portrays active status.",
          "default": ".is-active"
        },
        {
          "name": "color",
          "type": "Color",
          "description": "Type color for the nav-strip.",
          "default": "\"type-tertiary\""
        },
        {
          "name": "color-active",
          "type": "Color",
          "description": "Type color for the nav-strip when active.",
          "default": "\"type\""
        },
        {
          "name": "color-hover",
          "type": "Color",
          "description": "Type color for the nav-strip when hovered or focused.",
          "default": "\"type-hover\""
        },
        {
          "name": "font-weight",
          "type": "CssValue",
          "description": "Font weight of nav-strip.",
          "default": "null"
        },
        {
          "name": "margin-between",
          "type": "Dimension",
          "description": "Margin between nav-strip items.",
          "default": "2.25em"
        },
        {
          "name": "nowrap",
          "type": "Boolean",
          "description": "Disables the word wrap.",
          "default": "true"
        },
        {
          "name": "padding-x",
          "type": "Dimension",
          "description": "Horizontal padding for the nav-strip links.",
          "default": "0"
        },
        {
          "name": "padding-y",
          "type": "Dimension",
          "description": "Vertical padding for the nav-strip links.",
          "default": "0.3em"
        },
        {
          "name": "padding-y-ruled",
          "type": "Dimension",
          "description": "Vertical padding for the nav-strip links when using nav-strip--rule.",
          "default": "null"
        },
        {
          "name": "underline-color",
          "type": "Color",
          "description": "Underline color when link is active.",
          "default": "\"selected\""
        },
        {
          "name": "underline-size",
          "type": "Dimension",
          "description": "Size of the underline.",
          "default": "3px"
        },
        {
          "name": "underline-color-hover",
          "type": "Color",
          "description": "Color of the underline when hovered or focused.",
          "default": "\"rule\""
        },
        {
          "name": "rule-color",
          "type": "String",
          "description": "Rule color. Uses rule.scss so the value of this options should be a variable from rule.scss.",
          "default": "\"rule-light\""
        },
        {
          "name": "rule-size",
          "type": "Dimension",
          "description": "Size of the nav-strip rule.",
          "default": "3px"
        },
        {
          "name": "rule-offset",
          "type": "Dimension",
          "description": "Offset the rule for the nav-strip.",
          "default": "-3px"
        }
      ]
    },
    "overlay-section": {
      "description": "SCSS Configuration for overlay-section. To override these defaults, use the set mixin: `@include ulu.component-overlay-section-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "content-background-color",
          "type": "Color",
          "description": "The background color of the content.",
          "default": "white"
        },
        {
          "name": "content-border",
          "type": "CssValue",
          "description": "The border of the content",
          "default": "1px solid rgb(227, 227, 227)"
        },
        {
          "name": "content-padding",
          "type": "Dimension",
          "description": "The padding of the content.",
          "default": "2.5rem"
        },
        {
          "name": "content-width",
          "type": "Dimension",
          "description": "The width of the content.",
          "default": "34rem"
        },
        {
          "name": "min-height",
          "type": "Dimension",
          "description": "the min-height of the section.",
          "default": "75vh"
        },
        {
          "name": "padding",
          "type": "Dimension",
          "description": "The padding of the container.",
          "default": "6rem"
        },
        {
          "name": "breakpoints",
          "type": "Map",
          "description": "The breakpoints of the section.",
          "default": "Map"
        }
      ]
    },
    "pager": {
      "description": "SCSS Configuration for pager. To override these defaults, use the set mixin: `@include ulu.component-pager-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "background-color",
          "type": "String",
          "description": "The background color of the pager. This uses color.scss, so the value of this options should be a color variable from color.scss.",
          "default": "link"
        },
        {
          "name": "background-color-hover",
          "type": "String",
          "description": "The background color of the pager when hovered or focused. This uses color.scss, so the value of this options should be a color variable from color.scss.",
          "default": "link-hover"
        },
        {
          "name": "border-color",
          "type": "String",
          "description": "The border color of the pager item. This uses color.scss, so the value of this options should be a color variable from color.scss.",
          "default": "link"
        },
        {
          "name": "border-color-hover",
          "type": "String",
          "description": "The border color of the pager item when hovered or focused. This uses color.scss, so the value of this options should be a color variable from color.scss.",
          "default": "link-hover"
        },
        {
          "name": "border-radius",
          "type": "Dimension",
          "description": "The border radius of the pager item.",
          "default": "50%"
        },
        {
          "name": "border-width",
          "type": "Dimension",
          "description": "The border width of the pager item.",
          "default": "1px"
        },
        {
          "name": "color",
          "type": "Color",
          "description": "The type color of the pager item.",
          "default": "white"
        },
        {
          "name": "color-hover",
          "type": "Color",
          "description": "The type color of the pager item when covered and focused.",
          "default": "white"
        },
        {
          "name": "font-weight",
          "type": "CssValue",
          "description": "Font-weight of the pager.",
          "default": "bold"
        },
        {
          "name": "item-margin",
          "type": "Dimension",
          "description": "The item margin.",
          "default": "0.17rem"
        },
        {
          "name": "margin-bottom",
          "type": "Dimension",
          "description": "The bottom margin of the pager.",
          "default": "2rem"
        },
        {
          "name": "margin-top",
          "type": "Dimension",
          "description": "The top margin of the pager.",
          "default": "1rem"
        },
        {
          "name": "width",
          "type": "Dimension",
          "description": "The width of the pager items.",
          "default": "2.5rem"
        },
        {
          "name": "active-background-color",
          "type": "Color",
          "description": "The background color of the pager when active.",
          "default": "#ccc"
        },
        {
          "name": "active-border-color",
          "type": "Color",
          "description": "The border color of the pager when active.",
          "default": "#ccc"
        },
        {
          "name": "active-color",
          "type": "Color",
          "description": "The type color when active. This uses color.scss, so the value of this options should be a color variable from color.scss.",
          "default": "type"
        },
        {
          "name": "active-font-weight",
          "type": "CssValue",
          "description": "The font weight of the pager when focused or hovered.",
          "default": "bold"
        },
        {
          "name": "action-background-color",
          "type": "String",
          "description": "The background color of the actions options of the pager. This uses color.scss, so the value of this options should be a color variable from color.scss.",
          "default": "link"
        },
        {
          "name": "action-background-color-hover",
          "type": "String",
          "description": "The background color of the actions options of the pager when focused or hovered. This uses color.scss, so the value of this options should be a color variable from color.scss.",
          "default": "link-hover"
        },
        {
          "name": "action-border-color",
          "type": "Color",
          "description": "The border color of the action options of the pager.",
          "default": "transparent"
        },
        {
          "name": "action-border-color-hover",
          "type": "String",
          "description": "The border color of the action options of the pager when focused or hovered. This uses color.scss, so the value of this options should be a color variable from color.scss.",
          "default": "link"
        },
        {
          "name": "action-color",
          "type": "Color",
          "description": "The type color of the actions options of the pager.",
          "default": "white"
        },
        {
          "name": "action-color-hover",
          "type": "Color",
          "description": "The type color of the actions options of the pager when focused or hovered.",
          "default": "white"
        },
        {
          "name": "action-margin",
          "type": "Dimension",
          "description": "The margin of the action options of the pager.",
          "default": "0.8rem"
        },
        {
          "name": "action-width",
          "type": "Dimension",
          "description": "The width of the action options of the pager.",
          "default": "2.5rem"
        }
      ]
    },
    "panel": {
      "description": "SCSS Configuration for panel. To override these defaults, use the set mixin: `@include ulu.component-panel-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "background-color",
          "type": "Color",
          "description": "The background color of the panel",
          "default": "rgb(255, 255, 255)"
        },
        {
          "name": "border",
          "type": "Color",
          "description": "Set border to panel",
          "default": "null"
        },
        {
          "name": "border-radius",
          "type": "Dimension",
          "description": "The border radius of the panel",
          "default": "element.$config.border-radius"
        },
        {
          "name": "box-shadow",
          "type": "CssValue",
          "description": "The box-shadow of the panel",
          "default": "element.$config.box-shadow"
        },
        {
          "name": "margin-bottom",
          "type": "Dimension",
          "description": "The bottom margin of the panel",
          "default": "1.5rem"
        },
        {
          "name": "overflow",
          "type": "CssValue",
          "description": "Value for overflow, not included by default as it interferes with position sticky, but could be useful for cropping if that's needed (can be set on rows too)",
          "default": "null"
        }
      ]
    },
    "placeholder-block": {
      "description": "SCSS Configuration for placeholder-block. To override these defaults, use the set mixin: `@include ulu.component-placeholder-block-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "background-color",
          "type": "Color",
          "description": "The background color of the placeholder.",
          "default": "rgba(0,0,0,0.15)"
        },
        {
          "name": "color",
          "type": "Color",
          "description": "The type color of the placeholder. If set to true, will use the \"type-tertiary\" variable from color.scss.",
          "default": "true"
        },
        {
          "name": "margin-bottom",
          "type": "Dimension",
          "description": "The bottom margin of the placeholder. If set to true, will use the \"margin\" variable from element.scss.",
          "default": "true"
        },
        {
          "name": "padding",
          "type": "Dimension",
          "description": "The padding of the placeholder.",
          "default": "2em"
        },
        {
          "name": "padding-compact",
          "type": "Dimension",
          "description": "The padding of the placeholder when using the compact option.",
          "default": "(0.5em 1em)"
        },
        {
          "name": "expanded-height",
          "type": "Dimension",
          "description": "The height of the placeholder when using the expanded option.",
          "default": "15rem"
        },
        {
          "name": "border-color",
          "type": "Color",
          "description": "The border color.",
          "default": "rgba(0,0,0,0.3)"
        },
        {
          "name": "border-radius",
          "type": "Dimension",
          "description": "The border radius of the placeholder. If set to true, will use the \"border-radius-large\" variable from element.scss.",
          "default": "true"
        },
        {
          "name": "border-style",
          "type": "CssValue",
          "description": "The border style of the placeholder border.",
          "default": "dashed"
        },
        {
          "name": "border-width",
          "type": "Dimension",
          "description": "The border width of the placeholder.",
          "default": "2px"
        },
        {
          "name": "border-width-compact",
          "type": "Dimension",
          "description": "The border width of the placeholder when using the compact option.",
          "default": "1px"
        },
        {
          "name": "icon-font-size",
          "type": "Dimension",
          "description": "The font-size of the placeholder icon.",
          "default": "3em"
        },
        {
          "name": "icon-margin",
          "type": "Dimension",
          "description": "The margin of the placeholder icon.",
          "default": "0.25em"
        },
        {
          "name": "icon-color",
          "type": "Color",
          "description": "The icon type color.",
          "default": "rgba(0, 0, 0, 0.5)"
        }
      ]
    },
    "popover": {
      "description": "SCSS Configuration for popover. To override these defaults, use the set mixin: `@include ulu.component-popover-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "arrow-size",
          "type": "Dimension",
          "description": "Size of the dropdown arrow.",
          "default": "16px"
        },
        {
          "name": "arrow-box-shadow",
          "type": "Boolean",
          "description": "When true the arrow will get the popover's box shadow. Note if the box shadow is not a list (for example custom property), the mask won't be calculated from the box-shadow (use arrow-box-shadow-extent to specify manually)",
          "default": "true"
        },
        {
          "name": "arrow-box-shadow-extent",
          "type": "Number",
          "description": "If set will determine the amount of overlap added to the arrow mask, else it's calculated automatically by the box-shadow option (can be used if box-shadow is custom property)",
          "default": "null"
        },
        {
          "name": "background-color",
          "type": "Color",
          "description": "Background color of the popover.",
          "default": "white"
        },
        {
          "name": "border-radius",
          "type": "Dimension",
          "description": "Border radius of the popover.",
          "default": "6px"
        },
        {
          "name": "color",
          "type": "Color",
          "description": "Text color of the popover.",
          "default": "inherit"
        },
        {
          "name": "max-width",
          "type": "Dimension",
          "description": "Max width of the popover.",
          "default": "90vw"
        },
        {
          "name": "max-height",
          "type": "Dimension",
          "description": "Max height of the popover.",
          "default": "25rem"
        },
        {
          "name": "padding",
          "type": "Dimension",
          "description": "Padding of the popover.",
          "default": "1rem"
        },
        {
          "name": "padding-large",
          "type": "Dimension",
          "description": "Padding of the popover if using \"--large\" or \"--large-x\" styling.",
          "default": "2rem"
        },
        {
          "name": "type-size",
          "type": "Dimension",
          "description": "Font size of the popover.",
          "default": "null"
        },
        {
          "name": "z-index",
          "type": "Number",
          "description": "z-index of the popover.",
          "default": "true"
        },
        {
          "name": "box-shadow",
          "type": "CssValue",
          "description": "Box shadow of the popover.",
          "default": "true"
        },
        {
          "name": "header-background-color",
          "type": "Color",
          "description": "Background color of the popover header",
          "default": "#ccc"
        },
        {
          "name": "header-color",
          "type": "Color",
          "description": "Text color for the header.",
          "default": "null"
        },
        {
          "name": "header-media-background-color",
          "type": "Color",
          "description": "background color for header media.",
          "default": "black"
        },
        {
          "name": "header-padding-y",
          "type": "Dimension",
          "description": "Vertical padding of the header.",
          "default": "0.25rem"
        },
        {
          "name": "footer-background-color",
          "type": "Color",
          "description": "Background color of the footer.",
          "default": "#ccc"
        },
        {
          "name": "footer-border-top",
          "type": "Color",
          "description": "Optional border used to separate the content from footer",
          "default": "1px solid #dfdfdf"
        },
        {
          "name": "footer-color",
          "type": "Color",
          "description": "Text color of the footer.",
          "default": "null"
        },
        {
          "name": "footer-padding-y",
          "type": "Dimension",
          "description": "Vertical padding of the footer.",
          "default": "0.25rem"
        },
        {
          "name": "footer-padding-y-large",
          "type": "Dimension",
          "description": "Vertical padding of the footer if using \"--large\" or \"--large-x\" styling.",
          "default": "0.5rem"
        },
        {
          "name": "tooltip-background-color",
          "type": "Color",
          "description": "Background color of the tooltip.",
          "default": "white"
        },
        {
          "name": "tooltip-color",
          "type": "Color",
          "description": "Font color of the tooltip.",
          "default": "null"
        },
        {
          "name": "tooltip-max-width",
          "type": "Dimension",
          "description": "Max width of the tooltip.",
          "default": "20rem"
        },
        {
          "name": "tooltip-padding",
          "type": "Dimension",
          "description": "Padding of the tooltip.",
          "default": "0.5rem"
        },
        {
          "name": "tooltip-width",
          "type": "Dimension",
          "description": "Width of the tooltip.",
          "default": "auto"
        },
        {
          "name": "width",
          "type": "Dimension",
          "description": "Width of the popover.",
          "default": "15rem"
        },
        {
          "name": "width-large",
          "type": "Dimension",
          "description": "Width of the popover if using \"--large\".",
          "default": "30rem"
        },
        {
          "name": "width-large-x",
          "type": "Dimension",
          "description": "Width of the popover if using \"--large-x\".",
          "default": "50rem"
        }
      ]
    },
    "progress-bar": {
      "description": "SCSS Configuration for progress-bar. To override these defaults, use the set mixin: `@include ulu.component-progress-bar-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "header-gap",
          "type": "Dimension",
          "description": "Margin/gap for the icon/value",
          "default": "0.25em"
        },
        {
          "name": "margin",
          "type": "List",
          "description": "Margin for the progress bar.",
          "default": "(0 0 0.5em 0)"
        },
        {
          "name": "line-height",
          "type": "Boolean",
          "description": "Line height for the progress bar. If true, falls back to typography's `line-height-dense`.",
          "default": "true"
        },
        {
          "name": "value-color",
          "type": "Color",
          "description": "Color of the value text.",
          "default": "\"type-tertiary\""
        },
        {
          "name": "value-margin",
          "type": "Dimension",
          "description": "Margin for the value text.",
          "default": "0.5em"
        },
        {
          "name": "value-font-weight",
          "type": "Boolean",
          "description": "Font weight for the value text. If true, falls back to typography's `font-weight-light`.",
          "default": "true"
        },
        {
          "name": "value-margin-deficit",
          "type": "Dimension",
          "description": "Margin for the deficit value text.",
          "default": "0.3em"
        },
        {
          "name": "value-color-deficit",
          "type": "Color",
          "description": "Color of the deficit value text.",
          "default": "\"danger\""
        },
        {
          "name": "bar-height",
          "type": "Dimension",
          "description": "Height of the progress bar.",
          "default": "12px"
        },
        {
          "name": "bar-color",
          "type": "Color",
          "description": "Color of the progress bar.",
          "default": "rgb(80, 80, 171)"
        },
        {
          "name": "bar-color-deficit",
          "type": "Color",
          "description": "Color of the deficit portion of the progress bar.",
          "default": "\"danger\""
        },
        {
          "name": "icon-color",
          "type": "Color",
          "description": "Color of the icon.",
          "default": "\"type-tertiary\""
        },
        {
          "name": "icon-color-deficit",
          "type": "Color",
          "description": "Color of the icon in a deficit state.",
          "default": "\"danger\""
        },
        {
          "name": "track-color",
          "type": "Color",
          "description": "Color of the progress bar track.",
          "default": "#ccc"
        },
        {
          "name": "track-margin",
          "type": "List",
          "description": "Margin for the progress bar track.",
          "default": "(0.1em 0)"
        },
        {
          "name": "rounded-border-radius",
          "type": "CssValue",
          "description": "Border radius for the rounded modifier.",
          "default": "100vmax"
        },
        {
          "name": "animation-duration",
          "type": "Time",
          "description": "Duration of the width transition animation.",
          "default": "200ms"
        },
        {
          "name": "animation-timing",
          "type": "CssValue",
          "description": "Timing function for the width transition animation.",
          "default": "ease"
        },
        {
          "name": "animation-initial-duration",
          "type": "Time",
          "description": "Duration of the initial fill animation.",
          "default": "500ms"
        },
        {
          "name": "animation-initial-timing",
          "type": "CssValue",
          "description": "Timing function for the initial fill animation.",
          "default": "ease-in"
        },
        {
          "name": "animation-indeterminate-duration",
          "type": "Time",
          "description": "Duration of the indeterminate loading animation.",
          "default": "2.5s"
        }
      ]
    },
    "progress-circle": {
      "description": "SCSS Configuration for progress-circle. To override these defaults, use the set mixin: `@include ulu.component-progress-circle-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "size",
          "type": "Dimension",
          "description": "The width and height of the chart.",
          "default": "100px"
        },
        {
          "name": "viewbox-size",
          "type": "Number",
          "description": "The size of the SVG viewbox. Used to calculate mask radius.",
          "default": "32"
        },
        {
          "name": "stroke-width",
          "type": "Number",
          "description": "The width of the progress circle's stroke.",
          "default": "10"
        },
        {
          "name": "color-track",
          "type": "Color",
          "description": "The color of the inactive track. Can be a theme color name or a CSS variable.",
          "default": "\"placeholder-background-alt\""
        },
        {
          "name": "color-progress",
          "type": "Color",
          "description": "The color of the progress stroke in a neutral state. Can be a theme color name or a CSS variable.",
          "default": "\"indicator\""
        },
        {
          "name": "color-mask",
          "type": "Color",
          "description": "The color of the center mask that creates the donut hole. Can be a theme color name or a CSS variable.",
          "default": "white"
        },
        {
          "name": "color-mask-pie",
          "type": "Color",
          "description": "The mask color when using the pie style modifier.",
          "default": "rgba(255, 255, 255, 0.5)"
        },
        {
          "name": "value-color",
          "type": "Color",
          "description": "The theme color name for the percentage text inside the circle.",
          "default": "\"type\""
        },
        {
          "name": "value-color-outside",
          "type": "Color",
          "description": "The theme color name for the percentage text when displayed outside the circle.",
          "default": "\"type-tertiary\""
        },
        {
          "name": "value-margin-outside",
          "type": "Dimension | List",
          "description": "The margin for the outside value text.",
          "default": "(0.1em 0.35em)"
        },
        {
          "name": "transition-duration",
          "type": "Time",
          "description": "The duration for the stroke transition animation (when the component is updating already in the page)",
          "default": "300ms"
        },
        {
          "name": "animation-duration",
          "type": "Time",
          "description": "The duration for the stroke animation (relies on template having a custom build animation per pie based on dash array). This is used for initial animations",
          "default": "1s"
        },
        {
          "name": "animation-delay",
          "type": "Time",
          "description": "The delay for the animation",
          "default": "2s"
        },
        {
          "name": "animation-timing",
          "type": "Time",
          "description": "Timing function for animation",
          "default": "ease-in"
        },
        {
          "name": "status-colors",
          "type": "Map",
          "description": "A map of status names to their corresponding colors (e.g., \"low\": \"warning\")."
        },
        {
          "name": "sizes",
          "type": "Map",
          "description": "A map of size variations. Each key is a modifier name (e.g., \"small\") and the value is a map with `size` and `stroke-width` properties."
        }
      ]
    },
    "pull-quote": {
      "description": "SCSS Configuration for pull-quote. To override these defaults, use the set mixin: `@include ulu.component-pull-quote-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "body-line-height",
          "type": "Number",
          "default": "true"
        },
        {
          "name": "image-margin-bottom",
          "type": "Dimension",
          "default": "1rem"
        },
        {
          "name": "image-margin-top",
          "type": "Dimension",
          "default": "2.5rem"
        },
        {
          "name": "name-margin-bottom",
          "type": "Dimension",
          "default": "1rem"
        },
        {
          "name": "padding-y",
          "type": "Dimension",
          "default": "2em"
        },
        {
          "name": "title-font-style",
          "type": "CssValue",
          "default": "italic"
        },
        {
          "name": "quote-mark-character",
          "type": "String",
          "default": "\"\\201c\""
        },
        {
          "name": "quote-mark-color",
          "type": "Color",
          "default": "null"
        },
        {
          "name": "quote-mark-font-family",
          "type": "String",
          "default": "\"Georgia\""
        },
        {
          "name": "quote-mark-font-size",
          "type": "Dimension",
          "default": "3.75em"
        },
        {
          "name": "quote-mark-enabled",
          "type": "Boolean",
          "default": "true"
        },
        {
          "name": "quote-mark-line-height",
          "type": "Number",
          "default": "0.35"
        }
      ]
    },
    "rail": {
      "description": "SCSS Configuration for rail. To override these defaults, use the set mixin: `@include ulu.component-rail-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "gap",
          "type": "Dimension",
          "description": "The default space between items in the rail",
          "default": "1em"
        },
        {
          "name": "gap-modifiers",
          "type": "Map",
          "description": "Alternate gaps (use child modifiers .rail__item--gap-[name], these apply gap changes between the item and the item before it",
          "default": "(\"small\" : 0.5em, \"large\" : 2em )"
        },
        {
          "name": "margin-bottom",
          "type": "Dimension",
          "description": "The default space after rail",
          "default": "1em"
        },
        {
          "name": "separator",
          "type": "CssValue",
          "description": "Pass border property for separator, defaults to element rule style light",
          "default": "true"
        }
      ]
    },
    "ratio-box": {
      "description": "SCSS Configuration for ratio-box. To override these defaults, use the set mixin: `@include ulu.component-ratio-box-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "size",
          "type": "String|Number",
          "description": "Default aspect ratio (can be string like \"16/9\" or legacy percentage value)",
          "default": "\"4/3\""
        },
        {
          "name": "sizes",
          "type": "Map",
          "description": "Other ratios to add (apply with modifier class)",
          "default": "Map"
        }
      ]
    },
    "rule": {
      "description": "SCSS Configuration for rule. To override these defaults, use the set mixin: `@include ulu.component-rule-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "short-border-width",
          "type": "Dimension",
          "description": "Short rule width of border",
          "default": "4px"
        },
        {
          "name": "short-modifiers",
          "type": "Object",
          "description": "Objects to adjust the styles of different short rule styles.",
          "default": "false"
        },
        {
          "name": "short-width",
          "type": "Dimension",
          "description": "Short rule width (like an inline rule, normally used above headings), Setting this to false will disable output",
          "default": "2.75rem"
        }
      ]
    },
    "rule-inline": {
      "description": "SCSS Configuration for rule-inline. To override these defaults, use the set mixin: `@include ulu.component-rule-inline-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "min-height",
          "type": "Dimension",
          "description": "Min height for rule.",
          "default": "1em"
        },
        {
          "name": "margin",
          "type": "Dimension",
          "description": "Top and bottom margin for rule.",
          "default": "1em"
        },
        {
          "name": "color",
          "type": "Color",
          "description": "Color for rule",
          "default": "\"rule\""
        },
        {
          "name": "width",
          "type": "Color",
          "description": "Width for rule",
          "default": "1px"
        }
      ]
    },
    "scroll-slider": {
      "description": "SCSS Configuration for scroll-slider. To override these defaults, use the set mixin: `@include ulu.component-scroll-slider-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "background-color",
          "type": "Color",
          "default": "false"
        },
        {
          "name": "container",
          "type": "String",
          "default": "\"container\""
        },
        {
          "name": "containers",
          "type": "List",
          "default": "(\"container\",)"
        },
        {
          "name": "margin-bottom",
          "type": "Dimension",
          "default": "3rem"
        },
        {
          "name": "margin-top",
          "type": "Dimension",
          "default": "1rem"
        },
        {
          "name": "padding-bottom",
          "type": "Dimension",
          "default": "0"
        },
        {
          "name": "padding-top",
          "type": "Dimension",
          "default": "0"
        },
        {
          "name": "prefix",
          "type": "String",
          "default": "\"scroll-slide\""
        },
        {
          "name": "button-border",
          "type": "CssValue",
          "default": "2px solid white"
        },
        {
          "name": "button-border-color-hover",
          "type": "Color",
          "default": "white"
        },
        {
          "name": "button-border-radius",
          "type": "Dimension",
          "default": "50%"
        },
        {
          "name": "button-box-shadow",
          "type": "CssValue",
          "default": "element.get(\"box-shadow\")"
        },
        {
          "name": "button-color",
          "type": "Color",
          "default": "color.get(\"type\")"
        },
        {
          "name": "button-color-hover",
          "type": "Color",
          "default": "color.get(\"link\")"
        },
        {
          "name": "button-font-size",
          "type": "Dimension",
          "default": "1.35rem"
        },
        {
          "name": "button-indent",
          "type": "Dimension",
          "default": "1.5rem"
        },
        {
          "name": "button-indent-small",
          "type": "Dimension",
          "default": "0.5rem"
        },
        {
          "name": "button-size",
          "type": "Dimension",
          "default": "3rem"
        },
        {
          "name": "button-icon-offset-x",
          "type": "Dimension",
          "default": "false"
        },
        {
          "name": "button-icon-offset-y",
          "type": "Dimension",
          "default": "false"
        }
      ]
    },
    "skeleton": {
      "description": "SCSS Configuration for skeleton. To override these defaults, use the set mixin: `@include ulu.component-skeleton-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "animation",
          "type": "CssValue",
          "description": "The animation applied to skeleton elements.",
          "default": "pulse 2s cubic-bezier(0.4,0,0.6,1) infinite"
        },
        {
          "name": "color",
          "type": "Color",
          "description": "The base color for skeleton elements.",
          "default": "type-disabled"
        },
        {
          "name": "background-color",
          "type": "Color",
          "description": "The primary background color for skeleton elements.",
          "default": "#cbcbcb"
        },
        {
          "name": "background-color-alt",
          "type": "Color",
          "description": "An alternative background color for skeleton elements, used for variations.",
          "default": "#aeaeae"
        },
        {
          "name": "border-radius",
          "type": "Dimension",
          "description": "The border-radius for skeleton blocks and text. If set to true, uses the element.scss property for \"border-radius\".",
          "default": "true"
        },
        {
          "name": "inline-margin",
          "type": "Dimension",
          "description": "The margin between inline skeleton text elements.",
          "default": "0.35em"
        },
        {
          "name": "media-ratio",
          "type": "Number",
          "description": "The aspect ratio for skeleton media blocks (width/height).",
          "default": "(4/3)"
        },
        {
          "name": "text-border-radius",
          "type": "Dimension",
          "description": "The border-radius for skeleton text lines.",
          "default": "3em"
        },
        {
          "name": "widths",
          "type": "Map",
          "description": "A map defining various width percentages for skeleton text lines (or used to size blocks/etc)",
          "default": "Map"
        }
      ]
    },
    "skip-link": {
      "description": "SCSS Configuration for skip-link. To override these defaults, use the set mixin: `@include ulu.component-skip-link-set(( \"property\": \"value\" ));`",
      "properties": []
    },
    "slider": {
      "description": "SCSS Configuration for slider. To override these defaults, use the set mixin: `@include ulu.component-slider-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "background-color",
          "type": "Color",
          "description": "Background color for the entire slider section.",
          "default": "transparent"
        },
        {
          "name": "margin",
          "type": "Dimension",
          "description": "Margin for slider container",
          "default": "(1rem 0 3rem 0)"
        },
        {
          "name": "padding-top",
          "type": "Dimension",
          "description": "Top padding for individual slides.",
          "default": "0"
        },
        {
          "name": "button-offset-x",
          "type": "Dimension",
          "description": "Offsets the control button in from their respective sides.",
          "default": "null"
        },
        {
          "name": "button-offset-y",
          "type": "Dimension",
          "description": "Offsets the control button y",
          "default": "null"
        },
        {
          "name": "button-margin",
          "type": "Dimension",
          "description": "The margin between the controls and the slide content when using .slider__slide-gap-for-controls",
          "default": "0.75rem"
        },
        {
          "name": "nav-margin",
          "type": "Color",
          "description": "Margin for nav (dots)",
          "default": "(0.5rem 0)"
        },
        {
          "name": "nav-background-color",
          "type": "Color",
          "description": "The color of the dot when unselected.",
          "default": "transparent"
        },
        {
          "name": "nav-background-color-hover",
          "type": "Color",
          "description": "The color of the dot when hovered.",
          "default": "color.get(\"link\")"
        },
        {
          "name": "nav-background-color-selected",
          "type": "Color",
          "description": "The color of the dot when selected.",
          "default": "color.get(\"link\")"
        },
        {
          "name": "nav-border-radius",
          "type": "Dimension",
          "description": "The border-radius of the dot.",
          "default": "50%"
        },
        {
          "name": "nav-border-color",
          "type": "Color",
          "description": "The border color of the dot.",
          "default": "color.get(\"link\")"
        },
        {
          "name": "nav-border-color-hover",
          "type": "Color",
          "description": "The border color of the dot when hovered.",
          "default": "color.get(\"link\")"
        },
        {
          "name": "nav-border-color-selected",
          "type": "Color",
          "description": "The border color of the dot when selected.",
          "default": "color.get(\"link\")"
        },
        {
          "name": "nav-border-width",
          "type": "Dimension",
          "description": "The border width of the dot.",
          "default": "2px"
        },
        {
          "name": "nav-size",
          "type": "Dimension",
          "description": "The height and width of the dot.",
          "default": "1rem"
        },
        {
          "name": "nav-gap",
          "type": "Dimension",
          "description": "Gap between nav items",
          "default": "0.2rem"
        },
        {
          "name": "button-width",
          "type": "Dimension",
          "description": "The width of the button.",
          "default": "1rem"
        }
      ]
    },
    "spoke-spinner": {
      "description": "SCSS Configuration for spoke-spinner. To override these defaults, use the set mixin: `@include ulu.component-spoke-spinner-set(( \"property\": \"value\" ));`",
      "properties": []
    },
    "sticky-list": {
      "description": "SCSS Configuration for sticky-list. To override these defaults, use the set mixin: `@include ulu.component-sticky-list-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "background-color",
          "type": "Color",
          "description": "Background color for the entire slider section.",
          "default": "transparent"
        },
        {
          "name": "margin",
          "type": "Number",
          "description": "Margin on ends of component (defaults to element margin)",
          "default": "true"
        },
        {
          "name": "mask-offset-bottom",
          "type": "Number",
          "description": "The offset for the mask (on bottom)",
          "default": "55vh"
        },
        {
          "name": "mask-offset-top",
          "type": "Number",
          "description": "The offset for the mask (on top)",
          "default": "5rem"
        },
        {
          "name": "sticky-top",
          "type": "Number",
          "description": "When to stick",
          "default": "45vh"
        },
        {
          "name": "breakpoint",
          "type": "String",
          "description": "The upward breakpoint that this is allowed to be sticky",
          "default": "\"medium\""
        },
        {
          "name": "type-size",
          "type": "String",
          "description": "The typography size to use for title",
          "default": "\"medium\""
        },
        {
          "name": "title-width",
          "type": "Number",
          "description": "The width of the title when this is displayed in columns",
          "default": "40%"
        },
        {
          "name": "title-min-width",
          "type": "Number",
          "description": "The min width for title when displayed in columns",
          "default": "8em"
        },
        {
          "name": "title-text-align",
          "type": "CssValue",
          "description": "Text alignment for title when displayed in columns",
          "default": "right"
        },
        {
          "name": "item-padding-x",
          "type": "Number",
          "description": "Optional padding on the left/right for items",
          "default": "0"
        },
        {
          "name": "gap",
          "type": "Number",
          "description": "The gap between title and items when displayed in columns",
          "default": "2rem"
        },
        {
          "name": "background-color",
          "type": "Color",
          "description": "The background color used for the mask",
          "default": "white"
        },
        {
          "name": "background-contexts",
          "type": "List",
          "description": "Adjust the background mask color by contextual selectors. Pass List of Maps with (\"selector\" [parent/contextual selector], \"background-color\", \"item-padding-x\" [optional])"
        }
      ]
    },
    "table-scroller": {
      "description": "SCSS Configuration for table-scroller. To override these defaults, use the set mixin: `@include ulu.component-table-scroller-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "margin",
          "type": "List|Number",
          "description": "Optional margin for this component",
          "default": "(1em, 0)"
        }
      ]
    },
    "tabs": {
      "description": "SCSS Configuration for tabs. To override these defaults, use the set mixin: `@include ulu.component-tabs-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "margin",
          "type": "Dimension",
          "description": "The margin for the tabs container",
          "default": "(2rem, 0)"
        },
        {
          "name": "print-margin",
          "type": "Dimension",
          "description": "Margin between tabs when stacked for print",
          "default": "1.5em"
        },
        {
          "name": "tablist-divider",
          "type": "CssValue",
          "description": "The border separating the tabs from the panels. By default (true) will use element rule light style",
          "default": "true"
        },
        {
          "name": "tablist-divider-width",
          "type": "Dimension",
          "description": "The width of the divider",
          "default": "1px"
        },
        {
          "name": "tabpanel-background-color",
          "type": "Color",
          "description": "The tabpanel background color.",
          "default": "rgb(245, 245, 245)"
        },
        {
          "name": "tabpanel-padding",
          "type": "Dimension",
          "description": "Padding for the tabpanel",
          "default": "(2rem,)"
        },
        {
          "name": "indicator-size",
          "type": "Dimension",
          "description": "The size of the tab's active border/indicator",
          "default": "0.25em"
        },
        {
          "name": "indicator-color",
          "type": "Color",
          "description": "The color of the indicator",
          "default": "currentColor"
        },
        {
          "name": "indicator-transition-duration",
          "type": "Color",
          "description": "The transition duration for indicator",
          "default": "200ms"
        },
        {
          "name": "indicator-scale-start",
          "type": "Color",
          "description": "The starting scale for the indicator (set to 1 to disable expanding on click)",
          "default": "0"
        },
        {
          "name": "tab-color",
          "type": "Color",
          "description": "The type color for the tabs. This uses color.scss, so the value of this options should be a variable from color.scss.",
          "default": "link"
        },
        {
          "name": "tab-color-hover",
          "type": "Color",
          "description": "The type color for the tabs when hovered. This uses color.scss, so the value of this options should be a variable from color.scss.",
          "default": "link-hover"
        },
        {
          "name": "tab-color-focus",
          "type": "Color|null",
          "description": "The type color for a tab when it has keyboard focus.",
          "default": "null"
        },
        {
          "name": "tab-background-color-focus",
          "type": "Color",
          "description": "The background color for a tab when it has keyboard focus.",
          "default": "#eeeeee"
        },
        {
          "name": "tab-hide-native-focus",
          "type": "Boolean",
          "description": "Hides the default browser outline on focused tabs.",
          "default": "true"
        },
        {
          "name": "tab-color-selected",
          "type": "Color",
          "description": "The tab type color when selected. This uses color.scss, so the value of this options should be a variable from color.scss.",
          "default": "selected"
        },
        {
          "name": "tab-background-color-selected",
          "type": "Color",
          "description": "The tab background color when selected",
          "default": "null"
        },
        {
          "name": "tab-font-weight",
          "type": "CssValue",
          "description": "The font weight for the tab, defaults to typography \"font-weight-semibold\"",
          "default": "true"
        },
        {
          "name": "tab-padding",
          "type": "Dimension",
          "description": "Padding for the tab",
          "default": "0.75em 0.1em 0.75em 0.1em"
        },
        {
          "name": "tab-gap",
          "type": "Dimension",
          "description": "Gap between tabs",
          "default": "1em"
        },
        {
          "name": "vertical-tablist-width",
          "type": "Dimension",
          "description": "The width of the tablist column when tabs are layout is vertical",
          "default": "minmax(15rem, 30%),"
        },
        {
          "name": "vertical-tab-padding",
          "type": "Dimension",
          "description": "Tab padding when vertical",
          "default": "(0.25em 0.75em)"
        },
        {
          "name": "vertical-divider-width",
          "type": "Dimension",
          "description": "Divider between tabs and panels when vertical",
          "default": "0px"
        },
        {
          "name": "vertical-tab-gap",
          "type": "Dimension",
          "description": "The gap between tabs when vertical",
          "default": "0.75em"
        },
        {
          "name": "vertical-indicator-left",
          "type": "Boolean",
          "description": "The indicator for selected tab should be on the left when vertical (false will be on right/inside)",
          "default": "true"
        },
        {
          "name": "vertical-breakpoint",
          "type": "Boolean",
          "description": "Set the breakpoint when the vertical tabs should switch to horizontal (defaults to breakpoint 'default')",
          "default": "true"
        },
        {
          "name": "horizontal-tab-wrap",
          "type": "Boolean",
          "description": "Set to true to allow line wrapping when the tabs are in horizontal orientation, vertical is always allowed to wrap",
          "default": "false"
        },
        {
          "name": "full-width-tablist-background-color",
          "type": "Color",
          "description": "Optional background color for full-width tabs tablist",
          "default": "null"
        },
        {
          "name": "full-width-tabpanel-background-color",
          "type": "Color",
          "description": "Optional background color for full-width tabs tabpanel",
          "default": "transparent"
        }
      ]
    },
    "tag": {
      "description": "SCSS Configuration for tag. To override these defaults, use the set mixin: `@include ulu.component-tag-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "font-weight",
          "type": "CssValue",
          "description": "Font weight for the tag text.",
          "default": "normal"
        },
        {
          "name": "font-family",
          "type": "String",
          "description": "Font family for the tag text.",
          "default": "true"
        },
        {
          "name": "box-shadow",
          "type": "CssValue",
          "description": "Box shadow for the tag.",
          "default": "none"
        },
        {
          "name": "padding",
          "type": "Dimension",
          "description": "Inner padding for the tag.",
          "default": "(0.4em 0.75em)"
        },
        {
          "name": "vertical-align",
          "type": "CssValue",
          "description": "Vertical alignment of tag text.",
          "default": "baseline"
        },
        {
          "name": "margin-between",
          "type": "Dimension",
          "description": "Margin between tag and other elements.",
          "default": "0.5em"
        },
        {
          "name": "margin-between-tags",
          "type": "Dimension",
          "description": "Margin between tag and other tags.",
          "default": "0"
        },
        {
          "name": "line-height",
          "type": "Number",
          "description": "Line height for the tag text.",
          "default": "1"
        },
        {
          "name": "type-size",
          "type": "String",
          "description": "Font size for the tag text.",
          "default": "\"small\""
        },
        {
          "name": "background-color",
          "type": "Color",
          "description": "Background color of the tag.",
          "default": "#eaeaea"
        },
        {
          "name": "border-radius",
          "type": "Dimension",
          "description": "Border radius of the tag.",
          "default": "1.25em"
        },
        {
          "name": "border-color",
          "type": "Color",
          "description": "Border color for the tag.",
          "default": "transparent"
        },
        {
          "name": "border-width",
          "type": "Dimension",
          "description": "Border width of the tag.",
          "default": "1px"
        },
        {
          "name": "color",
          "type": "String",
          "description": "Color of the tag text.",
          "default": "\"type-tertiary\""
        },
        {
          "name": "counter-size",
          "type": "String",
          "description": "Size when used as a counter (for numbers), will be this size by default and expand horizontally as needed (ie. circle/rounded rectangle or square/rectangle if without border radius)",
          "default": "1.5em"
        },
        {
          "name": "counter-border-radius",
          "type": "String",
          "description": "May need to be adjusted or can be set to 0 for square/rectangle",
          "default": "20px"
        },
        {
          "name": "counter-padding-sides",
          "type": "String",
          "description": "Counter left/right padding (this is the space/margin on the inside when the number can't fit in the circle/square",
          "default": "0.26em"
        }
      ]
    },
    "tagged": {
      "description": "SCSS Configuration for tagged. To override these defaults, use the set mixin: `@include ulu.component-tagged-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "position-x",
          "type": "Dimension",
          "description": "Horizontal absolute position of the tag.",
          "default": "-0.75em"
        },
        {
          "name": "position-y",
          "type": "Dimension",
          "description": "Vertical absolute position of the tag.",
          "default": "-0.75em"
        },
        {
          "name": "icon-opacity",
          "type": "CssValue",
          "description": "Adds a transform styling to the tag.",
          "default": "null"
        }
      ]
    },
    "tile-button": {
      "description": "SCSS Configuration for tile-button. To override these defaults, use the set mixin: `@include ulu.component-tile-button-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "border-radius",
          "type": "Dimension",
          "description": "The border radius of the tile button. If set to true, will use the element.scss property for \"border-radius\".",
          "default": "true"
        },
        {
          "name": "description-size",
          "type": "String",
          "description": "The type size of the description. This uses typography.scss, so the value of this options should be a variable from typography.scss.",
          "default": "small-x"
        },
        {
          "name": "line-height",
          "type": "Dimension",
          "description": "The line-height of the tile-button. If set to true, will use the typography.scss property for \"line-height-densest\".",
          "default": "true"
        },
        {
          "name": "padding",
          "type": "Dimension",
          "description": "The padding of the tile button",
          "default": "(1em 0.5em)"
        },
        {
          "name": "row-margin",
          "type": "Dimension",
          "description": "The margin between rows.",
          "default": "0.5em"
        },
        {
          "name": "icon-font-size",
          "type": "Dimension",
          "description": "The font size of the icon.",
          "default": "1.5em"
        },
        {
          "name": "icon-margin",
          "type": "Dimension",
          "description": "The margin for the icon.",
          "default": "1em"
        },
        {
          "name": "icon-opacity",
          "type": "Number",
          "description": "The opacity of the icon.",
          "default": "0.5"
        }
      ]
    },
    "tile-grid": {
      "description": "SCSS Configuration for tile-grid. To override these defaults, use the set mixin: `@include ulu.component-tile-grid-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "aspect-ratio",
          "type": "CssValue",
          "default": "list.slash(4, 3)"
        },
        {
          "name": "gap",
          "type": "Number",
          "description": "The gap for the tile grid.",
          "default": "1rem"
        },
        {
          "name": "width",
          "type": "Number",
          "default": "10em"
        }
      ]
    },
    "tile-grid-overlay": {
      "description": "SCSS Configuration for tile-grid-overlay. To override these defaults, use the set mixin: `@include ulu.component-tile-grid-overlay-set(( \"property\": \"value\" ));`",
      "properties": []
    },
    "vignette": {
      "description": "SCSS Configuration for vignette. To override these defaults, use the set mixin: `@include ulu.component-vignette-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "background-color",
          "type": "Color",
          "description": "Color used for the fade-in of the vignette. Must be actual color not color module palette name",
          "default": "rgb(0,0,0)"
        },
        {
          "name": "image-filter",
          "type": "CssValue",
          "description": "Filter value placed over image.",
          "default": "saturate(85%)"
        }
      ]
    },
    "wysiwyg": {
      "description": "SCSS Configuration for wysiwyg. To override these defaults, use the set mixin: `@include ulu.component-wysiwyg-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "exclude-selector",
          "type": "String",
          "description": "Applied to all selectors",
          "default": "\".wysiwyg__exclude\""
        },
        {
          "name": "img-excluded-selectors",
          "type": "List",
          "description": "Extra selectors to prevent <img> styling",
          "default": "()"
        },
        {
          "name": "ul-excluded-selectors",
          "type": "List",
          "description": "Extra selectors to prevent <ul> styling",
          "default": "(\".list-lines\",)"
        },
        {
          "name": "link-excluded-selectors",
          "type": "List",
          "description": "\",)] Extra selectors to prevent <a> styling",
          "default": "(\"[class"
        },
        {
          "name": "headline-sizes",
          "type": "Map",
          "description": "Headlines from typography sizes (ElementName : TypographySizeName, ...)",
          "default": "Map"
        }
      ]
    },
    "breakpoint": {
      "description": "SCSS Configuration for breakpoint. To override these defaults, use the set mixin: `@include ulu.component-breakpoint-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "base",
          "type": "Number",
          "description": "Assumed pixel base, can change based on users font settings so this is just to get us in the ballpark. Note this is not the base font size but the user agent's or user's browser preference. This number is just being used for calculating estimated em sizes from average base. Since pixels are easier to understand but since we allow the user to set their font size. All of our css is relative to that, including most of the layout (rems, other relative units)",
          "default": "16px"
        },
        {
          "name": "gap",
          "type": "Number",
          "description": "The amount to offset min from max media queries incase you are using both (prevent overlap)",
          "default": "0.01em"
        },
        {
          "name": "null-name",
          "type": "String",
          "description": "The name of the space from 0 to the first breakpoint (doesn't really matter) used when passing breakpoints to JS via content property (see breakpoint.embed-for-scripts() or cssvar.declare-breakpoint-sizes()) to pass breakpoints to JS. The js ui/breakpoints.js module provides methods for interacting with breakpoints in JS.",
          "default": "\"none\""
        },
        {
          "name": "default",
          "type": "String",
          "description": "The name of the breakpoint that is considered the major change (ie desktop to mobile) used by other modules/components",
          "default": "\"small\""
        }
      ]
    },
    "cssvar": {
      "description": "SCSS Configuration for cssvar. To override these defaults, use the set mixin: `@include ulu.component-cssvar-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "prefix",
          "type": "String",
          "description": "Default prefix, will be added to all custom properties when using mixin or functions, unless overridden, set to empty quotes to disable",
          "default": "\"\""
        }
      ]
    },
    "element": {
      "description": "SCSS Configuration for element. To override these defaults, use the set mixin: `@include ulu.component-element-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "backdrop-blur",
          "type": "Number",
          "description": "Backdrop blur amount used on elements/components"
        },
        {
          "name": "backdrop-color",
          "type": "Color",
          "description": "Backdrop color (modal overlays, etc)"
        },
        {
          "name": "list-item-indent",
          "type": "Dimension",
          "default": "1.5em"
        },
        {
          "name": "text-shadow",
          "type": "List",
          "description": "Common text shadow"
        },
        {
          "name": "border-radius",
          "type": "Number",
          "description": "Common element border radius"
        },
        {
          "name": "border-radius-large",
          "type": "Number",
          "description": "Common element border radius (large)"
        },
        {
          "name": "border-radius-small",
          "type": "Number",
          "description": "Common element border radius (small)"
        },
        {
          "name": "box-shadow",
          "type": "List",
          "description": "Box-shadow definition for elements that are on top of page"
        },
        {
          "name": "box-shadow-above",
          "type": "List",
          "description": "Box-shadow definition for elements that are above the page (fixed items, etc)"
        },
        {
          "name": "box-shadow-hover",
          "type": "CssValue",
          "default": "0 1px 5px color.get('box-shadow-hover')"
        },
        {
          "name": "box-shadow-inset",
          "type": "CssValue",
          "default": "0 1px 5px color.get('box-shadow')"
        },
        {
          "name": "box-shadow-raised",
          "type": "List",
          "description": "Box-shadow definition for elements that are raised off of the page (dropdowns, etc)"
        },
        {
          "name": "link-text-decoration",
          "type": "String"
        },
        {
          "name": "link-text-decoration-color",
          "type": "Color"
        },
        {
          "name": "link-text-decoration-default",
          "type": "String",
          "description": "Whether links use underline, remember that removing underline will create an accessibility issue (not relying on color)"
        },
        {
          "name": "link-text-decoration-color-hover",
          "type": "Color"
        },
        {
          "name": "link-text-underline-offset",
          "type": "Number"
        },
        {
          "name": "link-text-decoration-style",
          "type": "String"
        },
        {
          "name": "link-text-decoration-style-hover",
          "type": "String"
        },
        {
          "name": "link-text-decoration-thickness",
          "type": "Number"
        },
        {
          "name": "margin",
          "type": "Number",
          "description": "Common element margin"
        },
        {
          "name": "margin-large",
          "type": "Number",
          "description": "Common element margin (large)"
        },
        {
          "name": "margin-small",
          "type": "Number",
          "description": "Common element margin (small) (default for lists)"
        },
        {
          "name": "ol-list-style-type",
          "type": "String",
          "description": "Ordered list type (level 1)"
        },
        {
          "name": "ol-list-style-type-2",
          "type": "String",
          "description": "Ordered list type (level 2)"
        },
        {
          "name": "ol-list-style-type-3",
          "type": "String",
          "description": "Ordered list type (level 3)"
        },
        {
          "name": "ul-list-style-type",
          "type": "String"
        },
        {
          "name": "ul-list-style-type-2",
          "type": "String"
        },
        {
          "name": "ul-list-style-type-3",
          "type": "String"
        }
      ]
    },
    "selector": {
      "description": "SCSS Configuration for selector. To override these defaults, use the set mixin: `@include ulu.component-selector-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "prefix",
          "type": "String",
          "description": "Global prefix for selectors (would be used for classname prefix for example)",
          "default": "\"\""
        }
      ]
    },
    "utils": {
      "description": "SCSS Configuration for utils. To override these defaults, use the set mixin: `@include ulu.component-utils-set(( \"property\": \"value\" ));`",
      "properties": [
        {
          "name": "debug-maps",
          "type": "Boolean",
          "description": "Enable or disable debug map output",
          "default": "true"
        },
        {
          "name": "file-header-comments",
          "type": "Boolean",
          "description": "Enable or disable module/file header comments",
          "default": "true"
        },
        {
          "name": "responsive-change",
          "type": "Number",
          "description": "Default responsive amount to modify items using responsive-property mixin",
          "default": "0.5vw"
        },
        {
          "name": "pixel-em-base",
          "type": "Number",
          "description": "Default base pixel font size for pixel-to-em",
          "default": "16px"
        }
      ]
    }
  },
  "reference": {
    "color": [
      {
        "id": "variable-palette",
        "title": "$palette",
        "groupName": "color",
        "path": "/sass/core/color/#variable-palette",
        "description": "The color palette map, can be extended or modified with set() and accessed with get()\n- Note do not use names that start with \"var(\" which are reserved for custom properties. Also do not use \"inherit\" or \"transparent\" as those are reserved.\n- The default palette color names are used throughout the system\n",
        "commentRange": {
          "start": 13,
          "end": 16
        },
        "context": {
          "type": "variable",
          "name": "palette",
          "value": "(\n  \"black\":                      #000000,\n  \"white\":                      #ffffff,\n  \"type\":                       #1f2937,\n  \"type-secondary\":             #4b5563,\n  \"type-tertiary\":              #6b7280,\n  \"type-disabled\":              #9ca3af,\n  \"headline\":                   inherit,\n  \"background\":                 #ffffff,\n  \"focus\":                      #2563eb,\n  \"accent\":                     #4f46e5,\n  \"info\":                       #0ea5e9,\n  \"success\":                    #16a34a,\n  \"warning\":                    #ea580c,\n  \"danger\":                     #dc2626,\n  \"info-background\":            #e0f2fe,\n  \"success-background\":         #dcfce7,\n  \"warning-background\":         #ffedd5,\n  \"danger-background\":          #fee2e2,\n  // Used for background of elements that are placeholder or that have no value (think charts)\n  \"placeholder-background\":     #e5e7eb,\n  \"placeholder-background-alt\": #d1d5db,\n  \"selected\":                   #0ea5e9,\n  \"selected-background\":        #e0f2fe,\n  \"box-shadow\":                 rgba(0, 0, 0, 0.2),\n  \"box-shadow-hover\":           rgba(0, 0, 0, 0.4),\n  \"rule\":                       #bbbfc6,\n  \"rule-light\":                 #dadde5,\n  \"link\":                       #2563eb,\n  \"link-hover\":                 #1d4ed8,\n  \"link-active\":                #1e40af,\n  \"link-visited\":               #7e22ce,\n  \"bullet\":                     inherit,\n  \"control\":                    #ffffff,\n  \"control-hover\":              #ffffff,\n  \"control-active\":             #ffffff,\n  \"control-border\":             #4f46e5,\n  \"control-border-hover\":       #4338ca,\n  \"control-border-active\":      #312e81,\n  \"control-background\":         #4f46e5,\n  \"control-background-hover\":   #4338ca,\n  \"control-background-active\":  #312e81,\n)",
          "scope": "default",
          "line": {
            "start": 18,
            "end": 60
          }
        },
        "type": "map",
        "group": [
          "color"
        ],
        "access": "public",
        "file": {
          "path": "_color.scss",
          "name": "_color.scss"
        },
        "usedBy": [
          {
            "description": "Used to override or extend the color palette\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $palette: map.merge($palette, $changes) !global;\n",
              "line": {
                "start": 97,
                "end": 99
              }
            }
          },
          {
            "description": "Used to override or extend the color palette\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $palette: map.merge($palette, $changes) !global;\n",
              "line": {
                "start": 97,
                "end": 99
              }
            }
          },
          {
            "description": "Get a color from the palette by name\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  // Allow non lookup if the value is already a color (helps with code flow)\n  @if (meta.type-of($name) == \"string\") {\n    $is-keyword: $name == \"inherit\" or $name == \"transparent\" or $name == \"currentColor\";\n    $is-cssvar: string.index($name, \"var(\") == 1;\n    $is-color-mix: string.index($name, \"color-mix(\") == 1;\n    // Allow custom-properties and keyword inherit/transparent to pass through\n    @if ($is-keyword or $is-cssvar or $is-color-mix) {\n      @return $name;\n    // Else look up the color from the palette\n    } @else {\n      @return utils.require-map-get($palette, $name, 'color');\n    }\n  }\n  // Allow everything other than strings to pass through\n  // - color, null, false, etc (so they can not output)\n  @return $name;\n",
              "line": {
                "start": 105,
                "end": 122
              }
            }
          },
          {
            "description": "Check if a color is set in the palette\n",
            "context": {
              "type": "function",
              "name": "exists",
              "code": "\n  $color: map.get($palette, $name);\n  @return utils.when($color != null, true, false);\n",
              "line": {
                "start": 133,
                "end": 136
              }
            }
          }
        ]
      },
      {
        "id": "variable-contexts",
        "title": "$contexts",
        "groupName": "color",
        "path": "/sass/core/color/#variable-contexts",
        "description": "Pairs of background-color and color definitions\n",
        "commentRange": {
          "start": 62,
          "end": 66
        },
        "context": {
          "type": "variable",
          "name": "contexts",
          "value": "(\n  \"dark\" : (\n    \"background-color\" : \"black\",\n    \"color\" : \"white\",\n    \"base-class\" : true\n  ),\n  \"light\" : (\n    \"background-color\" : \"white\",\n    \"color\" : \"black\",\n    \"base-class\" : true\n  ),\n)",
          "scope": "private",
          "line": {
            "start": 68,
            "end": 79
          }
        },
        "type": "map",
        "property": [
          {
            "type": "Number|String",
            "name": "$contexts.name.background-color",
            "description": "Color value or name of color in $palette"
          },
          {
            "type": "Number|String",
            "name": "$contexts.name.color",
            "description": "Color value or name of color in $palette"
          },
          {
            "type": "Boolean",
            "name": "$contexts.name.base-class",
            "description": "Print this value in the base module as a class (if base prints)"
          }
        ],
        "group": [
          "color"
        ],
        "access": "public",
        "file": {
          "path": "_color.scss",
          "name": "_color.scss"
        },
        "usedBy": [
          {
            "description": "Set color contexts\n",
            "context": {
              "type": "mixin",
              "name": "set-contexts",
              "code": "\n  $contexts: utils.map-merge($contexts, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 150,
                "end": 152
              }
            }
          },
          {
            "description": "Set color contexts\n",
            "context": {
              "type": "mixin",
              "name": "set-contexts",
              "code": "\n  $contexts: utils.map-merge($contexts, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 150,
                "end": 152
              }
            }
          },
          {
            "description": "Get a context by name\n",
            "context": {
              "type": "function",
              "name": "get-context",
              "code": "\n  @return utils.require-map-get($contexts, $name, 'context');\n",
              "line": {
                "start": 158,
                "end": 160
              }
            }
          },
          {
            "description": "Prints all context styles \n",
            "context": {
              "type": "mixin",
              "name": "all-context-styles",
              "code": "\n  $prefix: selector.class(\"color-context\");\n  @each $name, $context in $contexts {\n    @if (not $with-prop or map.get($context, $with-prop)) {\n      #{ $prefix }-#{ $name } {\n        @include context-styles($name);\n      }\n    }\n  }\n",
              "line": {
                "start": 241,
                "end": 250
              }
            }
          }
        ]
      },
      {
        "id": "variable-color-classes",
        "title": "$color-classes",
        "groupName": "color",
        "path": "/sass/core/color/#variable-color-classes",
        "description": "Palette entries that are output as classes when using all-color-class-styles\n- Use set-color-classes mixin to alter this map\n",
        "commentRange": {
          "start": 81,
          "end": 82
        },
        "context": {
          "type": "variable",
          "name": "color-classes",
          "value": "(\n  \"black\" : true,\n  \"white\" : true,\n  \"type\": true\n)",
          "scope": "default",
          "line": {
            "start": 83,
            "end": 87
          }
        },
        "group": [
          "color"
        ],
        "access": "public",
        "file": {
          "path": "_color.scss",
          "name": "_color.scss"
        },
        "usedBy": [
          {
            "description": "Set output classes for all-color-class-styles\n",
            "context": {
              "type": "mixin",
              "name": "set-color-classes",
              "code": "\n  $color-classes: map.merge($color-classes, $changes) !global;\n",
              "line": {
                "start": 127,
                "end": 129
              }
            }
          },
          {
            "description": "Set output classes for all-color-class-styles\n",
            "context": {
              "type": "mixin",
              "name": "set-color-classes",
              "code": "\n  $color-classes: map.merge($color-classes, $changes) !global;\n",
              "line": {
                "start": 127,
                "end": 129
              }
            }
          },
          {
            "description": "Outputs all color classes\n",
            "context": {
              "type": "mixin",
              "name": "all-color-class-styles",
              "code": "\n  $prefix: selector.class(\"color\");\n  @each $name, $output in $color-classes {\n    @if ($output) {\n      #{ $prefix }-#{ $name } {\n        color: get($name);\n      }\n    }\n  }\n",
              "line": {
                "start": 258,
                "end": 267
              }
            }
          }
        ]
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "color",
        "path": "/sass/core/color/#mixin-set",
        "description": "Used to override or extend the color palette\n",
        "commentRange": {
          "start": 89,
          "end": 95
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $palette: map.merge($palette, $changes) !global;\n",
          "line": {
            "start": 97,
            "end": 99
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "A map to merge into the color palette"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.color-set((\n  \"type\" : #444,\n  \"error\" : orange,\n));",
            "description": "Setting the error and type color"
          }
        ],
        "group": [
          "color"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "palette"
          },
          {
            "type": "variable",
            "name": "palette"
          }
        ],
        "file": {
          "path": "_color.scss",
          "name": "_color.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "color",
        "path": "/sass/core/color/#function-get",
        "description": "Get a color from the palette by name\n",
        "commentRange": {
          "start": 101,
          "end": 103
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  // Allow non lookup if the value is already a color (helps with code flow)\n  @if (meta.type-of($name) == \"string\") {\n    $is-keyword: $name == \"inherit\" or $name == \"transparent\" or $name == \"currentColor\";\n    $is-cssvar: string.index($name, \"var(\") == 1;\n    $is-color-mix: string.index($name, \"color-mix(\") == 1;\n    // Allow custom-properties and keyword inherit/transparent to pass through\n    @if ($is-keyword or $is-cssvar or $is-color-mix) {\n      @return $name;\n    // Else look up the color from the palette\n    } @else {\n      @return utils.require-map-get($palette, $name, 'color');\n    }\n  }\n  // Allow everything other than strings to pass through\n  // - color, null, false, etc (so they can not output)\n  @return $name;\n",
          "line": {
            "start": 105,
            "end": 122
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "description": "Name of color to get"
          }
        ],
        "return": {
          "type": "Color",
          "description": "Note if non-string value is passed it is sent back through, along with custom properties (\"var(...\" and keywords inherit and transparent. This is by design so that you can always pass a user's colors through this (without having to check if it's a color value or a string [color palette])"
        },
        "group": [
          "color"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "require-map-get"
          },
          {
            "type": "variable",
            "name": "palette"
          }
        ],
        "file": {
          "path": "_color.scss",
          "name": "_color.scss"
        }
      },
      {
        "id": "mixin-set-color-classes",
        "title": "set-color-classes()",
        "groupName": "color",
        "path": "/sass/core/color/#mixin-set-color-classes",
        "description": "Set output classes for all-color-class-styles\n",
        "commentRange": {
          "start": 124,
          "end": 125
        },
        "context": {
          "type": "mixin",
          "name": "set-color-classes",
          "code": "\n  $color-classes: map.merge($color-classes, $changes) !global;\n",
          "line": {
            "start": 127,
            "end": 129
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes (you can disable defaults this way)"
          }
        ],
        "group": [
          "color"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "color-classes"
          },
          {
            "type": "variable",
            "name": "color-classes"
          }
        ],
        "file": {
          "path": "_color.scss",
          "name": "_color.scss"
        }
      },
      {
        "id": "function-exists",
        "title": "exists()",
        "groupName": "color",
        "path": "/sass/core/color/#function-exists",
        "description": "Check if a color is set in the palette\n",
        "commentRange": {
          "start": 131,
          "end": 131
        },
        "context": {
          "type": "function",
          "name": "exists",
          "code": "\n  $color: map.get($palette, $name);\n  @return utils.when($color != null, true, false);\n",
          "line": {
            "start": 133,
            "end": 136
          }
        },
        "group": [
          "color"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "when"
          },
          {
            "type": "variable",
            "name": "palette"
          }
        ],
        "file": {
          "path": "_color.scss",
          "name": "_color.scss"
        }
      },
      {
        "id": "mixin-set-contexts",
        "title": "set-contexts()",
        "groupName": "color",
        "path": "/sass/core/color/#mixin-set-contexts",
        "description": "Set color contexts\n",
        "commentRange": {
          "start": 138,
          "end": 148
        },
        "context": {
          "type": "mixin",
          "name": "set-contexts",
          "code": "\n  $contexts: utils.map-merge($contexts, $changes, $merge-mode) !global;\n",
          "line": {
            "start": 150,
            "end": 152
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "A map to merge"
          },
          {
            "type": "Map",
            "name": "deep",
            "description": "Use deep merge"
          },
          {
            "type": "Map",
            "name": "overwrite",
            "description": "Overwrite the completely (cannot be used with deep)"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.color-set-contexts((\n  \"dark\" : (\n    \"background-color\" : red,\n    \"color\" : white,\n  )\n), false, true);",
            "description": "Overwriting contexts"
          }
        ],
        "group": [
          "color"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "map-merge"
          },
          {
            "type": "variable",
            "name": "contexts"
          },
          {
            "type": "variable",
            "name": "contexts"
          }
        ],
        "file": {
          "path": "_color.scss",
          "name": "_color.scss"
        }
      },
      {
        "id": "function-get-context",
        "title": "get-context()",
        "groupName": "color",
        "path": "/sass/core/color/#function-get-context",
        "description": "Get a context by name\n",
        "commentRange": {
          "start": 154,
          "end": 156
        },
        "context": {
          "type": "function",
          "name": "get-context",
          "code": "\n  @return utils.require-map-get($contexts, $name, 'context');\n",
          "line": {
            "start": 158,
            "end": 160
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "description": "Name of context"
          }
        ],
        "return": {
          "type": "Map"
        },
        "group": [
          "color"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "require-map-get"
          },
          {
            "type": "variable",
            "name": "contexts"
          }
        ],
        "file": {
          "path": "_color.scss",
          "name": "_color.scss"
        },
        "usedBy": [
          {
            "description": "Get a context's value'\n",
            "context": {
              "type": "function",
              "name": "get-context-value",
              "code": "\n  $context: get-context($name);\n  $value: map.get($context, $prop);\n  // Get from palette by name\n  @if (meta.type-of($value) == \"string\") {\n    $value: get($value);\n  }\n  @return $value;\n",
              "line": {
                "start": 167,
                "end": 175
              }
            }
          },
          {
            "description": "Prints contexts styles\n",
            "context": {
              "type": "mixin",
              "name": "context-styles",
              "code": "\n  $context: get-context($name);\n  background-color: get-context-value($name, \"background-color\");\n  background: map.get($context, \"background\"); // Allow gradients/images\n  background-image: map.get($context, \"background-image\"); // Allow gradients/images\n  color: get-context-value($name, \"color\");\n",
              "line": {
                "start": 180,
                "end": 186
              }
            }
          }
        ]
      },
      {
        "id": "function-get-context-value",
        "title": "get-context-value()",
        "groupName": "color",
        "path": "/sass/core/color/#function-get-context-value",
        "description": "Get a context's value'\n",
        "commentRange": {
          "start": 162,
          "end": 165
        },
        "context": {
          "type": "function",
          "name": "get-context-value",
          "code": "\n  $context: get-context($name);\n  $value: map.get($context, $prop);\n  // Get from palette by name\n  @if (meta.type-of($value) == \"string\") {\n    $value: get($value);\n  }\n  @return $value;\n",
          "line": {
            "start": 167,
            "end": 175
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "description": "Name of context"
          },
          {
            "type": "String",
            "name": "prop",
            "description": "The property to get"
          }
        ],
        "return": {
          "type": "Color"
        },
        "group": [
          "color"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get-context"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_color.scss",
          "name": "_color.scss"
        },
        "usedBy": [
          {
            "description": "Prints contexts styles\n",
            "context": {
              "type": "mixin",
              "name": "context-styles",
              "code": "\n  $context: get-context($name);\n  background-color: get-context-value($name, \"background-color\");\n  background: map.get($context, \"background\"); // Allow gradients/images\n  background-image: map.get($context, \"background-image\"); // Allow gradients/images\n  color: get-context-value($name, \"color\");\n",
              "line": {
                "start": 180,
                "end": 186
              }
            }
          },
          {
            "description": "Prints contexts styles\n",
            "context": {
              "type": "mixin",
              "name": "context-styles",
              "code": "\n  $context: get-context($name);\n  background-color: get-context-value($name, \"background-color\");\n  background: map.get($context, \"background\"); // Allow gradients/images\n  background-image: map.get($context, \"background-image\"); // Allow gradients/images\n  color: get-context-value($name, \"color\");\n",
              "line": {
                "start": 180,
                "end": 186
              }
            }
          }
        ]
      },
      {
        "id": "mixin-context-styles",
        "title": "context-styles()",
        "groupName": "color",
        "path": "/sass/core/color/#mixin-context-styles",
        "description": "Prints contexts styles\n",
        "commentRange": {
          "start": 177,
          "end": 178
        },
        "context": {
          "type": "mixin",
          "name": "context-styles",
          "code": "\n  $context: get-context($name);\n  background-color: get-context-value($name, \"background-color\");\n  background: map.get($context, \"background\"); // Allow gradients/images\n  background-image: map.get($context, \"background-image\"); // Allow gradients/images\n  color: get-context-value($name, \"color\");\n",
          "line": {
            "start": 180,
            "end": 186
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "description": "Name of context"
          }
        ],
        "group": [
          "color"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get-context"
          },
          {
            "type": "function",
            "name": "get-context-value"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get-context-value"
          }
        ],
        "file": {
          "path": "_color.scss",
          "name": "_color.scss"
        },
        "usedBy": [
          {
            "description": "Prints all context styles \n",
            "context": {
              "type": "mixin",
              "name": "all-context-styles",
              "code": "\n  $prefix: selector.class(\"color-context\");\n  @each $name, $context in $contexts {\n    @if (not $with-prop or map.get($context, $with-prop)) {\n      #{ $prefix }-#{ $name } {\n        @include context-styles($name);\n      }\n    }\n  }\n",
              "line": {
                "start": 241,
                "end": 250
              }
            }
          }
        ]
      },
      {
        "id": "function-tint",
        "title": "tint()",
        "groupName": "color",
        "path": "/sass/core/color/#function-tint",
        "description": "Tint (add white) a color using the default white by a percentage\n",
        "commentRange": {
          "start": 188,
          "end": 193
        },
        "context": {
          "type": "function",
          "name": "tint",
          "code": "\n  @return color.mix(get(\"white\"), get($color), $percentage);\n",
          "line": {
            "start": 195,
            "end": 197
          }
        },
        "parameter": [
          {
            "type": "Color, String",
            "name": "color",
            "description": "Color/palette color name to apply to tint"
          },
          {
            "type": "Number",
            "name": "percentage",
            "description": "Percentage"
          }
        ],
        "return": {
          "type": "Color"
        },
        "author": [
          ""
        ],
        "link": [
          {
            "url": "https://css-tricks.com/snippets/sass/tint-shade-functions/",
            "caption": "Modified from source (CSS Tricks, Kitty Giraudel)"
          }
        ],
        "group": [
          "color"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_color.scss",
          "name": "_color.scss"
        }
      },
      {
        "id": "function-css-tint",
        "title": "css-tint()",
        "groupName": "color",
        "path": "/sass/core/color/#function-css-tint",
        "description": "Tint (add white) a color using the default white by a percentage (Using color-mix)\n- This only works in modern browsers (as of June 2025)\n- These match ulu.color-tint() and are designed to accept the same arguments with the same results\n",
        "commentRange": {
          "start": 199,
          "end": 204
        },
        "context": {
          "type": "function",
          "name": "css-tint",
          "code": "\n  @return color-mix(in srgb, get(\"white\") $percentage, get($color) calc(100% - $percentage));\n",
          "line": {
            "start": 206,
            "end": 208
          }
        },
        "parameter": [
          {
            "type": "Color, String",
            "name": "color",
            "description": "Color or custom property to apply mix to"
          },
          {
            "type": "Number",
            "name": "percentage",
            "description": "Percentage"
          }
        ],
        "return": {
          "type": "Color"
        },
        "group": [
          "color"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_color.scss",
          "name": "_color.scss"
        }
      },
      {
        "id": "function-shade",
        "title": "shade()",
        "groupName": "color",
        "path": "/sass/core/color/#function-shade",
        "description": "Shade (add black) a color with the default black by a percentage\n",
        "commentRange": {
          "start": 210,
          "end": 215
        },
        "context": {
          "type": "function",
          "name": "shade",
          "code": "\n  @return color.mix(get(\"black\"), get($color), $percentage);\n",
          "line": {
            "start": 217,
            "end": 219
          }
        },
        "parameter": [
          {
            "type": "Color, String",
            "name": "color",
            "description": "Color/palette color name to shade"
          },
          {
            "type": "Number",
            "name": "percentage",
            "description": "Percentage to shade"
          }
        ],
        "return": {
          "type": "Color"
        },
        "author": [
          "Kitty Giraudel"
        ],
        "link": [
          {
            "url": "https://css-tricks.com/snippets/sass/tint-shade-functions/",
            "caption": "Modified from source (CSS Tricks, Kitty Giraudel)"
          }
        ],
        "group": [
          "color"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_color.scss",
          "name": "_color.scss"
        }
      },
      {
        "id": "function-css-shade",
        "title": "css-shade()",
        "groupName": "color",
        "path": "/sass/core/color/#function-css-shade",
        "description": "Shade (add black) a color using the default white by a percentage (Using color-mix)\n- This only works in modern browsers (as of June 2025)\n- These match ulu.color-shade() and are designed to accept the same arguments with the same results\n",
        "commentRange": {
          "start": 221,
          "end": 226
        },
        "context": {
          "type": "function",
          "name": "css-shade",
          "code": "\n  @return color-mix(in srgb, get(\"black\") $percentage, get($color) calc(100% - $percentage));\n",
          "line": {
            "start": 228,
            "end": 230
          }
        },
        "parameter": [
          {
            "type": "Color, String",
            "name": "color",
            "description": "Color or custom property to apply mix to"
          },
          {
            "type": "Number",
            "name": "percentage",
            "description": "Percentage"
          }
        ],
        "return": {
          "type": "Color"
        },
        "group": [
          "color"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_color.scss",
          "name": "_color.scss"
        }
      },
      {
        "id": "mixin-all-context-styles",
        "title": "all-context-styles()",
        "groupName": "color",
        "path": "/sass/core/color/#mixin-all-context-styles",
        "description": "Prints all context styles \n",
        "commentRange": {
          "start": 232,
          "end": 239
        },
        "context": {
          "type": "mixin",
          "name": "all-context-styles",
          "code": "\n  $prefix: selector.class(\"color-context\");\n  @each $name, $context in $contexts {\n    @if (not $with-prop or map.get($context, $with-prop)) {\n      #{ $prefix }-#{ $name } {\n        @include context-styles($name);\n      }\n    }\n  }\n",
          "line": {
            "start": 241,
            "end": 250
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "with-prop",
            "description": "Checks the specific context for a certain prop (has to be truthy)(used for output in helper/base color modules)"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.all-context-styles();"
          },
          {
            "type": "html",
            "code": " <div class=\"color-context-dark\" style=\"padding: 1rem\">\n  Some text in dark context\n</div>",
            "description": "Example of a color-context",
            "modifier": "preview"
          }
        ],
        "group": [
          "color"
        ],
        "access": "public",
        "require": [
          {
            "type": "mixin",
            "name": "context-styles"
          },
          {
            "type": "function",
            "name": "class"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "variable",
            "name": "contexts"
          }
        ],
        "file": {
          "path": "_color.scss",
          "name": "_color.scss"
        }
      },
      {
        "id": "mixin-all-color-class-styles",
        "title": "all-color-class-styles()",
        "groupName": "color",
        "path": "/sass/core/color/#mixin-all-color-class-styles",
        "description": "Outputs all color classes\n",
        "commentRange": {
          "start": 252,
          "end": 256
        },
        "context": {
          "type": "mixin",
          "name": "all-color-class-styles",
          "code": "\n  $prefix: selector.class(\"color\");\n  @each $name, $output in $color-classes {\n    @if ($output) {\n      #{ $prefix }-#{ $name } {\n        color: get($name);\n      }\n    }\n  }\n",
          "line": {
            "start": 258,
            "end": 267
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.all-color-class-styles();"
          },
          {
            "type": "html",
            "code": "<span class=\"color-name\">Some text</span>",
            "description": "Example of a color-context",
            "modifier": "preview"
          }
        ],
        "group": [
          "color"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "class"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "variable",
            "name": "color-classes"
          }
        ],
        "file": {
          "path": "_color.scss",
          "name": "_color.scss"
        }
      }
    ],
    "display": [
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "display",
        "path": "/sass/helpers/display/#mixin-styles",
        "description": "Print utilities helper styles\n- Such as hidden, display-block, hidden-visually, and display helpers that for all breakpoints\n",
        "commentRange": {
          "start": 14,
          "end": 17
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n\n  @include utils.file-header('helpers', 'display');\n\n  $prefix-hidden-visually: selector.class(\"hidden-visually\");\n  $prefix-display: selector.class(\"display\");\n  $prefix-hidden: selector.class(\"hidden\");\n\n  #{ $prefix-hidden-visually } {\n    @include element.hidden-visually();\n  }\n  #{ $prefix-hidden-visually }-focusable {\n    &:not(:active):not(:focus) {\n      @include element.hidden-visually();\n    }\n  }\n  #{ $prefix-display }-block {\n    display: block;\n  }\n  #{ $prefix-display }-flex {\n    display: flex;\n  }\n  #{ $prefix-display }-inline-flex {\n    display: inline-flex;\n  }\n  #{ $prefix-display }-inline {\n    display: inline;\n  }\n  #{ $prefix-display }-inline-all * {\n    display: inline;\n  }\n  #{ $prefix-display }-inline-block {\n    display: inline-block;\n  }\n  #{ $prefix-hidden },\n  #{ $prefix-display }-none {\n    display: none !important;\n  }\n\n  // Display none per breakpoint\n  @each $name in map.keys(breakpoint.$sizes) {\n    @include breakpoint.min($name) {\n      #{ $prefix-hidden }-min-#{ $name } {\n        display: none !important;\n      }\n    }\n    @include breakpoint.max($name) {\n      #{ $prefix-hidden }-max-#{ $name } {\n        display: none !important;\n      }\n    }\n  }\n",
          "line": {
            "start": 19,
            "end": 71
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.helper-display-styles();"
          }
        ],
        "group": [
          "display"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_display.scss",
          "name": "_display.scss"
        }
      }
    ],
    "index": [
      {
        "id": "variable-all-includes",
        "title": "$all-includes",
        "groupName": "index",
        "path": "/sass/components/index/#variable-all-includes",
        "description": "Default includes, all modules\n",
        "commentRange": {
          "start": 137,
          "end": 138
        },
        "context": {
          "type": "variable",
          "name": "all-includes",
          "value": "(\n  \"accordion\",\n  \"adaptive-spacing\",\n  \"badge\",\n  \"badge-stack\",\n  \"basic-hero\",\n  \"button\",\n  \"button-group\",\n  \"button-verbose\",\n  \"breadcrumb\",\n  \"callout\",\n  \"card\",\n  \"card-grid\",\n  \"counter-list\",\n  \"css-icon\",\n  \"data-grid\",\n  \"data-table\",\n  \"data-list\",\n  \"definition-list\",\n  \"fill-context\",\n  \"flipcard\",\n  \"flipcard-grid\",\n  \"form-theme\",\n  \"graphic-text-group\",\n  \"headline-label\",\n  \"input-group\",\n  \"rule-inline\",\n  \"image-grid\",\n  \"links\",\n  \"list-lines\",\n  \"list-inline\",\n  \"list-ordered\",\n  \"list-unordered\",\n  \"menu-stack\",\n  \"modal\",\n  \"nav-strip\",\n  \"overlay-section\",\n  \"pager\",\n  \"panel\",\n  \"popover\",\n  \"progress-bar\",\n  \"progress-circle\",\n  \"pull-quote\",\n  \"rail\",\n  \"ratio-box\",\n  \"rule\",\n  \"scroll-slider\",\n  \"skeleton\",\n  \"skip-link\",\n  \"sticky-list\",\n  \"slider\",\n  \"hero\",\n  \"tabs\",\n  \"table-scroller\",\n  \"tag\",\n  \"tagged\",\n  \"tile-grid\",\n  \"tile-button\",\n  \"tile-grid-overlay\",\n  \"placeholder-block\",\n  \"pull-quote\",\n  \"vignette\",\n  \"captioned-figure\",\n  \"spoke-spinner\",\n  \"wysiwyg\",\n)",
          "scope": "private",
          "line": {
            "start": 140,
            "end": 205
          }
        },
        "type": "List",
        "group": [
          "index"
        ],
        "access": "public",
        "file": {
          "path": "_index.scss",
          "name": "_index.scss"
        },
        "usedBy": [
          {
            "description": "Change default includes (when user prints modules)\n- This available as configuration so that it can be configured (to allow easily copying configuration)\n",
            "context": {
              "type": "mixin",
              "name": "set-includes",
              "code": "\n  @include utils.require-list-contains($all-includes, $includes, \"components.set-includes\", true);\n  $current-includes: utils.list-merge($current-includes, $includes, $merge-mode) !global;\n",
              "line": {
                "start": 217,
                "end": 220
              }
            }
          },
          {
            "description": "Prints all Components styles\n",
            "context": {
              "type": "mixin",
              "name": "component-styles",
              "code": "\n  @include utils.file-header(\"components\");\n\n  @include utils.require-list-contains($all-includes, $includes, \"components.$includes\", true);\n  \n  @if (list.index($includes, \"accordion\")) {\n    @include accordion.styles;\n  }\n  @if (list.index($includes, \"adaptive-spacing\")) {\n    @include adaptive-spacing.styles;\n  }\n  @if (list.index($includes, \"hero\")) {\n    @include hero.styles;\n  }\n  @if (list.index($includes, \"button\")) {\n    @include button.styles;\n  }\n  @if (list.index($includes, \"button-group\")) {\n    @include button-group.styles;\n  }\n  @if (list.index($includes, \"button-verbose\")) {\n    @include button-verbose.styles;\n  }\n  @if (list.index($includes, \"breadcrumb\")) {\n    @include breadcrumb.styles;\n  }\n  @if (list.index($includes, \"badge\")) {\n    @include badge.styles;\n  }\n  @if (list.index($includes, \"badge-stack\")) {\n    @include badge-stack.styles;\n  }\n  @if (list.index($includes, \"basic-hero\")) {\n    @include basic-hero.styles;\n  }\n  @if (list.index($includes, \"tag\")) {\n    @include tag.styles;\n  }\n  @if (list.index($includes, \"tagged\")) {\n    @include tagged.styles;\n  }\n  @if (list.index($includes, \"callout\")) {\n    @include callout.styles;\n  }\n  @if (list.index($includes, \"card\")) {\n    @include card.styles;\n  }\n  @if (list.index($includes, \"card-grid\")) {\n    @include card-grid.styles;\n  }\n  @if (list.index($includes, \"counter-list\")) {\n    @include counter-list.styles;\n  }\n  @if (list.index($includes, \"css-icon\")) {\n    @include css-icon.styles;\n  }\n  @if (list.index($includes, \"data-grid\")) {\n    @include data-grid.styles;\n  }\n  @if (list.index($includes, \"data-table\")) {\n    @include data-table.styles;\n  }\n  @if (list.index($includes, \"data-list\")) {\n    @include data-list.styles;\n  }\n  @if (list.index($includes, \"definition-list\")) {\n    @include definition-list.styles;\n  }\n  @if (list.index($includes, \"fill-context\")) {\n    @include fill-context.styles;\n  }\n  @if (list.index($includes, \"flipcard\")) {\n    @include flipcard.styles;\n  }\n  @if (list.index($includes, \"flipcard-grid\")) {\n    @include flipcard-grid.styles;\n  }\n  @if (list.index($includes, \"form-theme\")) {\n    @include form-theme.styles;\n  }\n  @if (list.index($includes, \"graphic-text-group\")) {\n    @include graphic-text-group.styles;\n  }\n  @if (list.index($includes, \"headline-label\")) {\n    @include headline-label.styles;\n  }\n  @if (list.index($includes, \"rule-inline\")) {\n    @include rule-inline.styles;\n  }\n  @if (list.index($includes, \"image-grid\")) {\n    @include image-grid.styles;\n  }\n  @if (list.index($includes, \"input-group\")) {\n    @include input-group.styles;\n  }\n  @if (list.index($includes, \"links\")) {\n    @include links.styles;\n  }\n  @if (list.index($includes, \"list-lines\")) {\n    @include list-lines.styles;\n  }\n  @if (list.index($includes, \"list-inline\")) {\n    @include list-inline.styles;\n  }\n  @if (list.index($includes, \"list-unordered\")) {\n    @include list-unordered.styles;\n  }\n  @if (list.index($includes, \"list-ordered\")) {\n    @include list-ordered.styles;\n  }\n  @if (list.index($includes, \"menu-stack\")) {\n    @include menu-stack.styles;\n  }\n  @if (list.index($includes, \"modal\")) {\n    @include modal.styles;\n  }\n  @if (list.index($includes, \"nav-strip\")) {\n    @include nav-strip.styles;\n  }\n  @if (list.index($includes, \"overlay-section\")) {\n    @include overlay-section.styles;\n  }\n  @if (list.index($includes, \"pager\")) {\n    @include pager.styles;\n  }\n  @if (list.index($includes, \"panel\")) {\n    @include panel.styles;\n  }\n  @if (list.index($includes, \"placeholder-block\")) {\n    @include placeholder-block.styles;\n  }\n  @if (list.index($includes, \"popover\")) {\n    @include popover.styles;\n  }\n  @if (list.index($includes, \"progress-bar\")) {\n    @include progress-bar.styles;\n  }\n  @if (list.index($includes, \"progress-circle\")) {\n    @include progress-circle.styles;\n  }\n  @if (list.index($includes, \"pull-quote\")) {\n    @include pull-quote.styles;\n  }\n  @if (list.index($includes, \"rail\")) {\n    @include rail.styles;\n  }\n  @if (list.index($includes, \"ratio-box\")) {\n    @include ratio-box.styles;\n  }\n  @if (list.index($includes, \"rule\")) {\n    @include rule.styles;\n  }\n  @if (list.index($includes, \"scroll-slider\")) {\n    @include scroll-slider.styles;\n  }\n  @if (list.index($includes, \"skeleton\")) {\n    @include skeleton.styles;\n  }\n  @if (list.index($includes, \"skip-link\")) {\n    @include skip-link.styles;\n  }\n  @if (list.index($includes, \"sticky-list\")) {\n    @include sticky-list.styles;\n  }\n  @if (list.index($includes, \"slider\")) {\n    @include slider.styles;\n  }\n  @if (list.index($includes, \"tabs\")) {\n    @include tabs.styles;\n  }\n  @if (list.index($includes, \"table-scroller\")) {\n    @include table-scroller.styles;\n  }\n  @if (list.index($includes, \"tile-grid\")) {\n    @include tile-grid.styles;\n  }\n  @if (list.index($includes, \"tile-button\")) {\n    @include tile-button.styles;\n  }\n  @if (list.index($includes, \"tile-grid-overlay\")) {\n    @include tile-grid-overlay.styles;\n  }\n  @if (list.index($includes, \"vignette\")) {\n    @include vignette.styles;\n  }\n  @if (list.index($includes, \"captioned-figure\")) {\n    @include captioned-figure.styles;\n  }\n  @if (list.index($includes, \"spoke-spinner\")) {\n    @include spoke-spinner.styles;\n  }\n  @if (list.index($includes, \"wysiwyg\")) {\n    @include wysiwyg.styles;\n  }\n",
              "line": {
                "start": 235,
                "end": 429
              }
            }
          }
        ]
      },
      {
        "id": "variable-current-includes",
        "title": "$current-includes",
        "groupName": "index",
        "path": "/sass/components/index/#variable-current-includes",
        "description": "Current included modules (for output when using styles), defaults to all\n",
        "commentRange": {
          "start": 207,
          "end": 208
        },
        "context": {
          "type": "variable",
          "name": "current-includes",
          "value": "$all-includes",
          "scope": "private",
          "line": {
            "start": 210,
            "end": 210
          }
        },
        "type": "List",
        "group": [
          "index"
        ],
        "access": "public",
        "file": {
          "path": "_index.scss",
          "name": "_index.scss"
        },
        "usedBy": [
          {
            "description": "Change default includes (when user prints modules)\n- This available as configuration so that it can be configured (to allow easily copying configuration)\n",
            "context": {
              "type": "mixin",
              "name": "set-includes",
              "code": "\n  @include utils.require-list-contains($all-includes, $includes, \"components.set-includes\", true);\n  $current-includes: utils.list-merge($current-includes, $includes, $merge-mode) !global;\n",
              "line": {
                "start": 217,
                "end": 220
              }
            }
          },
          {
            "description": "Change default includes (when user prints modules)\n- This available as configuration so that it can be configured (to allow easily copying configuration)\n",
            "context": {
              "type": "mixin",
              "name": "set-includes",
              "code": "\n  @include utils.require-list-contains($all-includes, $includes, \"components.set-includes\", true);\n  $current-includes: utils.list-merge($current-includes, $includes, $merge-mode) !global;\n",
              "line": {
                "start": 217,
                "end": 220
              }
            }
          },
          {
            "description": "Exclude certain items from includes\n",
            "context": {
              "type": "mixin",
              "name": "set-excludes",
              "code": "\n  $current-includes: utils.list-without($current-includes, $excludes) !global;\n",
              "line": {
                "start": 225,
                "end": 227
              }
            }
          },
          {
            "description": "Exclude certain items from includes\n",
            "context": {
              "type": "mixin",
              "name": "set-excludes",
              "code": "\n  $current-includes: utils.list-without($current-includes, $excludes) !global;\n",
              "line": {
                "start": 225,
                "end": 227
              }
            }
          }
        ]
      },
      {
        "id": "mixin-set-includes",
        "title": "set-includes()",
        "groupName": "index",
        "path": "/sass/components/index/#mixin-set-includes",
        "description": "Change default includes (when user prints modules)\n- This available as configuration so that it can be configured (to allow easily copying configuration)\n",
        "commentRange": {
          "start": 212,
          "end": 215
        },
        "context": {
          "type": "mixin",
          "name": "set-includes",
          "code": "\n  @include utils.require-list-contains($all-includes, $includes, \"components.set-includes\", true);\n  $current-includes: utils.list-merge($current-includes, $includes, $merge-mode) !global;\n",
          "line": {
            "start": 217,
            "end": 220
          }
        },
        "parameter": [
          {
            "type": "List",
            "name": "includes",
            "description": "List of modules by name to be included when styles are printed"
          },
          {
            "type": "String",
            "name": "merge-mode",
            "description": "Merge mode see utils.list-merge() [\"merge\"|\"overwrite\"]"
          }
        ],
        "group": [
          "index"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "all-includes"
          },
          {
            "type": "variable",
            "name": "current-includes"
          },
          {
            "type": "variable",
            "name": "current-includes"
          }
        ],
        "file": {
          "path": "_index.scss",
          "name": "_index.scss"
        }
      },
      {
        "id": "mixin-set-excludes",
        "title": "set-excludes()",
        "groupName": "index",
        "path": "/sass/components/index/#mixin-set-excludes",
        "description": "Exclude certain items from includes\n",
        "commentRange": {
          "start": 222,
          "end": 223
        },
        "context": {
          "type": "mixin",
          "name": "set-excludes",
          "code": "\n  $current-includes: utils.list-without($current-includes, $excludes) !global;\n",
          "line": {
            "start": 225,
            "end": 227
          }
        },
        "parameter": [
          {
            "type": "List",
            "name": "excludes",
            "description": "List of item names"
          }
        ],
        "group": [
          "index"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "current-includes"
          },
          {
            "type": "variable",
            "name": "current-includes"
          }
        ],
        "file": {
          "path": "_index.scss",
          "name": "_index.scss"
        }
      },
      {
        "id": "mixin-component-styles",
        "title": "component-styles()",
        "groupName": "index",
        "path": "/sass/components/index/#mixin-component-styles",
        "description": "Prints all Components styles\n",
        "commentRange": {
          "start": 229,
          "end": 233
        },
        "context": {
          "type": "mixin",
          "name": "component-styles",
          "code": "\n  @include utils.file-header(\"components\");\n\n  @include utils.require-list-contains($all-includes, $includes, \"components.$includes\", true);\n  \n  @if (list.index($includes, \"accordion\")) {\n    @include accordion.styles;\n  }\n  @if (list.index($includes, \"adaptive-spacing\")) {\n    @include adaptive-spacing.styles;\n  }\n  @if (list.index($includes, \"hero\")) {\n    @include hero.styles;\n  }\n  @if (list.index($includes, \"button\")) {\n    @include button.styles;\n  }\n  @if (list.index($includes, \"button-group\")) {\n    @include button-group.styles;\n  }\n  @if (list.index($includes, \"button-verbose\")) {\n    @include button-verbose.styles;\n  }\n  @if (list.index($includes, \"breadcrumb\")) {\n    @include breadcrumb.styles;\n  }\n  @if (list.index($includes, \"badge\")) {\n    @include badge.styles;\n  }\n  @if (list.index($includes, \"badge-stack\")) {\n    @include badge-stack.styles;\n  }\n  @if (list.index($includes, \"basic-hero\")) {\n    @include basic-hero.styles;\n  }\n  @if (list.index($includes, \"tag\")) {\n    @include tag.styles;\n  }\n  @if (list.index($includes, \"tagged\")) {\n    @include tagged.styles;\n  }\n  @if (list.index($includes, \"callout\")) {\n    @include callout.styles;\n  }\n  @if (list.index($includes, \"card\")) {\n    @include card.styles;\n  }\n  @if (list.index($includes, \"card-grid\")) {\n    @include card-grid.styles;\n  }\n  @if (list.index($includes, \"counter-list\")) {\n    @include counter-list.styles;\n  }\n  @if (list.index($includes, \"css-icon\")) {\n    @include css-icon.styles;\n  }\n  @if (list.index($includes, \"data-grid\")) {\n    @include data-grid.styles;\n  }\n  @if (list.index($includes, \"data-table\")) {\n    @include data-table.styles;\n  }\n  @if (list.index($includes, \"data-list\")) {\n    @include data-list.styles;\n  }\n  @if (list.index($includes, \"definition-list\")) {\n    @include definition-list.styles;\n  }\n  @if (list.index($includes, \"fill-context\")) {\n    @include fill-context.styles;\n  }\n  @if (list.index($includes, \"flipcard\")) {\n    @include flipcard.styles;\n  }\n  @if (list.index($includes, \"flipcard-grid\")) {\n    @include flipcard-grid.styles;\n  }\n  @if (list.index($includes, \"form-theme\")) {\n    @include form-theme.styles;\n  }\n  @if (list.index($includes, \"graphic-text-group\")) {\n    @include graphic-text-group.styles;\n  }\n  @if (list.index($includes, \"headline-label\")) {\n    @include headline-label.styles;\n  }\n  @if (list.index($includes, \"rule-inline\")) {\n    @include rule-inline.styles;\n  }\n  @if (list.index($includes, \"image-grid\")) {\n    @include image-grid.styles;\n  }\n  @if (list.index($includes, \"input-group\")) {\n    @include input-group.styles;\n  }\n  @if (list.index($includes, \"links\")) {\n    @include links.styles;\n  }\n  @if (list.index($includes, \"list-lines\")) {\n    @include list-lines.styles;\n  }\n  @if (list.index($includes, \"list-inline\")) {\n    @include list-inline.styles;\n  }\n  @if (list.index($includes, \"list-unordered\")) {\n    @include list-unordered.styles;\n  }\n  @if (list.index($includes, \"list-ordered\")) {\n    @include list-ordered.styles;\n  }\n  @if (list.index($includes, \"menu-stack\")) {\n    @include menu-stack.styles;\n  }\n  @if (list.index($includes, \"modal\")) {\n    @include modal.styles;\n  }\n  @if (list.index($includes, \"nav-strip\")) {\n    @include nav-strip.styles;\n  }\n  @if (list.index($includes, \"overlay-section\")) {\n    @include overlay-section.styles;\n  }\n  @if (list.index($includes, \"pager\")) {\n    @include pager.styles;\n  }\n  @if (list.index($includes, \"panel\")) {\n    @include panel.styles;\n  }\n  @if (list.index($includes, \"placeholder-block\")) {\n    @include placeholder-block.styles;\n  }\n  @if (list.index($includes, \"popover\")) {\n    @include popover.styles;\n  }\n  @if (list.index($includes, \"progress-bar\")) {\n    @include progress-bar.styles;\n  }\n  @if (list.index($includes, \"progress-circle\")) {\n    @include progress-circle.styles;\n  }\n  @if (list.index($includes, \"pull-quote\")) {\n    @include pull-quote.styles;\n  }\n  @if (list.index($includes, \"rail\")) {\n    @include rail.styles;\n  }\n  @if (list.index($includes, \"ratio-box\")) {\n    @include ratio-box.styles;\n  }\n  @if (list.index($includes, \"rule\")) {\n    @include rule.styles;\n  }\n  @if (list.index($includes, \"scroll-slider\")) {\n    @include scroll-slider.styles;\n  }\n  @if (list.index($includes, \"skeleton\")) {\n    @include skeleton.styles;\n  }\n  @if (list.index($includes, \"skip-link\")) {\n    @include skip-link.styles;\n  }\n  @if (list.index($includes, \"sticky-list\")) {\n    @include sticky-list.styles;\n  }\n  @if (list.index($includes, \"slider\")) {\n    @include slider.styles;\n  }\n  @if (list.index($includes, \"tabs\")) {\n    @include tabs.styles;\n  }\n  @if (list.index($includes, \"table-scroller\")) {\n    @include table-scroller.styles;\n  }\n  @if (list.index($includes, \"tile-grid\")) {\n    @include tile-grid.styles;\n  }\n  @if (list.index($includes, \"tile-button\")) {\n    @include tile-button.styles;\n  }\n  @if (list.index($includes, \"tile-grid-overlay\")) {\n    @include tile-grid-overlay.styles;\n  }\n  @if (list.index($includes, \"vignette\")) {\n    @include vignette.styles;\n  }\n  @if (list.index($includes, \"captioned-figure\")) {\n    @include captioned-figure.styles;\n  }\n  @if (list.index($includes, \"spoke-spinner\")) {\n    @include spoke-spinner.styles;\n  }\n  @if (list.index($includes, \"wysiwyg\")) {\n    @include wysiwyg.styles;\n  }\n",
          "line": {
            "start": 235,
            "end": 429
          }
        },
        "parameter": [
          {
            "type": "List",
            "name": "includes",
            "default": "$all-includes",
            "description": "A list of components to include (defaults to all)"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-styles();"
          }
        ],
        "group": [
          "index"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "all-includes"
          }
        ],
        "file": {
          "path": "_index.scss",
          "name": "_index.scss"
        }
      }
    ],
    "layout": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "layout",
        "path": "/sass/core/layout/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 13,
          "end": 19
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"margin\":            2rem,\n  \"max-width\":         90rem,\n  \"z-index-above\":     450,\n  \"z-index-fixed\":     1000,\n  \"z-index-sticky\":    100,\n)",
          "scope": "default",
          "line": {
            "start": 21,
            "end": 27
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Number",
            "name": "margin",
            "default": "2rem",
            "description": "Common margin for site"
          },
          {
            "type": "Number",
            "name": "max-width",
            "default": "90rem",
            "description": "Common max-width for site"
          },
          {
            "type": "Number",
            "name": "z-index-above",
            "default": "1000",
            "description": "Common z-index, below sticky"
          },
          {
            "type": "Number",
            "name": "z-index-fixed",
            "default": "100",
            "description": "Common z-index, above everything"
          },
          {
            "type": "Number",
            "name": "z-index-sticky",
            "default": "450",
            "description": "Common z-index for sticky or stuck items"
          }
        ],
        "group": [
          "layout"
        ],
        "access": "public",
        "file": {
          "path": "_layout.scss",
          "name": "_layout.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "layout",
        "path": "/sass/core/layout/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 29,
          "end": 31
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 33,
            "end": 35
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes\n  @include ulu.layout-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "layout"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_layout.scss",
          "name": "_layout.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "layout",
        "path": "/sass/core/layout/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 37,
          "end": 39
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"layout [config]\");\n",
          "line": {
            "start": 40,
            "end": 42
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property\n  @include ulu.layout-get(\"property\");"
          }
        ],
        "group": [
          "layout"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "require-map-get"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_layout.scss",
          "name": "_layout.scss"
        }
      },
      {
        "id": "variable-widths",
        "title": "$widths",
        "groupName": "layout",
        "path": "/sass/core/layout/#variable-widths",
        "description": "System widths\n",
        "commentRange": {
          "start": 44,
          "end": 50
        },
        "context": {
          "type": "variable",
          "name": "widths",
          "value": "(\n  \"small-x\": (\n    \"value\": 6rem,\n    \"helper-class\": true\n  ),\n  \"small\": (\n    \"value\": 8rem,\n    \"helper-class\": true\n  ),\n  \"medium\": (\n    \"value\": 16rem,\n    \"helper-class\": true\n  ),\n  \"large\": (\n    \"value\": 32rem,\n    \"helper-class\": true\n  )\n)",
          "scope": "default",
          "line": {
            "start": 52,
            "end": 69
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Map",
            "name": "[name]",
            "description": "The width definition"
          },
          {
            "type": "String|Number",
            "name": "[name].value",
            "description": "The base width value"
          },
          {
            "type": "Boolean",
            "name": "[name].helper-class",
            "description": "Output a helper class for this width"
          },
          {
            "type": "Boolean",
            "name": "[name].match-font-size",
            "description": "If enabled will set font size equal to width for font based icon fonts (only output with helper class)"
          },
          {
            "type": "Map",
            "name": "[name].breakpoints",
            "description": "Responsive breakpoints (optional)"
          }
        ],
        "group": [
          "layout"
        ],
        "access": "public",
        "file": {
          "path": "_layout.scss",
          "name": "_layout.scss"
        },
        "usedBy": [
          {
            "description": "Change widths config\n",
            "context": {
              "type": "mixin",
              "name": "set-widths",
              "code": "\n  $widths: utils.map-merge($widths, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 75,
                "end": 77
              }
            }
          },
          {
            "description": "Change widths config\n",
            "context": {
              "type": "mixin",
              "name": "set-widths",
              "code": "\n  $widths: utils.map-merge($widths, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 75,
                "end": 77
              }
            }
          },
          {
            "description": "Get a width config by name\n",
            "context": {
              "type": "function",
              "name": "get-width",
              "code": "\n  @return utils.require-map-get($widths, $name, \"layout [widths]\");\n",
              "line": {
                "start": 83,
                "end": 85
              }
            }
          }
        ]
      },
      {
        "id": "mixin-set-widths",
        "title": "set-widths()",
        "groupName": "layout",
        "path": "/sass/core/layout/#mixin-set-widths",
        "description": "Change widths config\n",
        "commentRange": {
          "start": 71,
          "end": 73
        },
        "context": {
          "type": "mixin",
          "name": "set-widths",
          "code": "\n  $widths: utils.map-merge($widths, $changes, $merge-mode) !global;\n",
          "line": {
            "start": 75,
            "end": 77
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          },
          {
            "type": "String",
            "name": "merge-mode",
            "description": "Merge mode see utils.map-merge() [null|\"deep\"|\"overwrite\"]"
          }
        ],
        "group": [
          "layout"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "map-merge"
          },
          {
            "type": "variable",
            "name": "widths"
          },
          {
            "type": "variable",
            "name": "widths"
          }
        ],
        "file": {
          "path": "_layout.scss",
          "name": "_layout.scss"
        }
      },
      {
        "id": "function-get-width",
        "title": "get-width()",
        "groupName": "layout",
        "path": "/sass/core/layout/#function-get-width",
        "description": "Get a width config by name\n",
        "commentRange": {
          "start": 79,
          "end": 81
        },
        "context": {
          "type": "function",
          "name": "get-width",
          "code": "\n  @return utils.require-map-get($widths, $name, \"layout [widths]\");\n",
          "line": {
            "start": 83,
            "end": 85
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "description": "Name of width"
          }
        ],
        "return": {
          "type": "Map",
          "description": "The width configuration object"
        },
        "group": [
          "layout"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "require-map-get"
          },
          {
            "type": "variable",
            "name": "widths"
          }
        ],
        "file": {
          "path": "_layout.scss",
          "name": "_layout.scss"
        }
      },
      {
        "id": "variable-max-widths",
        "title": "$max-widths",
        "groupName": "layout",
        "path": "/sass/core/layout/#variable-max-widths",
        "description": "System max-widths\n",
        "commentRange": {
          "start": 87,
          "end": 92
        },
        "context": {
          "type": "variable",
          "name": "max-widths",
          "value": "(\n  \"small\": (\n    \"value\": 20rem,\n    \"helper-class\": true\n  ),\n  \"medium\": (\n    \"value\": 40rem,\n    \"helper-class\": true\n  ),\n  \"large\": (\n    \"value\": 60rem,\n    \"helper-class\": true\n  )\n)",
          "scope": "default",
          "line": {
            "start": 94,
            "end": 107
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Map",
            "name": "[name]",
            "description": "The max-width definition"
          },
          {
            "type": "String|Number",
            "name": "[name].value",
            "description": "The base max-width value"
          },
          {
            "type": "Boolean",
            "name": "[name].helper-class",
            "description": "Output a helper class for this max-width"
          },
          {
            "type": "Map",
            "name": "[name].breakpoints",
            "description": "Responsive breakpoints (optional)"
          }
        ],
        "group": [
          "layout"
        ],
        "access": "public",
        "file": {
          "path": "_layout.scss",
          "name": "_layout.scss"
        },
        "usedBy": [
          {
            "description": "Change max-widths config\n",
            "context": {
              "type": "mixin",
              "name": "set-max-widths",
              "code": "\n  $max-widths: utils.map-merge($max-widths, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 113,
                "end": 115
              }
            }
          },
          {
            "description": "Change max-widths config\n",
            "context": {
              "type": "mixin",
              "name": "set-max-widths",
              "code": "\n  $max-widths: utils.map-merge($max-widths, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 113,
                "end": 115
              }
            }
          },
          {
            "description": "Get a max-width config by name\n",
            "context": {
              "type": "function",
              "name": "get-max-width",
              "code": "\n  @return utils.require-map-get($max-widths, $name, \"layout [max-widths]\");\n",
              "line": {
                "start": 121,
                "end": 123
              }
            }
          }
        ]
      },
      {
        "id": "mixin-set-max-widths",
        "title": "set-max-widths()",
        "groupName": "layout",
        "path": "/sass/core/layout/#mixin-set-max-widths",
        "description": "Change max-widths config\n",
        "commentRange": {
          "start": 109,
          "end": 111
        },
        "context": {
          "type": "mixin",
          "name": "set-max-widths",
          "code": "\n  $max-widths: utils.map-merge($max-widths, $changes, $merge-mode) !global;\n",
          "line": {
            "start": 113,
            "end": 115
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          },
          {
            "type": "String",
            "name": "merge-mode",
            "description": "Merge mode see utils.map-merge() [null|\"deep\"|\"overwrite\"]"
          }
        ],
        "group": [
          "layout"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "map-merge"
          },
          {
            "type": "variable",
            "name": "max-widths"
          },
          {
            "type": "variable",
            "name": "max-widths"
          }
        ],
        "file": {
          "path": "_layout.scss",
          "name": "_layout.scss"
        }
      },
      {
        "id": "function-get-max-width",
        "title": "get-max-width()",
        "groupName": "layout",
        "path": "/sass/core/layout/#function-get-max-width",
        "description": "Get a max-width config by name\n",
        "commentRange": {
          "start": 117,
          "end": 119
        },
        "context": {
          "type": "function",
          "name": "get-max-width",
          "code": "\n  @return utils.require-map-get($max-widths, $name, \"layout [max-widths]\");\n",
          "line": {
            "start": 121,
            "end": 123
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "description": "Name of max-width"
          }
        ],
        "return": {
          "type": "Map",
          "description": "The max-width configuration object"
        },
        "group": [
          "layout"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "require-map-get"
          },
          {
            "type": "variable",
            "name": "max-widths"
          }
        ],
        "file": {
          "path": "_layout.scss",
          "name": "_layout.scss"
        }
      },
      {
        "id": "variable-containers",
        "title": "$containers",
        "groupName": "layout",
        "path": "/sass/core/layout/#variable-containers",
        "description": "Containers Lookup (use set-containers)\n",
        "commentRange": {
          "start": 125,
          "end": 127
        },
        "context": {
          "type": "variable",
          "name": "containers",
          "value": "(\n  \"container\" : (\n    \"width\" : 100%,\n    \"max-width\" : get(\"max-width\"),\n    \"padding\" : (get(\"margin\") get(\"margin\")),\n    \"breakpoints\" : null,\n    \"responsive\" : false,\n    \"responsive-amount\" : 3vw\n  )\n)",
          "scope": "default",
          "line": {
            "start": 129,
            "end": 139
          }
        },
        "type": "Map",
        "ignore": [],
        "group": [
          "layout"
        ],
        "access": "public",
        "file": {
          "path": "_layout.scss",
          "name": "_layout.scss"
        },
        "usedBy": [
          {
            "description": "Set layout containers\n- See the $containers variable for example of container properties\n",
            "context": {
              "type": "mixin",
              "name": "set-containers",
              "code": "\n  $containers: utils.map-merge($containers, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 146,
                "end": 148
              }
            }
          },
          {
            "description": "Set layout containers\n- See the $containers variable for example of container properties\n",
            "context": {
              "type": "mixin",
              "name": "set-containers",
              "code": "\n  $containers: utils.map-merge($containers, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 146,
                "end": 148
              }
            }
          },
          {
            "description": "Get a container map\n",
            "context": {
              "type": "function",
              "name": "get-container",
              "code": "\n  $container: null;\n  @if ($required) {\n    $container: utils.require-map-get($containers, $name, \"Layout [get-container]\");\n  } @else {\n    $container: map.get($containers, $name);\n  }\n\n  @if ($container and $breakpoint) {\n    $breakpoints: map.get($container, \"breakpoints\");\n    @if ($required) {\n      @if ($breakpoints) {\n        @return utils.require-map-get($breakpoints, $breakpoint, \"[container breakpoint]\");\n      } @else {\n        @error 'ULU: No container breakpoints for container \"#{ $name }\", requested breakpoint #{ $breakpoint }';\n      }\n    } @else {\n      @if ($breakpoints) {\n        @return map.get($breakpoints, $breakpoint);\n      } @else {\n        @return null;\n      }\n    }\n  }\n\n  @return $container;\n",
              "line": {
                "start": 154,
                "end": 180
              }
            }
          },
          {
            "description": "Get a container map\n",
            "context": {
              "type": "function",
              "name": "get-container",
              "code": "\n  $container: null;\n  @if ($required) {\n    $container: utils.require-map-get($containers, $name, \"Layout [get-container]\");\n  } @else {\n    $container: map.get($containers, $name);\n  }\n\n  @if ($container and $breakpoint) {\n    $breakpoints: map.get($container, \"breakpoints\");\n    @if ($required) {\n      @if ($breakpoints) {\n        @return utils.require-map-get($breakpoints, $breakpoint, \"[container breakpoint]\");\n      } @else {\n        @error 'ULU: No container breakpoints for container \"#{ $name }\", requested breakpoint #{ $breakpoint }';\n      }\n    } @else {\n      @if ($breakpoints) {\n        @return map.get($breakpoints, $breakpoint);\n      } @else {\n        @return null;\n      }\n    }\n  }\n\n  @return $container;\n",
              "line": {
                "start": 154,
                "end": 180
              }
            }
          }
        ]
      },
      {
        "id": "mixin-set-containers",
        "title": "set-containers()",
        "groupName": "layout",
        "path": "/sass/core/layout/#mixin-set-containers",
        "description": "Set layout containers\n- See the $containers variable for example of container properties\n",
        "commentRange": {
          "start": 141,
          "end": 144
        },
        "context": {
          "type": "mixin",
          "name": "set-containers",
          "code": "\n  $containers: utils.map-merge($containers, $changes, $merge-mode) !global;\n",
          "line": {
            "start": 146,
            "end": 148
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          },
          {
            "type": "String",
            "name": "merge-mode",
            "description": "Merge mode see utils.map-merge() [null|\"deep\"|\"overwrite\"]"
          }
        ],
        "group": [
          "layout"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "map-merge"
          },
          {
            "type": "variable",
            "name": "containers"
          },
          {
            "type": "variable",
            "name": "containers"
          }
        ],
        "file": {
          "path": "_layout.scss",
          "name": "_layout.scss"
        }
      },
      {
        "id": "function-get-container",
        "title": "get-container()",
        "groupName": "layout",
        "path": "/sass/core/layout/#function-get-container",
        "description": "Get a container map\n",
        "commentRange": {
          "start": 150,
          "end": 152
        },
        "context": {
          "type": "function",
          "name": "get-container",
          "code": "\n  $container: null;\n  @if ($required) {\n    $container: utils.require-map-get($containers, $name, \"Layout [get-container]\");\n  } @else {\n    $container: map.get($containers, $name);\n  }\n\n  @if ($container and $breakpoint) {\n    $breakpoints: map.get($container, \"breakpoints\");\n    @if ($required) {\n      @if ($breakpoints) {\n        @return utils.require-map-get($breakpoints, $breakpoint, \"[container breakpoint]\");\n      } @else {\n        @error 'ULU: No container breakpoints for container \"#{ $name }\", requested breakpoint #{ $breakpoint }';\n      }\n    } @else {\n      @if ($breakpoints) {\n        @return map.get($breakpoints, $breakpoint);\n      } @else {\n        @return null;\n      }\n    }\n  }\n\n  @return $container;\n",
          "line": {
            "start": 154,
            "end": 180
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Container name"
          },
          {
            "type": "String",
            "name": "breakpoint",
            "description": "Return only the properties for a specific breakpoint for the container"
          }
        ],
        "group": [
          "layout"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "require-map-get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "require-map-get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "variable",
            "name": "containers"
          },
          {
            "type": "variable",
            "name": "containers"
          }
        ],
        "throw": [
          "ULU: No container breakpoints for container "
        ],
        "file": {
          "path": "_layout.scss",
          "name": "_layout.scss"
        },
        "usedBy": [
          {
            "description": "Returns padding to another property including breakpoints\nie. { top: $containers-padding; }\n",
            "context": {
              "type": "mixin",
              "name": "match-container-padding",
              "code": "\n  $container: get-container($name);\n  $breakpoints: map.get($container, \"breakpoints\");\n  #{ $property }: get-container-padding($name, $sides);\n  @if $breakpoints {\n    @each $breakpoint, $props in $breakpoints {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        #{ $property }: get-container-padding($name, $sides, $breakpoint);\n      }\n    }\n  }\n",
              "line": {
                "start": 188,
                "end": 200
              }
            }
          },
          {
            "description": "For a given property for every breakpoint in a given container\ncreates a css calc value that will match the containers side margin\nThe margin is created via empty space when the container hits the max-width\nIf passing include padding it would be the containers\nside (x) + the padding. This accounts for the containers max-width to give an absolute value\n",
            "context": {
              "type": "mixin",
              "name": "match-container-margin",
              "code": "\n  $container: get-container($name);\n  $breakpoints: map.get($container, \"breakpoints\");\n  $padding: 0;\n  @if ($include-padding) {\n    $padding: get-container-padding($name, true);\n  }\n  $max: map.get($container, \"max-width\");\n  #{ $property }: max(((100vw - $max) / 2) + $padding, $padding);\n  @if $breakpoints {\n    @each $breakpoint, $props in $breakpoints {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        $pad: 0;\n        @if ($include-padding) {\n          $pad: get-container-padding($name, true, $breakpoint);\n        }\n        #{ $property }: max(((100vw - $max) / 2) + $pad, $pad);\n      }\n    }\n  }\n",
              "line": {
                "start": 211,
                "end": 232
              }
            }
          },
          {
            "description": "Get a containers padding value\n",
            "context": {
              "type": "function",
              "name": "get-container-padding",
              "code": "\n  $container: get-container($name, $specific-breakpoint);\n  $padding: map.get($container, \"padding\");\n  $is-list: meta.type-of($padding) == \"list\"; // Else number\n  @if (not $is-list) {\n    @return $padding;\n  } @else {\n    @return list.nth($padding, utils.when($sides, 2, 1));\n  }\n",
              "line": {
                "start": 239,
                "end": 248
              }
            }
          },
          {
            "description": "Print the containers padding properties\n",
            "context": {
              "type": "mixin",
              "name": "container-padding",
              "code": "\n  $container: get-container($name, $specific-breakpoint);\n  $responsive: map.get($container, \"responsive\");\n  $x: get-container-padding-x($name, $specific-breakpoint);\n  $y: get-container-padding-y($name, $specific-breakpoint);\n  $resp-amount: utils.when(meta.type-of($responsive) == number, $responsive, utils.get(\"responsive-change\"));\n  \n  @if $responsive {\n    @if $sides {\n      @include utils.responsive-property(\"padding-left\", $x, $resp-amount);\n      @include utils.responsive-property(\"padding-right\", $x, $resp-amount);\n    }\n    @if $ends {\n      @include utils.responsive-property(\"padding-top\", $y, $resp-amount);\n      @include utils.responsive-property(\"padding-bottom\", $y, $resp-amount);\n    }\n  } @else {\n    @if $sides {\n      padding-left: $x;\n      padding-right: $x;\n    }\n    @if $ends {\n      padding-top: $y;\n      padding-bottom: $y;\n    }\n  }\n",
              "line": {
                "start": 255,
                "end": 281
              }
            }
          },
          {
            "description": "Print all container styles for a given container\n",
            "context": {
              "type": "mixin",
              "name": "container-styles",
              "code": "\n  $container: get-container($name,  $specific-breakpoint);\n  $breakpoints: map.get($container, \"breakpoints\");\n  \n  $width: map.get($container, \"width\");\n\n  @if ($width == null) {\n    $width: 100%;\n  }\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n  width: $width;\n  max-width: map.get($container, \"max-width\");\n  @include container-padding($name, $specific-breakpoint: $specific-breakpoint);\n\n  // Recursive print other breakpoints\n  @if $breakpoints and not $specific-breakpoint {\n    @each $breakpoint, $props in $breakpoints {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        @include container-styles($name, $breakpoint);\n      }\n    }\n  }\n",
              "line": {
                "start": 303,
                "end": 328
              }
            }
          }
        ]
      },
      {
        "id": "mixin-match-container-padding",
        "title": "match-container-padding()",
        "groupName": "layout",
        "path": "/sass/core/layout/#mixin-match-container-padding",
        "description": "Returns padding to another property including breakpoints\nie. { top: $containers-padding; }\n",
        "commentRange": {
          "start": 182,
          "end": 186
        },
        "context": {
          "type": "mixin",
          "name": "match-container-padding",
          "code": "\n  $container: get-container($name);\n  $breakpoints: map.get($container, \"breakpoints\");\n  #{ $property }: get-container-padding($name, $sides);\n  @if $breakpoints {\n    @each $breakpoint, $props in $breakpoints {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        #{ $property }: get-container-padding($name, $sides, $breakpoint);\n      }\n    }\n  }\n",
          "line": {
            "start": 188,
            "end": 200
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "property",
            "description": "Property name to apply the padding value to"
          },
          {
            "type": "String",
            "name": "name",
            "description": "The container name"
          },
          {
            "type": "Boolean",
            "name": "sides",
            "default": "true",
            "description": "Match the container padding for the sides (left/right), false will match the containers end padding (top/bottom)"
          }
        ],
        "group": [
          "layout"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get-container"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get-container-padding"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get-container-padding"
          }
        ],
        "file": {
          "path": "_layout.scss",
          "name": "_layout.scss"
        }
      },
      {
        "id": "mixin-match-container-margin",
        "title": "match-container-margin()",
        "groupName": "layout",
        "path": "/sass/core/layout/#mixin-match-container-margin",
        "description": "For a given property for every breakpoint in a given container\ncreates a css calc value that will match the containers side margin\nThe margin is created via empty space when the container hits the max-width\nIf passing include padding it would be the containers\nside (x) + the padding. This accounts for the containers max-width to give an absolute value\n",
        "commentRange": {
          "start": 202,
          "end": 209
        },
        "context": {
          "type": "mixin",
          "name": "match-container-margin",
          "code": "\n  $container: get-container($name);\n  $breakpoints: map.get($container, \"breakpoints\");\n  $padding: 0;\n  @if ($include-padding) {\n    $padding: get-container-padding($name, true);\n  }\n  $max: map.get($container, \"max-width\");\n  #{ $property }: max(((100vw - $max) / 2) + $padding, $padding);\n  @if $breakpoints {\n    @each $breakpoint, $props in $breakpoints {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        $pad: 0;\n        @if ($include-padding) {\n          $pad: get-container-padding($name, true, $breakpoint);\n        }\n        #{ $property }: max(((100vw - $max) / 2) + $pad, $pad);\n      }\n    }\n  }\n",
          "line": {
            "start": 211,
            "end": 232
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "property",
            "description": "Property name to apply the margin value to"
          },
          {
            "type": "String",
            "name": "name",
            "description": "The container name"
          },
          {
            "type": "Boolean",
            "name": "include-padding",
            "default": "true",
            "description": "Include the containers padding in the margin calculation"
          }
        ],
        "group": [
          "layout"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get-container"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get-container-padding"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get-container-padding"
          }
        ],
        "file": {
          "path": "_layout.scss",
          "name": "_layout.scss"
        }
      },
      {
        "id": "function-get-container-padding",
        "title": "get-container-padding()",
        "groupName": "layout",
        "path": "/sass/core/layout/#function-get-container-padding",
        "description": "Get a containers padding value\n",
        "commentRange": {
          "start": 234,
          "end": 237
        },
        "context": {
          "type": "function",
          "name": "get-container-padding",
          "code": "\n  $container: get-container($name, $specific-breakpoint);\n  $padding: map.get($container, \"padding\");\n  $is-list: meta.type-of($padding) == \"list\"; // Else number\n  @if (not $is-list) {\n    @return $padding;\n  } @else {\n    @return list.nth($padding, utils.when($sides, 2, 1));\n  }\n",
          "line": {
            "start": 239,
            "end": 248
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "description": "Container name"
          },
          {
            "type": "Boolean",
            "name": "sides",
            "default": "true",
            "description": "Get the left/right value, false return top/bottom"
          },
          {
            "type": "String",
            "name": "specific-breakpoint",
            "default": "false",
            "description": "Get the value for a specific breakpoint"
          }
        ],
        "group": [
          "layout"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get-container"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "when"
          }
        ],
        "file": {
          "path": "_layout.scss",
          "name": "_layout.scss"
        },
        "usedBy": [
          {
            "description": "Returns padding to another property including breakpoints\nie. { top: $containers-padding; }\n",
            "context": {
              "type": "mixin",
              "name": "match-container-padding",
              "code": "\n  $container: get-container($name);\n  $breakpoints: map.get($container, \"breakpoints\");\n  #{ $property }: get-container-padding($name, $sides);\n  @if $breakpoints {\n    @each $breakpoint, $props in $breakpoints {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        #{ $property }: get-container-padding($name, $sides, $breakpoint);\n      }\n    }\n  }\n",
              "line": {
                "start": 188,
                "end": 200
              }
            }
          },
          {
            "description": "Returns padding to another property including breakpoints\nie. { top: $containers-padding; }\n",
            "context": {
              "type": "mixin",
              "name": "match-container-padding",
              "code": "\n  $container: get-container($name);\n  $breakpoints: map.get($container, \"breakpoints\");\n  #{ $property }: get-container-padding($name, $sides);\n  @if $breakpoints {\n    @each $breakpoint, $props in $breakpoints {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        #{ $property }: get-container-padding($name, $sides, $breakpoint);\n      }\n    }\n  }\n",
              "line": {
                "start": 188,
                "end": 200
              }
            }
          },
          {
            "description": "For a given property for every breakpoint in a given container\ncreates a css calc value that will match the containers side margin\nThe margin is created via empty space when the container hits the max-width\nIf passing include padding it would be the containers\nside (x) + the padding. This accounts for the containers max-width to give an absolute value\n",
            "context": {
              "type": "mixin",
              "name": "match-container-margin",
              "code": "\n  $container: get-container($name);\n  $breakpoints: map.get($container, \"breakpoints\");\n  $padding: 0;\n  @if ($include-padding) {\n    $padding: get-container-padding($name, true);\n  }\n  $max: map.get($container, \"max-width\");\n  #{ $property }: max(((100vw - $max) / 2) + $padding, $padding);\n  @if $breakpoints {\n    @each $breakpoint, $props in $breakpoints {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        $pad: 0;\n        @if ($include-padding) {\n          $pad: get-container-padding($name, true, $breakpoint);\n        }\n        #{ $property }: max(((100vw - $max) / 2) + $pad, $pad);\n      }\n    }\n  }\n",
              "line": {
                "start": 211,
                "end": 232
              }
            }
          },
          {
            "description": "For a given property for every breakpoint in a given container\ncreates a css calc value that will match the containers side margin\nThe margin is created via empty space when the container hits the max-width\nIf passing include padding it would be the containers\nside (x) + the padding. This accounts for the containers max-width to give an absolute value\n",
            "context": {
              "type": "mixin",
              "name": "match-container-margin",
              "code": "\n  $container: get-container($name);\n  $breakpoints: map.get($container, \"breakpoints\");\n  $padding: 0;\n  @if ($include-padding) {\n    $padding: get-container-padding($name, true);\n  }\n  $max: map.get($container, \"max-width\");\n  #{ $property }: max(((100vw - $max) / 2) + $padding, $padding);\n  @if $breakpoints {\n    @each $breakpoint, $props in $breakpoints {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        $pad: 0;\n        @if ($include-padding) {\n          $pad: get-container-padding($name, true, $breakpoint);\n        }\n        #{ $property }: max(((100vw - $max) / 2) + $pad, $pad);\n      }\n    }\n  }\n",
              "line": {
                "start": 211,
                "end": 232
              }
            }
          },
          {
            "description": "Get containers padding X value (side)\n",
            "context": {
              "type": "function",
              "name": "get-container-padding-x",
              "code": "\n  @return get-container-padding($name, true, $specific-breakpoint);\n",
              "line": {
                "start": 287,
                "end": 289
              }
            }
          },
          {
            "description": "Get containers padding Y value (ends)\n",
            "context": {
              "type": "function",
              "name": "get-container-padding-y",
              "code": "\n  @return get-container-padding($name, false, $specific-breakpoint);\n",
              "line": {
                "start": 295,
                "end": 297
              }
            }
          }
        ]
      },
      {
        "id": "mixin-container-padding",
        "title": "container-padding()",
        "groupName": "layout",
        "path": "/sass/core/layout/#mixin-container-padding",
        "description": "Print the containers padding properties\n",
        "commentRange": {
          "start": 250,
          "end": 253
        },
        "context": {
          "type": "mixin",
          "name": "container-padding",
          "code": "\n  $container: get-container($name, $specific-breakpoint);\n  $responsive: map.get($container, \"responsive\");\n  $x: get-container-padding-x($name, $specific-breakpoint);\n  $y: get-container-padding-y($name, $specific-breakpoint);\n  $resp-amount: utils.when(meta.type-of($responsive) == number, $responsive, utils.get(\"responsive-change\"));\n  \n  @if $responsive {\n    @if $sides {\n      @include utils.responsive-property(\"padding-left\", $x, $resp-amount);\n      @include utils.responsive-property(\"padding-right\", $x, $resp-amount);\n    }\n    @if $ends {\n      @include utils.responsive-property(\"padding-top\", $y, $resp-amount);\n      @include utils.responsive-property(\"padding-bottom\", $y, $resp-amount);\n    }\n  } @else {\n    @if $sides {\n      padding-left: $x;\n      padding-right: $x;\n    }\n    @if $ends {\n      padding-top: $y;\n      padding-bottom: $y;\n    }\n  }\n",
          "line": {
            "start": 255,
            "end": 281
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "description": "The container name"
          },
          {
            "type": "Boolean",
            "name": "sides",
            "default": "true",
            "description": "Sides by default, false is ends"
          },
          {
            "type": "Boolean",
            "name": "specific-breakpoint",
            "default": "false",
            "description": "Only for a specific breakpoint"
          }
        ],
        "group": [
          "layout"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get-container"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get-container-padding-x"
          },
          {
            "type": "function",
            "name": "get-container-padding-y"
          },
          {
            "type": "function",
            "name": "when"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_layout.scss",
          "name": "_layout.scss"
        },
        "usedBy": [
          {
            "description": "Print all container styles for a given container\n",
            "context": {
              "type": "mixin",
              "name": "container-styles",
              "code": "\n  $container: get-container($name,  $specific-breakpoint);\n  $breakpoints: map.get($container, \"breakpoints\");\n  \n  $width: map.get($container, \"width\");\n\n  @if ($width == null) {\n    $width: 100%;\n  }\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n  width: $width;\n  max-width: map.get($container, \"max-width\");\n  @include container-padding($name, $specific-breakpoint: $specific-breakpoint);\n\n  // Recursive print other breakpoints\n  @if $breakpoints and not $specific-breakpoint {\n    @each $breakpoint, $props in $breakpoints {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        @include container-styles($name, $breakpoint);\n      }\n    }\n  }\n",
              "line": {
                "start": 303,
                "end": 328
              }
            }
          }
        ]
      },
      {
        "id": "function-get-container-padding-x",
        "title": "get-container-padding-x()",
        "groupName": "layout",
        "path": "/sass/core/layout/#function-get-container-padding-x",
        "description": "Get containers padding X value (side)\n",
        "commentRange": {
          "start": 283,
          "end": 285
        },
        "context": {
          "type": "function",
          "name": "get-container-padding-x",
          "code": "\n  @return get-container-padding($name, true, $specific-breakpoint);\n",
          "line": {
            "start": 287,
            "end": 289
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "description": "Container name"
          },
          {
            "type": "Boolean",
            "name": "specific-breakpoint",
            "description": "For a specific breakpoint"
          }
        ],
        "group": [
          "layout"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get-container-padding"
          }
        ],
        "file": {
          "path": "_layout.scss",
          "name": "_layout.scss"
        },
        "usedBy": [
          {
            "description": "Print the containers padding properties\n",
            "context": {
              "type": "mixin",
              "name": "container-padding",
              "code": "\n  $container: get-container($name, $specific-breakpoint);\n  $responsive: map.get($container, \"responsive\");\n  $x: get-container-padding-x($name, $specific-breakpoint);\n  $y: get-container-padding-y($name, $specific-breakpoint);\n  $resp-amount: utils.when(meta.type-of($responsive) == number, $responsive, utils.get(\"responsive-change\"));\n  \n  @if $responsive {\n    @if $sides {\n      @include utils.responsive-property(\"padding-left\", $x, $resp-amount);\n      @include utils.responsive-property(\"padding-right\", $x, $resp-amount);\n    }\n    @if $ends {\n      @include utils.responsive-property(\"padding-top\", $y, $resp-amount);\n      @include utils.responsive-property(\"padding-bottom\", $y, $resp-amount);\n    }\n  } @else {\n    @if $sides {\n      padding-left: $x;\n      padding-right: $x;\n    }\n    @if $ends {\n      padding-top: $y;\n      padding-bottom: $y;\n    }\n  }\n",
              "line": {
                "start": 255,
                "end": 281
              }
            }
          }
        ]
      },
      {
        "id": "function-get-container-padding-y",
        "title": "get-container-padding-y()",
        "groupName": "layout",
        "path": "/sass/core/layout/#function-get-container-padding-y",
        "description": "Get containers padding Y value (ends)\n",
        "commentRange": {
          "start": 291,
          "end": 293
        },
        "context": {
          "type": "function",
          "name": "get-container-padding-y",
          "code": "\n  @return get-container-padding($name, false, $specific-breakpoint);\n",
          "line": {
            "start": 295,
            "end": 297
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "description": "Container name"
          },
          {
            "type": "Boolean",
            "name": "specific-breakpoint",
            "description": "For a specific breakpoint"
          }
        ],
        "group": [
          "layout"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get-container-padding"
          }
        ],
        "file": {
          "path": "_layout.scss",
          "name": "_layout.scss"
        },
        "usedBy": [
          {
            "description": "Print the containers padding properties\n",
            "context": {
              "type": "mixin",
              "name": "container-padding",
              "code": "\n  $container: get-container($name, $specific-breakpoint);\n  $responsive: map.get($container, \"responsive\");\n  $x: get-container-padding-x($name, $specific-breakpoint);\n  $y: get-container-padding-y($name, $specific-breakpoint);\n  $resp-amount: utils.when(meta.type-of($responsive) == number, $responsive, utils.get(\"responsive-change\"));\n  \n  @if $responsive {\n    @if $sides {\n      @include utils.responsive-property(\"padding-left\", $x, $resp-amount);\n      @include utils.responsive-property(\"padding-right\", $x, $resp-amount);\n    }\n    @if $ends {\n      @include utils.responsive-property(\"padding-top\", $y, $resp-amount);\n      @include utils.responsive-property(\"padding-bottom\", $y, $resp-amount);\n    }\n  } @else {\n    @if $sides {\n      padding-left: $x;\n      padding-right: $x;\n    }\n    @if $ends {\n      padding-top: $y;\n      padding-bottom: $y;\n    }\n  }\n",
              "line": {
                "start": 255,
                "end": 281
              }
            }
          }
        ]
      },
      {
        "id": "mixin-container-styles",
        "title": "container-styles()",
        "groupName": "layout",
        "path": "/sass/core/layout/#mixin-container-styles",
        "description": "Print all container styles for a given container\n",
        "commentRange": {
          "start": 299,
          "end": 301
        },
        "context": {
          "type": "mixin",
          "name": "container-styles",
          "code": "\n  $container: get-container($name,  $specific-breakpoint);\n  $breakpoints: map.get($container, \"breakpoints\");\n  \n  $width: map.get($container, \"width\");\n\n  @if ($width == null) {\n    $width: 100%;\n  }\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n  width: $width;\n  max-width: map.get($container, \"max-width\");\n  @include container-padding($name, $specific-breakpoint: $specific-breakpoint);\n\n  // Recursive print other breakpoints\n  @if $breakpoints and not $specific-breakpoint {\n    @each $breakpoint, $props in $breakpoints {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        @include container-styles($name, $breakpoint);\n      }\n    }\n  }\n",
          "line": {
            "start": 303,
            "end": 328
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "description": "Container name"
          },
          {
            "type": "Boolean",
            "name": "specific-breakpoint",
            "description": "Only for a specific breakpoint (else includes both the base styles and breakpoint styles)"
          }
        ],
        "group": [
          "layout"
        ],
        "access": "public",
        "require": [
          {
            "type": "mixin",
            "name": "container-padding"
          },
          {
            "type": "function",
            "name": "get-container"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_layout.scss",
          "name": "_layout.scss"
        }
      },
      {
        "id": "mixin-clearfix",
        "title": "clearfix()",
        "groupName": "layout",
        "path": "/sass/core/layout/#mixin-clearfix",
        "description": "Prints clearfix styles\n",
        "commentRange": {
          "start": 330,
          "end": 330
        },
        "context": {
          "type": "mixin",
          "name": "clearfix",
          "code": "\n  &::before,\n  &::after {\n    content: \"\";\n    display: table;\n    flex-basis: 0; // Flexbox, clear fix for pseudo elements in Safari\n    order: 1;\n  }\n  &::after { \n    clear: both; \n  }\n",
          "line": {
            "start": 332,
            "end": 343
          }
        },
        "group": [
          "layout"
        ],
        "access": "public",
        "file": {
          "path": "_layout.scss",
          "name": "_layout.scss"
        }
      },
      {
        "id": "mixin-remove-scrollbar",
        "title": "remove-scrollbar()",
        "groupName": "layout",
        "path": "/sass/core/layout/#mixin-remove-scrollbar",
        "description": "Removes scrollbar with CSS\n",
        "commentRange": {
          "start": 345,
          "end": 345
        },
        "context": {
          "type": "mixin",
          "name": "remove-scrollbar",
          "code": "\n  -ms-overflow-style: none; /* for Internet Explorer, Edge */\n  scrollbar-width: none; /* for Firefox */\n  &::-webkit-scrollbar {\n    display: none; /* for Chrome, Safari, and Opera */\n  }\n",
          "line": {
            "start": 346,
            "end": 352
          }
        },
        "group": [
          "layout"
        ],
        "access": "public",
        "file": {
          "path": "_layout.scss",
          "name": "_layout.scss"
        }
      },
      {
        "id": "mixin-absolute-fill",
        "title": "absolute-fill()",
        "groupName": "layout",
        "path": "/sass/core/layout/#mixin-absolute-fill",
        "description": "Layout utility for absolute (zero on all sides)\n- Probably helpful for gzip if we use this when these exact styles are needed\n  so they are identical for compression\n",
        "commentRange": {
          "start": 354,
          "end": 357
        },
        "context": {
          "type": "mixin",
          "name": "absolute-fill",
          "code": "\n  position: absolute;\n  top: 0;\n  left: 0;\n  @if not $set-size {\n    right: 0;\n    bottom: 0;\n  } @else {\n    width: 100%;\n    height: 100%;\n  }\n",
          "line": {
            "start": 358,
            "end": 369
          }
        },
        "parameter": [
          {
            "type": "Boolean",
            "name": "set-size",
            "default": "false",
            "description": "Whether or not to use sizes to fill the space (height/width 100%) versus setting bottom and right to 0)"
          }
        ],
        "group": [
          "layout"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_layout.scss",
          "name": "_layout.scss"
        }
      }
    ],
    "typography": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "typography",
        "path": "/sass/core/typography/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 15,
          "end": 39
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"letter-spacing-uppercase\": 0.04em,\n  \"margin-bottom\":            1em,\n  \"margin-top\":               null,\n  \"headline-margin-top\":      1.5em,\n  \"responsive-change\":        0.05vw,\n  \"scale-steps\":              5,\n  \"size-ratio\":               1.8,\n  \"size-line-height-ratio\":   0.97,\n  \"font-family\":              (ui-sans-serif, \"Open Sans\", Helvetica, Arial, sans-serif),\n  \"font-family-monospace\":    (Menlo, Consolas, Monaco, monospace),\n  \"font-family-sans\":         (ui-sans-serif, \"Open Sans\", Helvetica, Arial, sans-serif),\n  \"font-family-serif\":        (Cambria, Georgia, serif),\n  \"font-size\":                16px,\n  \"font-weight\":              inherit,\n  \"font-weight-bold\":         bold,\n  \"font-weight-light\":        300,\n  \"font-weight-normal\":       normal,\n  \"font-weight-semibold\":     600,\n  \"line-height\":              1.5,\n  \"line-height-dense\":        1.3,\n  \"line-height-densest\":      1.1,\n  \"line-height-spaced\":       1.75,\n  \"max-width\":                60em,\n  \"max-width-large\":          75em,\n  \"max-width-small\":          45em,\n  \"space-size\":               0.38em\n)",
          "scope": "default",
          "line": {
            "start": 41,
            "end": 68
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Dimension",
            "name": "letter-spacing-uppercase",
            "default": "0.04em"
          },
          {
            "type": "Number",
            "name": "margin-bottom",
            "default": "1em",
            "description": "Default margin for typography (like paragraphs)"
          },
          {
            "type": "Number",
            "name": "margin-top",
            "default": "null",
            "description": "Default margin for typography (like paragraphs)"
          },
          {
            "type": "Number",
            "name": "headline-margin-top",
            "default": "1.5em",
            "description": "Default margin for typography headlines in $sizes"
          },
          {
            "type": "Number",
            "name": "responsive-change",
            "default": "0.05vw",
            "description": "Amount to scale typography by browser's width (use viewport units)"
          },
          {
            "type": "Number",
            "name": "scale-steps",
            "default": "5"
          },
          {
            "type": "Number",
            "name": "size-ratio",
            "default": "1.8",
            "description": "Font size scale when using preset sizes, ratio mixin)"
          },
          {
            "type": "Number",
            "name": "size-line-height-ratio",
            "default": "0.97",
            "description": "Default line height scaling (when using preset sizes, ratio mixin). Can shrink line-height as size increase if desirable"
          },
          {
            "type": "Number",
            "name": "font-family",
            "default": "(ui-sans-serif, \"Open Sans\", Helvetica, Arial, sans-serif)",
            "description": "Default font family"
          },
          {
            "type": "Number",
            "name": "font-family-monospace",
            "default": "(Menlo, Consolas, Monaco, monospace)",
            "description": "Base font-family for monospace"
          },
          {
            "type": "CssValue",
            "name": "font-family-sans",
            "default": "(ui-sans-serif, \"Open Sans\", Helvetica, Arial, sans-serif)"
          },
          {
            "type": "CssValue",
            "name": "font-family-serif",
            "default": "(Cambria, Georgia, serif"
          },
          {
            "type": "Number",
            "name": "font-size",
            "default": "16px",
            "description": "Default font size (use pixels, converted, is used for rem base)"
          },
          {
            "type": "CssValue",
            "name": "font-weight",
            "default": "inherit"
          },
          {
            "type": "CssValue",
            "name": "font-weight-bold",
            "default": "bold"
          },
          {
            "type": "CssValue",
            "name": "font-weight-light",
            "default": "300"
          },
          {
            "type": "CssValue",
            "name": "font-weight-normal",
            "default": "normal"
          },
          {
            "type": "CssValue",
            "name": "font-weight-semibold",
            "default": "600"
          },
          {
            "type": "Number",
            "name": "line-height",
            "default": "1.5",
            "description": "Default line height"
          },
          {
            "type": "Number",
            "name": "line-height-dense",
            "default": "1.3",
            "description": "Default dense line height"
          },
          {
            "type": "Number",
            "name": "line-height-densest",
            "default": "1.1"
          },
          {
            "type": "Number",
            "name": "line-height-spaced",
            "default": "1.75"
          },
          {
            "type": "CssUnit",
            "name": "space-size",
            "default": "0.38em",
            "description": "The size of a space for the site's typography (used when creating faux spaces, like for .flow-inline utility)"
          }
        ],
        "group": [
          "typography"
        ],
        "access": "public",
        "file": {
          "path": "_typography.scss",
          "name": "_typography.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "typography",
        "path": "/sass/core/typography/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 70,
          "end": 72
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 74,
            "end": 76
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes\n  @include ulu.typography-set(( \"font-size\" : 14px ));"
          }
        ],
        "group": [
          "typography"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_typography.scss",
          "name": "_typography.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "typography",
        "path": "/sass/core/typography/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 78,
          "end": 80
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, 'typography [config]');\n",
          "line": {
            "start": 82,
            "end": 84
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes\n  @include ulu.typography-get(( \"font-size\" : 14px ));"
          }
        ],
        "group": [
          "typography"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "require-map-get"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_typography.scss",
          "name": "_typography.scss"
        }
      },
      {
        "id": "function-scale",
        "title": "scale()",
        "groupName": "typography",
        "path": "/sass/core/typography/#function-scale",
        "description": "Get scale of the base font-size\n",
        "commentRange": {
          "start": 86,
          "end": 88
        },
        "context": {
          "type": "function",
          "name": "scale",
          "code": "\n  @return utils.ratio-scale-size(get(\"font-size\"), get(\"size-ratio\"), get(\"scale-steps\"), $step);\n",
          "line": {
            "start": 90,
            "end": 92
          }
        },
        "parameter": [
          {
            "type": "Number",
            "name": "step",
            "description": "Current size in the scale you want to calculate"
          }
        ],
        "return": {
          "type": "Number",
          "description": "Scaled value"
        },
        "group": [
          "typography"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "ratio-scale-size"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_typography.scss",
          "name": "_typography.scss"
        },
        "usedBy": [
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          }
        ]
      },
      {
        "id": "function-scale-line-height",
        "title": "scale-line-height()",
        "groupName": "typography",
        "path": "/sass/core/typography/#function-scale-line-height",
        "description": "Get scale of the line-height\n",
        "commentRange": {
          "start": 94,
          "end": 97
        },
        "context": {
          "type": "function",
          "name": "scale-line-height",
          "code": "\n  @return utils.ratio-scale-size(get(\"line-height\"), get(\"size-line-height-ratio\"), get(\"scale-steps\"), $step);\n",
          "line": {
            "start": 99,
            "end": 101
          }
        },
        "parameter": [
          {
            "type": "Number",
            "name": "step",
            "description": "Current size in the scale you want to calculate"
          }
        ],
        "return": {
          "type": "Number",
          "description": "Scaled value"
        },
        "todo": [
          "Setup breakpoints"
        ],
        "group": [
          "typography"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "ratio-scale-size"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_typography.scss",
          "name": "_typography.scss"
        },
        "usedBy": [
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          }
        ]
      },
      {
        "id": "function-rem",
        "title": "rem()",
        "groupName": "typography",
        "path": "/sass/core/typography/#function-rem",
        "description": "Convert pixel value to rem value based on typography $font-size\n",
        "commentRange": {
          "start": 103,
          "end": 105
        },
        "context": {
          "type": "function",
          "name": "rem",
          "code": "\n  @if math.unit($pixels) == \"px\"  {\n    @return math.div($pixels, get(\"font-size\")) * 1rem;\n  } @else {\n    @return $pixels + 1rem;\n  }\n",
          "line": {
            "start": 107,
            "end": 113
          }
        },
        "parameter": [
          {
            "type": "Number",
            "name": "pixels",
            "description": "Pixel value to convert from"
          }
        ],
        "return": {
          "type": "Number",
          "description": "Rem value"
        },
        "group": [
          "typography"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_typography.scss",
          "name": "_typography.scss"
        },
        "usedBy": [
          {
            "description": "Forces conversion to unitless line-height\n",
            "context": {
              "type": "function",
              "name": "unitless-line-height",
              "code": "\n  // Font size is rems, line-height is unknown\n  @if (math.is-unitless($line-height)) {\n    @return $line-height;\n  }\n  $unit: math.unit($line-height);\n  @if ($unit == \"em\") {\n    @return utils.strip-unit($line-height);\n  } @else if ($unit == \"pixels\" or $unit == \"rem\") {\n    $calc: math.div(rem($line-height), rem($font-size));\n    @return utils.strip-unit($calc);\n  } @else {\n    @error \"ULU: Unable to convert to unitless line-height for: #{ $line-height }\";\n  }\n",
              "line": {
                "start": 240,
                "end": 254
              }
            }
          },
          {
            "description": "Forces conversion to unitless line-height\n",
            "context": {
              "type": "function",
              "name": "unitless-line-height",
              "code": "\n  // Font size is rems, line-height is unknown\n  @if (math.is-unitless($line-height)) {\n    @return $line-height;\n  }\n  $unit: math.unit($line-height);\n  @if ($unit == \"em\") {\n    @return utils.strip-unit($line-height);\n  } @else if ($unit == \"pixels\" or $unit == \"rem\") {\n    $calc: math.div(rem($line-height), rem($font-size));\n    @return utils.strip-unit($calc);\n  } @else {\n    @error \"ULU: Unable to convert to unitless line-height for: #{ $line-height }\";\n  }\n",
              "line": {
                "start": 240,
                "end": 254
              }
            }
          },
          {
            "description": "Print a value from the size and convert it (to appropriate unit for framework)\n",
            "context": {
              "type": "function",
              "name": "get-size-converted-value",
              "code": "\n  // Font size is calculated differently\n  $value: map.get($size, $prop);\n  $font-size: map.get($size, \"font-size\");\n  $type: meta.type-of($value);\n  \n  @if ($value == false or $value == null) {\n    @return null;\n  // Numbers and true (default) need to be converted\n  } @else if ($value == true or $type == number) {\n    // Get default value\n    @if ($value == true)  {\n      $value: get($prop);\n    }\n    // Force line-height to be unitless\n    @if ($prop == \"line-height\") {\n      @return unitless-line-height($value, $font-size);\n    }\n    // Convert to REM\n    @if (math.unit($value) == \"px\") {\n      $value: rem($value);\n    }\n    @return $value;\n  } @else {\n    @return $value;\n  }\n",
              "line": {
                "start": 260,
                "end": 286
              }
            }
          }
        ]
      },
      {
        "id": "function-em",
        "title": "em()",
        "groupName": "typography",
        "path": "/sass/core/typography/#function-em",
        "description": "Changes pixels to em\n",
        "commentRange": {
          "start": 115,
          "end": 118
        },
        "context": {
          "type": "function",
          "name": "em",
          "code": "\n  @if (math.unit($value) == \"px\") {\n    @return math.div($base, $value) * 1em;\n  } @else  {\n    @return $value;\n  }\n",
          "line": {
            "start": 120,
            "end": 126
          }
        },
        "parameter": [
          {
            "type": "Number",
            "name": "value",
            "description": "Pixel value to convert from"
          },
          {
            "type": "Number",
            "name": "base",
            "description": "Conversion base (defaults to font-size)"
          }
        ],
        "return": {
          "type": "Number",
          "description": "Rem value"
        },
        "group": [
          "typography"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_typography.scss",
          "name": "_typography.scss"
        }
      },
      {
        "id": "mixin-word-break",
        "title": "word-break()",
        "groupName": "typography",
        "path": "/sass/core/typography/#mixin-word-break",
        "description": "Output CSS Break word strategy\n",
        "commentRange": {
          "start": 128,
          "end": 129
        },
        "context": {
          "type": "mixin",
          "name": "word-break",
          "code": "\n  word-break: utils.when($force, break-all, normal);\n  word-break: break-word;\n  hyphens: auto;\n",
          "line": {
            "start": 131,
            "end": 135
          }
        },
        "parameter": [
          {
            "type": "Boolean",
            "name": "force",
            "description": "Force words to break (will have unusual breaks)"
          }
        ],
        "group": [
          "typography"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "when"
          }
        ],
        "file": {
          "path": "_typography.scss",
          "name": "_typography.scss"
        }
      },
      {
        "id": "function-new-size",
        "title": "new-size()",
        "groupName": "typography",
        "path": "/sass/core/typography/#function-new-size",
        "description": "Creates a size map \n- This is just an accelerator for creating a size map\n- This is opinionated about how sizes are setup, headlines get (margins, bold, headline color) and are base classes while non-headlines are added as helper classes and do not get (margins, bold, color)\n- You can pass your own size maps using set-sizes()\n",
        "commentRange": {
          "start": 137,
          "end": 143
        },
        "context": {
          "type": "function",
          "name": "new-size",
          "code": "\n  @return (\n    \"font-size\": $font-size,\n    \"font-weight\" : utils.when($is-headline, get(\"font-weight-bold\"), null), \n    \"line-height\": $line-height,\n    \"margin-bottom\" : utils.when($is-headline, get(\"margin-bottom\"), null),\n    \"margin-top\" : utils.when($is-headline, get(\"headline-margin-top\"), null),\n    \"responsive\" : true,\n    \"helper-class\" : utils.when($is-headline, false, true),\n    \"helper-class-prefixed\" : true,\n    \"base-class\" : utils.when($is-headline, true, false),\n    \"base-class-prefixed\" : false,\n    \"color\" : utils.when($is-headline, \"headline\", null)\n  );\n",
          "line": {
            "start": 145,
            "end": 159
          }
        },
        "parameter": [
          {
            "type": "Number",
            "name": "font-size",
            "description": "Font size"
          },
          {
            "type": "Number",
            "name": "line-height",
            "description": "Line height"
          },
          {
            "type": "Boolean",
            "name": "is-headline",
            "description": "Is a headline"
          }
        ],
        "group": [
          "typography"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "when"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "when"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "when"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "when"
          },
          {
            "type": "function",
            "name": "when"
          },
          {
            "type": "function",
            "name": "when"
          }
        ],
        "file": {
          "path": "_typography.scss",
          "name": "_typography.scss"
        },
        "usedBy": [
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          },
          {
            "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
            "context": {
              "type": "function",
              "name": "get-default-sizes",
              "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
              "line": {
                "start": 166,
                "end": 182
              }
            }
          }
        ]
      },
      {
        "id": "function-get-default-sizes",
        "title": "get-default-sizes()",
        "groupName": "typography",
        "path": "/sass/core/typography/#function-get-default-sizes",
        "description": "Function that returns default sizes\n- Used to set the sizes initially and \n- You can use this if you've reconfigured typography settings and want to update the default sizes with the new settings\n",
        "commentRange": {
          "start": 161,
          "end": 164
        },
        "context": {
          "type": "function",
          "name": "get-default-sizes",
          "code": "\n  @return (\n    \"small-x\" :       new-size(scale(-2)),\n    \"small\" :         new-size(scale(-1)),\n    \"base\" :          new-size(scale(0)),\n    \"large\" :         new-size(scale(1),   scale-line-height(1)),\n    \"large-x\" :       new-size(scale(2),   scale-line-height(2)),\n    \"large-xx\" :      new-size(scale(3),   scale-line-height(3)),\n    \"large-xxx\" :     new-size(scale(4),   scale-line-height(4)),\n    \"h6\" :            new-size(scale(1),   scale-line-height(1),   true),\n    \"h5\" :            new-size(scale(2),   scale-line-height(2),   true),\n    \"h4\" :            new-size(scale(3),   scale-line-height(3),   true),\n    \"h3\" :            new-size(scale(4),   scale-line-height(4),   true),\n    \"h2\" :            new-size(scale(5),   scale-line-height(5),   true),\n    \"h1\" :            new-size(scale(6),   scale-line-height(6),   true),\n  );\n",
          "line": {
            "start": 166,
            "end": 182
          }
        },
        "return": {
          "type": "Map",
          "description": "The default typography sizes"
        },
        "group": [
          "typography"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "new-size"
          },
          {
            "type": "function",
            "name": "scale"
          },
          {
            "type": "function",
            "name": "new-size"
          },
          {
            "type": "function",
            "name": "scale"
          },
          {
            "type": "function",
            "name": "new-size"
          },
          {
            "type": "function",
            "name": "scale"
          },
          {
            "type": "function",
            "name": "new-size"
          },
          {
            "type": "function",
            "name": "scale"
          },
          {
            "type": "function",
            "name": "scale-line-height"
          },
          {
            "type": "function",
            "name": "new-size"
          },
          {
            "type": "function",
            "name": "scale"
          },
          {
            "type": "function",
            "name": "scale-line-height"
          },
          {
            "type": "function",
            "name": "new-size"
          },
          {
            "type": "function",
            "name": "scale"
          },
          {
            "type": "function",
            "name": "scale-line-height"
          },
          {
            "type": "function",
            "name": "new-size"
          },
          {
            "type": "function",
            "name": "scale"
          },
          {
            "type": "function",
            "name": "scale-line-height"
          },
          {
            "type": "function",
            "name": "new-size"
          },
          {
            "type": "function",
            "name": "scale"
          },
          {
            "type": "function",
            "name": "scale-line-height"
          },
          {
            "type": "function",
            "name": "new-size"
          },
          {
            "type": "function",
            "name": "scale"
          },
          {
            "type": "function",
            "name": "scale-line-height"
          },
          {
            "type": "function",
            "name": "new-size"
          },
          {
            "type": "function",
            "name": "scale"
          },
          {
            "type": "function",
            "name": "scale-line-height"
          },
          {
            "type": "function",
            "name": "new-size"
          },
          {
            "type": "function",
            "name": "scale"
          },
          {
            "type": "function",
            "name": "scale-line-height"
          },
          {
            "type": "function",
            "name": "new-size"
          },
          {
            "type": "function",
            "name": "scale"
          },
          {
            "type": "function",
            "name": "scale-line-height"
          },
          {
            "type": "function",
            "name": "new-size"
          },
          {
            "type": "function",
            "name": "scale"
          },
          {
            "type": "function",
            "name": "scale-line-height"
          }
        ],
        "file": {
          "path": "_typography.scss",
          "name": "_typography.scss"
        }
      },
      {
        "id": "variable-sizes",
        "title": "$sizes",
        "groupName": "typography",
        "path": "/sass/core/typography/#variable-sizes",
        "description": "Default size presets\n",
        "commentRange": {
          "start": 184,
          "end": 193
        },
        "context": {
          "type": "variable",
          "name": "sizes",
          "value": "get-default-sizes()",
          "scope": "default",
          "line": {
            "start": 195,
            "end": 195
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Number",
            "name": "$size.name",
            "description": "Name of size"
          },
          {
            "type": "Number",
            "name": "$size.name.font-size",
            "description": "Font size in rems or pixels"
          },
          {
            "type": "Number",
            "name": "$size.name.line-height",
            "description": "Line height (unitless)"
          },
          {
            "type": "Number",
            "name": "$size.name.responsive",
            "description": "Apply responsive sizes"
          },
          {
            "type": "Number",
            "name": "$size.name.breakpoints",
            "description": "Map of breakpoints where each key is breakpoint with map of changes (ie. font-size, etc)"
          },
          {
            "type": "Number",
            "name": "$size.name.breakpoints.breakpoint.direction",
            "description": "Direction the breakpoint should be applied to (ie. min/max)"
          },
          {
            "type": "Boolean",
            "name": "$size.name.base-class",
            "description": "This style should be included in the base (top can be overridden)"
          },
          {
            "type": "Boolean",
            "name": "$size.name.helper-class",
            "description": "This style should be included in the helpers (overrides)"
          }
        ],
        "group": [
          "typography"
        ],
        "access": "public",
        "file": {
          "path": "_typography.scss",
          "name": "_typography.scss"
        }
      },
      {
        "id": "mixin-set-sizes",
        "title": "set-sizes()",
        "groupName": "typography",
        "path": "/sass/core/typography/#mixin-set-sizes",
        "description": "Configure the typography sizes\n",
        "commentRange": {
          "start": 197,
          "end": 214
        },
        "context": {
          "type": "mixin",
          "name": "set-sizes",
          "code": "\n  $sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;\n",
          "line": {
            "start": 216,
            "end": 218
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "A map to merge into the color palette"
          },
          {
            "type": "Map",
            "name": "merge-mode",
            "default": "null",
            "description": "Merge strategy see, utils.map-merge options"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.typography-set-sizes((\n  \"h1\" : (\n    \"color\" : \"accent\",\n    \"font-size\": 50px,\n    \"margin-top\" : null,\n    \"margin-bottom\" : 0.5em\n  ),\n  \"h2\" : (\n    \"font-size\": 38px,\n    \"color\" : blue,\n    \"margin-top\" : 2.5em,\n    \"margin-bottom\" : 1em,\n  ),\n), \"deep\");",
            "description": "Adjusting the h1 and h2 sizes while keeping pre-existing sizes by using deep merge"
          }
        ],
        "group": [
          "typography"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "map-merge"
          },
          {
            "type": "variable",
            "name": "sizes"
          },
          {
            "type": "variable",
            "name": "sizes"
          }
        ],
        "file": {
          "path": "_typography.scss",
          "name": "_typography.scss"
        }
      },
      {
        "id": "function-get-size",
        "title": "get-size()",
        "groupName": "typography",
        "path": "/sass/core/typography/#function-get-size",
        "description": "Get a specific size's settings map\n",
        "commentRange": {
          "start": 220,
          "end": 222
        },
        "context": {
          "type": "function",
          "name": "get-size",
          "code": "\n  @return utils.require-map-get($sizes, $name, 'typography [size]');\n",
          "line": {
            "start": 224,
            "end": 226
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "description": "Name of size"
          }
        ],
        "return": {
          "type": "Map"
        },
        "group": [
          "typography"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "require-map-get"
          },
          {
            "type": "variable",
            "name": "sizes"
          }
        ],
        "file": {
          "path": "_typography.scss",
          "name": "_typography.scss"
        }
      },
      {
        "id": "function-has-size",
        "title": "has-size()",
        "groupName": "typography",
        "path": "/sass/core/typography/#function-has-size",
        "description": "Check if a typography size exists\n",
        "commentRange": {
          "start": 228,
          "end": 230
        },
        "context": {
          "type": "function",
          "name": "has-size",
          "code": "\n  @return utils.map-has($sizes, $name);\n",
          "line": {
            "start": 232,
            "end": 234
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "description": "Name of size"
          }
        ],
        "return": {
          "type": "Boolean"
        },
        "group": [
          "typography"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "map-has"
          },
          {
            "type": "variable",
            "name": "sizes"
          }
        ],
        "file": {
          "path": "_typography.scss",
          "name": "_typography.scss"
        },
        "usedBy": [
          {
            "description": "Output an optional typography size\n- If $name is not a string (ie. null, etc) no size will be output\n- If the size is not defined no size will be output\n",
            "context": {
              "type": "mixin",
              "name": "optional-size",
              "code": "\n  @if (meta.type-of($name) == \"string\" and has-size($name)) {\n    @include size($name, $changes, $only-font-size);\n  }\n",
              "line": {
                "start": 317,
                "end": 321
              }
            }
          }
        ]
      },
      {
        "id": "function-unitless-line-height",
        "title": "unitless-line-height()",
        "groupName": "typography",
        "path": "/sass/core/typography/#function-unitless-line-height",
        "description": "Forces conversion to unitless line-height\n",
        "commentRange": {
          "start": 236,
          "end": 238
        },
        "context": {
          "type": "function",
          "name": "unitless-line-height",
          "code": "\n  // Font size is rems, line-height is unknown\n  @if (math.is-unitless($line-height)) {\n    @return $line-height;\n  }\n  $unit: math.unit($line-height);\n  @if ($unit == \"em\") {\n    @return utils.strip-unit($line-height);\n  } @else if ($unit == \"pixels\" or $unit == \"rem\") {\n    $calc: math.div(rem($line-height), rem($font-size));\n    @return utils.strip-unit($calc);\n  } @else {\n    @error \"ULU: Unable to convert to unitless line-height for: #{ $line-height }\";\n  }\n",
          "line": {
            "start": 240,
            "end": 254
          }
        },
        "parameter": [
          {
            "type": "Number",
            "name": "line-height",
            "description": "Line height size in px, em, or rem"
          },
          {
            "type": "Number",
            "name": "font-size",
            "description": "Font size in px, em, or rem"
          }
        ],
        "group": [
          "typography"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "strip-unit"
          },
          {
            "type": "function",
            "name": "rem"
          },
          {
            "type": "function",
            "name": "rem"
          },
          {
            "type": "function",
            "name": "strip-unit"
          }
        ],
        "throw": [
          "ULU: Unable to convert to unitless line-height for: #{ $line-height }"
        ],
        "file": {
          "path": "_typography.scss",
          "name": "_typography.scss"
        },
        "usedBy": [
          {
            "description": "Print a value from the size and convert it (to appropriate unit for framework)\n",
            "context": {
              "type": "function",
              "name": "get-size-converted-value",
              "code": "\n  // Font size is calculated differently\n  $value: map.get($size, $prop);\n  $font-size: map.get($size, \"font-size\");\n  $type: meta.type-of($value);\n  \n  @if ($value == false or $value == null) {\n    @return null;\n  // Numbers and true (default) need to be converted\n  } @else if ($value == true or $type == number) {\n    // Get default value\n    @if ($value == true)  {\n      $value: get($prop);\n    }\n    // Force line-height to be unitless\n    @if ($prop == \"line-height\") {\n      @return unitless-line-height($value, $font-size);\n    }\n    // Convert to REM\n    @if (math.unit($value) == \"px\") {\n      $value: rem($value);\n    }\n    @return $value;\n  } @else {\n    @return $value;\n  }\n",
              "line": {
                "start": 260,
                "end": 286
              }
            }
          }
        ]
      },
      {
        "id": "function-get-size-converted-value",
        "title": "get-size-converted-value()",
        "groupName": "typography",
        "path": "/sass/core/typography/#function-get-size-converted-value",
        "description": "Print a value from the size and convert it (to appropriate unit for framework)\n",
        "commentRange": {
          "start": 256,
          "end": 258
        },
        "context": {
          "type": "function",
          "name": "get-size-converted-value",
          "code": "\n  // Font size is calculated differently\n  $value: map.get($size, $prop);\n  $font-size: map.get($size, \"font-size\");\n  $type: meta.type-of($value);\n  \n  @if ($value == false or $value == null) {\n    @return null;\n  // Numbers and true (default) need to be converted\n  } @else if ($value == true or $type == number) {\n    // Get default value\n    @if ($value == true)  {\n      $value: get($prop);\n    }\n    // Force line-height to be unitless\n    @if ($prop == \"line-height\") {\n      @return unitless-line-height($value, $font-size);\n    }\n    // Convert to REM\n    @if (math.unit($value) == \"px\") {\n      $value: rem($value);\n    }\n    @return $value;\n  } @else {\n    @return $value;\n  }\n",
          "line": {
            "start": 260,
            "end": 286
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "size",
            "description": "Size's map"
          },
          {
            "type": "String",
            "name": "props",
            "description": "The property to get"
          }
        ],
        "group": [
          "typography"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "unitless-line-height"
          },
          {
            "type": "function",
            "name": "rem"
          }
        ],
        "file": {
          "path": "_typography.scss",
          "name": "_typography.scss"
        },
        "usedBy": [
          {
            "description": "Print a typography size (font-size, line-height)\n",
            "context": {
              "type": "mixin",
              "name": "size",
              "code": "\n  $size: $name;\n  // Allow custom maps\n  @if (meta.type-of($name) == \"string\") {\n    $size: get-size($name);\n  }\n  @if ($changes) {\n    $size: map.merge($size, $changes);\n  }\n  $font-size: get-size-converted-value($size, \"font-size\");\n  $breakpoints: map.get($size, \"breakpoints\");\n  $responsive: map.get($size, \"responsive\");\n  $color: map.get($size, \"color\");\n\n  font-size: $font-size;\n  @if ($responsive) {\n    @if (meta.type-of($responsive) == \"number\") {\n      @include font-size-responsive($font-size, $responsive);\n    } @else {\n      @include font-size-responsive($font-size);\n    }\n  }\n  @if (not $only-font-size) {\n    font-weight: get-size-value($size, \"font-weight\");\n    font-family: get-size-value($size, \"font-family\");\n    font-variation-settings: get-size-value($size, \"font-variation-settings\");\n    line-height: get-size-converted-value($size, \"line-height\");\n    margin-top: get-size-converted-value($size, \"margin-top\");\n    margin-bottom: get-size-converted-value($size, \"margin-bottom\");\n    color: utils.when($color, color.get($color), null);\n  }\n\n  // If they have breakpoints, process them\n  @if $breakpoints {\n    @each $name, $breakpoint in $breakpoints {\n      $direction: map.get($breakpoint, \"direction\");\n      @include breakpoint.from($name, $direction) {\n        @include size($breakpoint, null, $only-font-size);\n      }\n    }\n  }\n",
              "line": {
                "start": 328,
                "end": 369
              }
            }
          },
          {
            "description": "Print a typography size (font-size, line-height)\n",
            "context": {
              "type": "mixin",
              "name": "size",
              "code": "\n  $size: $name;\n  // Allow custom maps\n  @if (meta.type-of($name) == \"string\") {\n    $size: get-size($name);\n  }\n  @if ($changes) {\n    $size: map.merge($size, $changes);\n  }\n  $font-size: get-size-converted-value($size, \"font-size\");\n  $breakpoints: map.get($size, \"breakpoints\");\n  $responsive: map.get($size, \"responsive\");\n  $color: map.get($size, \"color\");\n\n  font-size: $font-size;\n  @if ($responsive) {\n    @if (meta.type-of($responsive) == \"number\") {\n      @include font-size-responsive($font-size, $responsive);\n    } @else {\n      @include font-size-responsive($font-size);\n    }\n  }\n  @if (not $only-font-size) {\n    font-weight: get-size-value($size, \"font-weight\");\n    font-family: get-size-value($size, \"font-family\");\n    font-variation-settings: get-size-value($size, \"font-variation-settings\");\n    line-height: get-size-converted-value($size, \"line-height\");\n    margin-top: get-size-converted-value($size, \"margin-top\");\n    margin-bottom: get-size-converted-value($size, \"margin-bottom\");\n    color: utils.when($color, color.get($color), null);\n  }\n\n  // If they have breakpoints, process them\n  @if $breakpoints {\n    @each $name, $breakpoint in $breakpoints {\n      $direction: map.get($breakpoint, \"direction\");\n      @include breakpoint.from($name, $direction) {\n        @include size($breakpoint, null, $only-font-size);\n      }\n    }\n  }\n",
              "line": {
                "start": 328,
                "end": 369
              }
            }
          },
          {
            "description": "Print a typography size (font-size, line-height)\n",
            "context": {
              "type": "mixin",
              "name": "size",
              "code": "\n  $size: $name;\n  // Allow custom maps\n  @if (meta.type-of($name) == \"string\") {\n    $size: get-size($name);\n  }\n  @if ($changes) {\n    $size: map.merge($size, $changes);\n  }\n  $font-size: get-size-converted-value($size, \"font-size\");\n  $breakpoints: map.get($size, \"breakpoints\");\n  $responsive: map.get($size, \"responsive\");\n  $color: map.get($size, \"color\");\n\n  font-size: $font-size;\n  @if ($responsive) {\n    @if (meta.type-of($responsive) == \"number\") {\n      @include font-size-responsive($font-size, $responsive);\n    } @else {\n      @include font-size-responsive($font-size);\n    }\n  }\n  @if (not $only-font-size) {\n    font-weight: get-size-value($size, \"font-weight\");\n    font-family: get-size-value($size, \"font-family\");\n    font-variation-settings: get-size-value($size, \"font-variation-settings\");\n    line-height: get-size-converted-value($size, \"line-height\");\n    margin-top: get-size-converted-value($size, \"margin-top\");\n    margin-bottom: get-size-converted-value($size, \"margin-bottom\");\n    color: utils.when($color, color.get($color), null);\n  }\n\n  // If they have breakpoints, process them\n  @if $breakpoints {\n    @each $name, $breakpoint in $breakpoints {\n      $direction: map.get($breakpoint, \"direction\");\n      @include breakpoint.from($name, $direction) {\n        @include size($breakpoint, null, $only-font-size);\n      }\n    }\n  }\n",
              "line": {
                "start": 328,
                "end": 369
              }
            }
          },
          {
            "description": "Print a typography size (font-size, line-height)\n",
            "context": {
              "type": "mixin",
              "name": "size",
              "code": "\n  $size: $name;\n  // Allow custom maps\n  @if (meta.type-of($name) == \"string\") {\n    $size: get-size($name);\n  }\n  @if ($changes) {\n    $size: map.merge($size, $changes);\n  }\n  $font-size: get-size-converted-value($size, \"font-size\");\n  $breakpoints: map.get($size, \"breakpoints\");\n  $responsive: map.get($size, \"responsive\");\n  $color: map.get($size, \"color\");\n\n  font-size: $font-size;\n  @if ($responsive) {\n    @if (meta.type-of($responsive) == \"number\") {\n      @include font-size-responsive($font-size, $responsive);\n    } @else {\n      @include font-size-responsive($font-size);\n    }\n  }\n  @if (not $only-font-size) {\n    font-weight: get-size-value($size, \"font-weight\");\n    font-family: get-size-value($size, \"font-family\");\n    font-variation-settings: get-size-value($size, \"font-variation-settings\");\n    line-height: get-size-converted-value($size, \"line-height\");\n    margin-top: get-size-converted-value($size, \"margin-top\");\n    margin-bottom: get-size-converted-value($size, \"margin-bottom\");\n    color: utils.when($color, color.get($color), null);\n  }\n\n  // If they have breakpoints, process them\n  @if $breakpoints {\n    @each $name, $breakpoint in $breakpoints {\n      $direction: map.get($breakpoint, \"direction\");\n      @include breakpoint.from($name, $direction) {\n        @include size($breakpoint, null, $only-font-size);\n      }\n    }\n  }\n",
              "line": {
                "start": 328,
                "end": 369
              }
            }
          }
        ]
      },
      {
        "id": "function-get-size-value",
        "title": "get-size-value()",
        "groupName": "typography",
        "path": "/sass/core/typography/#function-get-size-value",
        "description": "Get a sizes property value that doesn't need conversion \n- Reason: Will map to default if user set's size prop to true\n",
        "commentRange": {
          "start": 288,
          "end": 291
        },
        "context": {
          "type": "function",
          "name": "get-size-value",
          "code": "\n  $value: map.get($size, $prop);\n  // Default\n  @if ($value == true) {\n    $value: get($prop);\n  }\n  @return $value;\n",
          "line": {
            "start": 293,
            "end": 300
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "size",
            "description": "Size's map"
          },
          {
            "type": "String",
            "name": "props",
            "description": "The property to get"
          }
        ],
        "group": [
          "typography"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_typography.scss",
          "name": "_typography.scss"
        }
      },
      {
        "id": "mixin-font-size-responsive",
        "title": "font-size-responsive()",
        "groupName": "typography",
        "path": "/sass/core/typography/#mixin-font-size-responsive",
        "description": "Print's the responsive type formula\n",
        "commentRange": {
          "start": 302,
          "end": 304
        },
        "context": {
          "type": "mixin",
          "name": "font-size-responsive",
          "code": "\n  font-size: calc(#{ $font-size } + #{ $amount });\n",
          "line": {
            "start": 306,
            "end": 308
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "font-size",
            "description": "Name to retrieve from sizes map or a unique size map that follows the API"
          },
          {
            "type": "Map",
            "name": "changes",
            "description": "Modifications to be merged into size before using"
          }
        ],
        "group": [
          "typography"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_typography.scss",
          "name": "_typography.scss"
        },
        "usedBy": [
          {
            "description": "Print a typography size (font-size, line-height)\n",
            "context": {
              "type": "mixin",
              "name": "size",
              "code": "\n  $size: $name;\n  // Allow custom maps\n  @if (meta.type-of($name) == \"string\") {\n    $size: get-size($name);\n  }\n  @if ($changes) {\n    $size: map.merge($size, $changes);\n  }\n  $font-size: get-size-converted-value($size, \"font-size\");\n  $breakpoints: map.get($size, \"breakpoints\");\n  $responsive: map.get($size, \"responsive\");\n  $color: map.get($size, \"color\");\n\n  font-size: $font-size;\n  @if ($responsive) {\n    @if (meta.type-of($responsive) == \"number\") {\n      @include font-size-responsive($font-size, $responsive);\n    } @else {\n      @include font-size-responsive($font-size);\n    }\n  }\n  @if (not $only-font-size) {\n    font-weight: get-size-value($size, \"font-weight\");\n    font-family: get-size-value($size, \"font-family\");\n    font-variation-settings: get-size-value($size, \"font-variation-settings\");\n    line-height: get-size-converted-value($size, \"line-height\");\n    margin-top: get-size-converted-value($size, \"margin-top\");\n    margin-bottom: get-size-converted-value($size, \"margin-bottom\");\n    color: utils.when($color, color.get($color), null);\n  }\n\n  // If they have breakpoints, process them\n  @if $breakpoints {\n    @each $name, $breakpoint in $breakpoints {\n      $direction: map.get($breakpoint, \"direction\");\n      @include breakpoint.from($name, $direction) {\n        @include size($breakpoint, null, $only-font-size);\n      }\n    }\n  }\n",
              "line": {
                "start": 328,
                "end": 369
              }
            }
          },
          {
            "description": "Print a typography size (font-size, line-height)\n",
            "context": {
              "type": "mixin",
              "name": "size",
              "code": "\n  $size: $name;\n  // Allow custom maps\n  @if (meta.type-of($name) == \"string\") {\n    $size: get-size($name);\n  }\n  @if ($changes) {\n    $size: map.merge($size, $changes);\n  }\n  $font-size: get-size-converted-value($size, \"font-size\");\n  $breakpoints: map.get($size, \"breakpoints\");\n  $responsive: map.get($size, \"responsive\");\n  $color: map.get($size, \"color\");\n\n  font-size: $font-size;\n  @if ($responsive) {\n    @if (meta.type-of($responsive) == \"number\") {\n      @include font-size-responsive($font-size, $responsive);\n    } @else {\n      @include font-size-responsive($font-size);\n    }\n  }\n  @if (not $only-font-size) {\n    font-weight: get-size-value($size, \"font-weight\");\n    font-family: get-size-value($size, \"font-family\");\n    font-variation-settings: get-size-value($size, \"font-variation-settings\");\n    line-height: get-size-converted-value($size, \"line-height\");\n    margin-top: get-size-converted-value($size, \"margin-top\");\n    margin-bottom: get-size-converted-value($size, \"margin-bottom\");\n    color: utils.when($color, color.get($color), null);\n  }\n\n  // If they have breakpoints, process them\n  @if $breakpoints {\n    @each $name, $breakpoint in $breakpoints {\n      $direction: map.get($breakpoint, \"direction\");\n      @include breakpoint.from($name, $direction) {\n        @include size($breakpoint, null, $only-font-size);\n      }\n    }\n  }\n",
              "line": {
                "start": 328,
                "end": 369
              }
            }
          }
        ]
      },
      {
        "id": "mixin-optional-size",
        "title": "optional-size()",
        "groupName": "typography",
        "path": "/sass/core/typography/#mixin-optional-size",
        "description": "Output an optional typography size\n- If $name is not a string (ie. null, etc) no size will be output\n- If the size is not defined no size will be output\n",
        "commentRange": {
          "start": 311,
          "end": 315
        },
        "context": {
          "type": "mixin",
          "name": "optional-size",
          "code": "\n  @if (meta.type-of($name) == \"string\" and has-size($name)) {\n    @include size($name, $changes, $only-font-size);\n  }\n",
          "line": {
            "start": 317,
            "end": 321
          }
        },
        "parameter": [
          {
            "type": "*",
            "name": "name",
            "description": "Size name"
          },
          {
            "type": "*",
            "name": "args...",
            "description": "All args are passed as-is to size() mixin"
          }
        ],
        "group": [
          "typography"
        ],
        "access": "public",
        "require": [
          {
            "type": "mixin",
            "name": "size"
          },
          {
            "type": "function",
            "name": "has-size"
          }
        ],
        "file": {
          "path": "_typography.scss",
          "name": "_typography.scss"
        }
      },
      {
        "id": "mixin-size",
        "title": "size()",
        "groupName": "typography",
        "path": "/sass/core/typography/#mixin-size",
        "description": "Print a typography size (font-size, line-height)\n",
        "commentRange": {
          "start": 323,
          "end": 326
        },
        "context": {
          "type": "mixin",
          "name": "size",
          "code": "\n  $size: $name;\n  // Allow custom maps\n  @if (meta.type-of($name) == \"string\") {\n    $size: get-size($name);\n  }\n  @if ($changes) {\n    $size: map.merge($size, $changes);\n  }\n  $font-size: get-size-converted-value($size, \"font-size\");\n  $breakpoints: map.get($size, \"breakpoints\");\n  $responsive: map.get($size, \"responsive\");\n  $color: map.get($size, \"color\");\n\n  font-size: $font-size;\n  @if ($responsive) {\n    @if (meta.type-of($responsive) == \"number\") {\n      @include font-size-responsive($font-size, $responsive);\n    } @else {\n      @include font-size-responsive($font-size);\n    }\n  }\n  @if (not $only-font-size) {\n    font-weight: get-size-value($size, \"font-weight\");\n    font-family: get-size-value($size, \"font-family\");\n    font-variation-settings: get-size-value($size, \"font-variation-settings\");\n    line-height: get-size-converted-value($size, \"line-height\");\n    margin-top: get-size-converted-value($size, \"margin-top\");\n    margin-bottom: get-size-converted-value($size, \"margin-bottom\");\n    color: utils.when($color, color.get($color), null);\n  }\n\n  // If they have breakpoints, process them\n  @if $breakpoints {\n    @each $name, $breakpoint in $breakpoints {\n      $direction: map.get($breakpoint, \"direction\");\n      @include breakpoint.from($name, $direction) {\n        @include size($breakpoint, null, $only-font-size);\n      }\n    }\n  }\n",
          "line": {
            "start": 328,
            "end": 369
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "nameOrMap",
            "description": "Name to retrieve from sizes map or a unique size map that follows the API"
          },
          {
            "type": "Map",
            "name": "changes",
            "description": "Modifications to be merged into size before output"
          },
          {
            "type": "Boolean",
            "name": "only-font-size",
            "description": "Only output the font size"
          }
        ],
        "group": [
          "typography"
        ],
        "access": "public",
        "require": [
          {
            "type": "mixin",
            "name": "font-size-responsive"
          },
          {
            "type": "mixin",
            "name": "font-size-responsive"
          },
          {
            "type": "function",
            "name": "get-size"
          },
          {
            "type": "function",
            "name": "get-size-converted-value"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get-size-value"
          },
          {
            "type": "function",
            "name": "get-size-value"
          },
          {
            "type": "function",
            "name": "get-size-value"
          },
          {
            "type": "function",
            "name": "get-size-converted-value"
          },
          {
            "type": "function",
            "name": "get-size-converted-value"
          },
          {
            "type": "function",
            "name": "get-size-converted-value"
          },
          {
            "type": "function",
            "name": "when"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_typography.scss",
          "name": "_typography.scss"
        }
      }
    ],
    "units": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "units",
        "path": "/sass/core/units/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 10,
          "end": 17
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"default\":  1rem,\n  \"large\":    1rem * 2,\n  \"large-x\":  1rem * 3,\n  \"large-xx\": 1rem * 4,\n  \"small\":    1rem * 0.75,\n  \"small-x\":  1rem * 0.5,\n)",
          "scope": "default",
          "line": {
            "start": 19,
            "end": 26
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Number",
            "name": "default",
            "default": "1rem",
            "description": "Base unit of measure"
          },
          {
            "type": "Number",
            "name": "large",
            "default": "1rem * 2"
          },
          {
            "type": "Number",
            "name": "large-x",
            "default": "1rem * 3"
          },
          {
            "type": "Number",
            "name": "large-xx",
            "default": "1rem * 4"
          },
          {
            "type": "Number",
            "name": "small",
            "default": "1rem * 0.75"
          },
          {
            "type": "Number",
            "name": "small-x",
            "default": "1rem * 0.5"
          }
        ],
        "group": [
          "units"
        ],
        "access": "public",
        "file": {
          "path": "_units.scss",
          "name": "_units.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "units",
        "path": "/sass/core/units/#mixin-set",
        "description": "Update the units config\n",
        "commentRange": {
          "start": 28,
          "end": 34
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: utils.map-merge($config, $changes, $merge-mode) !global;\n",
          "line": {
            "start": 36,
            "end": 38
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "A map to merge into the color palette"
          },
          {
            "type": "String",
            "name": "merge-mode",
            "description": "Merge mode see utils.map-merge() [null|\"deep\"|\"overwrite\"]"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.units-set((\n  \"default\" : 1.5em\n));",
            "description": "Setting the error and type color"
          }
        ],
        "group": [
          "units"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "map-merge"
          },
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_units.scss",
          "name": "_units.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "units",
        "path": "/sass/core/units/#function-get",
        "description": "Get a unit by name (preset) or number (multiplier of base)\n",
        "commentRange": {
          "start": 40,
          "end": 42
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @if (meta.type-of($value) == string) {\n    @return utils.require-map-get($config, $value, 'unit [config]');\n  }\n  @return get(\"default\") * $value;\n",
          "line": {
            "start": 44,
            "end": 49
          }
        },
        "parameter": [
          {
            "type": "Number|String",
            "name": "value",
            "description": "if a number is passed it is used as a multiplier of the base, if a string is passed it is used to lookup a value from unit presets @see $config"
          }
        ],
        "return": {
          "type": "Number"
        },
        "group": [
          "units"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "require-map-get"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_units.scss",
          "name": "_units.scss"
        }
      }
    ],
    "utilities": [
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "utilities",
        "path": "/sass/helpers/utilities/#mixin-styles",
        "description": "Print utilities helper styles\n- Includes classes like (.crop-margins, .no-scroll-y, .image-full-width, etc)\n",
        "commentRange": {
          "start": 12,
          "end": 15
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n\n  $prefix-no-scroll: selector.class(\"no-scroll\");\n  $prefix-image: selector.class(\"image\");\n  $prefix-margin: selector.class(\"margin\");\n  $prefix-no-margin: selector.class(\"no-margin\");\n  $prefix-crop-margins: selector.class(\"crop-margins\");\n  $prefix-no-padding: selector.class(\"no-padding\");\n  $prefix-align-self: selector.class(\"align-self\");\n  $prefix-align-items: selector.class(\"align-items\");\n  $prefix-justify-content: selector.class(\"justify-content\");\n\n  @include utils.file-header('helpers', 'utilities');\n  \n  // Consider removing\n  #{ $prefix-no-scroll }-y { \n    overflow-y: hidden; \n  }\n  #{ $prefix-no-scroll }-x { \n    overflow-x: hidden; \n  }\n  #{ selector.class(\"full-height\") } {\n    height: 100%;\n  }\n  #{ selector.class(\"full-width\") } {\n    width: 100%;\n  }\n  #{ selector.class(\"no-min-width\") } {\n    min-width: 0;\n  }\n  #{ selector.class(\"flex-basis-full\") } {\n    flex-basis: 100%;\n  }\n  #{ selector.class(\"flex-grow\") } {\n    flex-grow: 1;\n  }\n  #{ selector.class(\"flex-wrap\") } {\n    flex-wrap: wrap;\n  }\n  #{ selector.class(\"flex-shrink\") } {\n    flex-shrink: 1;\n  }\n  #{ selector.class(\"full-min-height\") } {\n    min-height: 100%;\n  }\n  #{ $prefix-image }-fill {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n  }\n  #{ $prefix-image }-full-width img,\n  #{ $prefix-image }-full-width {\n    width: 100%;\n    height: auto;\n  }\n  #{ $prefix-margin }-auto,\n  #{ selector.class(\"center\") } {\n    margin-left: auto;\n    margin-right: auto;\n  }\n  #{ $prefix-margin }-left-auto {\n    margin-left: auto;\n  }\n  #{ $prefix-margin }-right-auto {\n    margin-right: auto;\n  }\n  #{ $prefix-no-margin } {\n    margin: 0;\n  }\n  #{ $prefix-no-margin }-top {\n    margin-top: 0;\n  }\n  #{ $prefix-no-margin }-bottom {\n    margin-bottom: 0;\n  }\n  #{ $prefix-no-margin }-left {\n    margin-left: 0;\n  }\n  #{ $prefix-no-margin }-right {\n    margin-right: 0;\n  }\n  #{ $prefix-crop-margins } {\n    &:not( #{ $prefix-crop-margins }--last) >:first-child {\n      margin-top: 0;\n    }\n    &:not( #{ $prefix-crop-margins }--first) >:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix-no-padding } {\n    padding: 0;\n  }\n  #{ $prefix-no-padding }-top {\n    padding-top: 0;\n  }\n  #{ $prefix-no-padding }-bottom {\n    padding-bottom: 0;\n  }\n  #{ $prefix-no-padding }-left {\n    padding-left: 0;\n  }\n  #{ $prefix-no-padding }-right {\n    padding-right: 0;\n  }\n  #{ $prefix-align-self }-start {\n    align-self: start;\n  }\n  #{ $prefix-align-self }-center {\n    align-self: center;\n  }\n  #{ $prefix-align-self }-end {\n    align-self: end;\n  }\n  #{ $prefix-align-self }-baseline {\n    align-self: baseline;\n  }\n  #{ $prefix-align-items }-start {\n    align-items: flex-start;\n  }\n  #{ $prefix-align-items }-center {\n    align-items: center;\n  }\n  #{ $prefix-align-items }-end {\n    align-items: flex-end;\n  }\n  #{ $prefix-justify-content }-start {\n    justify-content: flex-start;\n  }\n  #{ $prefix-justify-content }-center {\n    justify-content: center;\n  }\n  #{ $prefix-justify-content }-end {\n    justify-content: flex-end;\n  }\n  #{ $prefix-justify-content }-space-between {\n    justify-content: space-between;\n  }\n  #{ selector.class(\"overflow-hidden\") } {\n    overflow: hidden;\n  }\n  #{ selector.class(\"flow-inline\") } {\n    &:not(:first-child) {\n      margin-left: typography.get(\"space-size\");\n    }\n    &:not(:last-child) {\n      margin-right: typography.get(\"space-size\");\n    }\n  }\n",
          "line": {
            "start": 17,
            "end": 165
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.helper-utilities-styles();"
          }
        ],
        "group": [
          "utilities"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_utilities.scss",
          "name": "_utilities.scss"
        }
      }
    ],
    "elements": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "elements",
        "path": "/sass/base/elements/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 16,
          "end": 21
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"details-animation\" : (UluFadeInDown 350ms ease-in-out),\n  \"link\" : true,\n  \"link-hover\" : true,\n  \"link-visited\" : false,\n)",
          "scope": "default",
          "line": {
            "start": 23,
            "end": 28
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "CssValue",
            "name": "details-animation",
            "default": "(UluFadeInDown 350ms ease-in-out)",
            "description": "Animation for the details element when toggled."
          },
          {
            "type": "Boolean",
            "name": "link",
            "default": "true",
            "description": "Enables link styling."
          },
          {
            "type": "Boolean",
            "name": "link-hover",
            "default": "true",
            "description": "Enables link hover and focus styling."
          },
          {
            "type": "Boolean",
            "name": "link-visited",
            "default": "true",
            "description": "Enables visited link styling."
          }
        ],
        "group": [
          "elements"
        ],
        "access": "public",
        "file": {
          "path": "_elements.scss",
          "name": "_elements.scss"
        },
        "usedBy": [
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 34,
                "end": 36
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 34,
                "end": 36
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"element [config]\");\n",
              "line": {
                "start": 43,
                "end": 45
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 28,
                "end": 30
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 28,
                "end": 30
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"base layout [config]\");\n",
              "line": {
                "start": 37,
                "end": 39
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 33,
                "end": 35
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 33,
                "end": 35
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"base root [config]\");\n",
              "line": {
                "start": 40,
                "end": 42
              }
            }
          },
          {
            "description": "Output custom properties for ulu\n",
            "context": {
              "type": "mixin",
              "name": "custom-properties",
              "code": "\n  $prefix: \"ulu\";\n  // Just looping through $config for now (since all are root properties)\n  // This may need to be adjusted if config is used for something else\n  @include cssvar.declare-all($config, $prefix);\n  @include cssvar.declare(\"scrollbar-width\", 0px, $prefix); // Set by JS\n\n  @each $name, $props in layout.$widths {\n    @include cssvar.declare(\"width-#{ $name }\", $props, $prefix);\n  }\n\n  @each $name, $props in layout.$max-widths {\n    @include cssvar.declare(\"max-width-#{ $name }\", $props, $prefix);\n  }\n",
              "line": {
                "start": 100,
                "end": 114
              }
            }
          },
          {
            "description": "Output custom properties for ulu\n",
            "context": {
              "type": "mixin",
              "name": "custom-properties",
              "code": "\n  $prefix: \"ulu\";\n  // Just looping through $config for now (since all are root properties)\n  // This may need to be adjusted if config is used for something else\n  @include cssvar.declare-all($config, $prefix);\n  @include cssvar.declare(\"scrollbar-width\", 0px, $prefix); // Set by JS\n\n  @each $name, $props in layout.$widths {\n    @include cssvar.declare(\"width-#{ $name }\", $props, $prefix);\n  }\n\n  @each $name, $props in layout.$max-widths {\n    @include cssvar.declare(\"max-width-#{ $name }\", $props, $prefix);\n  }\n",
              "line": {
                "start": 100,
                "end": 114
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 35,
                "end": 37
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 35,
                "end": 37
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"base themes [config]\");\n",
              "line": {
                "start": 42,
                "end": 44
              }
            }
          }
        ]
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "elements",
        "path": "/sass/base/elements/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 30,
          "end": 33
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 34,
            "end": 36
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.base-elements-set(( \"property\" : value ));",
            "description": "General example"
          }
        ],
        "group": [
          "elements"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_elements.scss",
          "name": "_elements.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "elements",
        "path": "/sass/base/elements/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 38,
          "end": 41
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"element [config]\");\n",
          "line": {
            "start": 43,
            "end": 45
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.base-elements-get(\"property\");",
            "description": "General example"
          }
        ],
        "group": [
          "elements"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_elements.scss",
          "name": "_elements.scss"
        },
        "usedBy": [
          {
            "description": "Output the elements base styles\n",
            "context": {
              "type": "mixin",
              "name": "base-elements-styles",
              "code": "\n\n  @include utils.file-header('base', 'elements');\n  *,\n  ::before,\n  ::after {\n    box-sizing: border-box;\n  }\n  html {\n    -webkit-text-size-adjust: 100%;\n    @media (prefers-reduced-motion: no-preference) {\n      scroll-behavior: smooth;\n    }\n  }\n  body {\n    @include styles-body();\n  }\n  h1, \n  h2, \n  h3, \n  h4, \n  h5, \n  h6, \n  ul, \n  ol, \n  li,\n  pre, \n  code,\n  p { \n    margin: 0;\n    padding: 0;\n    font-size: inherit;\n    font-family: inherit;\n    border-width: 0;\n    border-style: solid;\n    font-weight: inherit;\n  }\n  p {\n    $margin-top: typography.get(\"margin-top\");\n    margin-top: utils.when($margin-top, $margin-top, 0);\n    margin-bottom: typography.get(\"margin-bottom\"); \n  }\n  sub, sup {\n    font-size: 75%;\n    line-height: 0;\n    position: relative;\n    vertical-align: baseline;\n  }\n  small { \n    @include typography.size(\"small\", (\"line-height\" : typography.get(\"line-height-dense\"))); \n  }\n  sub { \n    bottom: -0.25em; \n  }\n  sup { \n    top: -0.5em; \n  }\n  b, \n  strong { \n    font-weight: bold; \n  }\n  form {\n    width: 100%;\n  }\n  // Note in future picture can be display: contents\n  // - That value still has SR issues with removing content from accessibility tree\n  video,\n  picture {\n    display: block;\n  }\n  code,\n  kbd,\n  samp,\n  pre {\n    font-family: typography.get(\"font-family-monospace\");\n  }\n  hr {\n    height: 0;\n    border: 0;\n    box-sizing: content-box;\n    overflow: visible;\n    margin: element.get(\"margin\") 0;\n    border-bottom: element.get-rule-style();\n  }\n  iframe {\n    border: 0;\n    outline: 0;\n  }\n  figure {\n    margin: 0;\n  }\n  img {\n    display: block;\n    width: auto;\n    height: auto;\n    max-width: 100%;\n    border-style: none;\n  }\n  // Not styling ordered lists because they are used in navigation and other UI components\n  // - Would rather explicitly style numbered lists so menus and things \n  //   don't have to reset. Usually there's only a few type of in content \n  //   numbered lists and those are styled via classes or wysiwyg\n  ul,\n  ol { \n    list-style: none; \n  }\n  a {\n    // User can disable link styling if they want to add more specific styling\n    // and omit this in element base\n    @if (get(\"link\")) {\n      @include element.link-defaults(\n        $hover: get(\"link-hover\"),\n        $visited: get(\"link-visited\"),\n      );\n    }\n  }\n  [disabled],\n  :disabled {\n    opacity: 0.5;\n    cursor: not-allowed;\n  }\n  button[disabled] {\n    pointer-events: none;\n  }\n  dt { \n    font-weight: bold;\n  }\n  [hidden], \n  template {\n    display: none;\n  }\n  blockquote {\n    margin: 0;\n  }\n  summary {\n    cursor: pointer;\n  }\n  @if get(\"details-animation\") {\n    details {\n      &[open] {\n        summary {\n          ~ * {\n            // Prevent issues with opening these programmatically on firefox\n            // - Animation would not be complete in the clone on firefox (looks empty)\n            @media screen {\n              animation: get(\"details-animation\");\n            }\n          }\n        }\n      }\n    }\n  }\n  audio {\n    display: block;\n    margin: 1rem 0;\n  }\n",
              "line": {
                "start": 52,
                "end": 208
              }
            }
          },
          {
            "description": "Output the elements base styles\n",
            "context": {
              "type": "mixin",
              "name": "base-elements-styles",
              "code": "\n\n  @include utils.file-header('base', 'elements');\n  *,\n  ::before,\n  ::after {\n    box-sizing: border-box;\n  }\n  html {\n    -webkit-text-size-adjust: 100%;\n    @media (prefers-reduced-motion: no-preference) {\n      scroll-behavior: smooth;\n    }\n  }\n  body {\n    @include styles-body();\n  }\n  h1, \n  h2, \n  h3, \n  h4, \n  h5, \n  h6, \n  ul, \n  ol, \n  li,\n  pre, \n  code,\n  p { \n    margin: 0;\n    padding: 0;\n    font-size: inherit;\n    font-family: inherit;\n    border-width: 0;\n    border-style: solid;\n    font-weight: inherit;\n  }\n  p {\n    $margin-top: typography.get(\"margin-top\");\n    margin-top: utils.when($margin-top, $margin-top, 0);\n    margin-bottom: typography.get(\"margin-bottom\"); \n  }\n  sub, sup {\n    font-size: 75%;\n    line-height: 0;\n    position: relative;\n    vertical-align: baseline;\n  }\n  small { \n    @include typography.size(\"small\", (\"line-height\" : typography.get(\"line-height-dense\"))); \n  }\n  sub { \n    bottom: -0.25em; \n  }\n  sup { \n    top: -0.5em; \n  }\n  b, \n  strong { \n    font-weight: bold; \n  }\n  form {\n    width: 100%;\n  }\n  // Note in future picture can be display: contents\n  // - That value still has SR issues with removing content from accessibility tree\n  video,\n  picture {\n    display: block;\n  }\n  code,\n  kbd,\n  samp,\n  pre {\n    font-family: typography.get(\"font-family-monospace\");\n  }\n  hr {\n    height: 0;\n    border: 0;\n    box-sizing: content-box;\n    overflow: visible;\n    margin: element.get(\"margin\") 0;\n    border-bottom: element.get-rule-style();\n  }\n  iframe {\n    border: 0;\n    outline: 0;\n  }\n  figure {\n    margin: 0;\n  }\n  img {\n    display: block;\n    width: auto;\n    height: auto;\n    max-width: 100%;\n    border-style: none;\n  }\n  // Not styling ordered lists because they are used in navigation and other UI components\n  // - Would rather explicitly style numbered lists so menus and things \n  //   don't have to reset. Usually there's only a few type of in content \n  //   numbered lists and those are styled via classes or wysiwyg\n  ul,\n  ol { \n    list-style: none; \n  }\n  a {\n    // User can disable link styling if they want to add more specific styling\n    // and omit this in element base\n    @if (get(\"link\")) {\n      @include element.link-defaults(\n        $hover: get(\"link-hover\"),\n        $visited: get(\"link-visited\"),\n      );\n    }\n  }\n  [disabled],\n  :disabled {\n    opacity: 0.5;\n    cursor: not-allowed;\n  }\n  button[disabled] {\n    pointer-events: none;\n  }\n  dt { \n    font-weight: bold;\n  }\n  [hidden], \n  template {\n    display: none;\n  }\n  blockquote {\n    margin: 0;\n  }\n  summary {\n    cursor: pointer;\n  }\n  @if get(\"details-animation\") {\n    details {\n      &[open] {\n        summary {\n          ~ * {\n            // Prevent issues with opening these programmatically on firefox\n            // - Animation would not be complete in the clone on firefox (looks empty)\n            @media screen {\n              animation: get(\"details-animation\");\n            }\n          }\n        }\n      }\n    }\n  }\n  audio {\n    display: block;\n    margin: 1rem 0;\n  }\n",
              "line": {
                "start": 52,
                "end": 208
              }
            }
          },
          {
            "description": "Output the elements base styles\n",
            "context": {
              "type": "mixin",
              "name": "base-elements-styles",
              "code": "\n\n  @include utils.file-header('base', 'elements');\n  *,\n  ::before,\n  ::after {\n    box-sizing: border-box;\n  }\n  html {\n    -webkit-text-size-adjust: 100%;\n    @media (prefers-reduced-motion: no-preference) {\n      scroll-behavior: smooth;\n    }\n  }\n  body {\n    @include styles-body();\n  }\n  h1, \n  h2, \n  h3, \n  h4, \n  h5, \n  h6, \n  ul, \n  ol, \n  li,\n  pre, \n  code,\n  p { \n    margin: 0;\n    padding: 0;\n    font-size: inherit;\n    font-family: inherit;\n    border-width: 0;\n    border-style: solid;\n    font-weight: inherit;\n  }\n  p {\n    $margin-top: typography.get(\"margin-top\");\n    margin-top: utils.when($margin-top, $margin-top, 0);\n    margin-bottom: typography.get(\"margin-bottom\"); \n  }\n  sub, sup {\n    font-size: 75%;\n    line-height: 0;\n    position: relative;\n    vertical-align: baseline;\n  }\n  small { \n    @include typography.size(\"small\", (\"line-height\" : typography.get(\"line-height-dense\"))); \n  }\n  sub { \n    bottom: -0.25em; \n  }\n  sup { \n    top: -0.5em; \n  }\n  b, \n  strong { \n    font-weight: bold; \n  }\n  form {\n    width: 100%;\n  }\n  // Note in future picture can be display: contents\n  // - That value still has SR issues with removing content from accessibility tree\n  video,\n  picture {\n    display: block;\n  }\n  code,\n  kbd,\n  samp,\n  pre {\n    font-family: typography.get(\"font-family-monospace\");\n  }\n  hr {\n    height: 0;\n    border: 0;\n    box-sizing: content-box;\n    overflow: visible;\n    margin: element.get(\"margin\") 0;\n    border-bottom: element.get-rule-style();\n  }\n  iframe {\n    border: 0;\n    outline: 0;\n  }\n  figure {\n    margin: 0;\n  }\n  img {\n    display: block;\n    width: auto;\n    height: auto;\n    max-width: 100%;\n    border-style: none;\n  }\n  // Not styling ordered lists because they are used in navigation and other UI components\n  // - Would rather explicitly style numbered lists so menus and things \n  //   don't have to reset. Usually there's only a few type of in content \n  //   numbered lists and those are styled via classes or wysiwyg\n  ul,\n  ol { \n    list-style: none; \n  }\n  a {\n    // User can disable link styling if they want to add more specific styling\n    // and omit this in element base\n    @if (get(\"link\")) {\n      @include element.link-defaults(\n        $hover: get(\"link-hover\"),\n        $visited: get(\"link-visited\"),\n      );\n    }\n  }\n  [disabled],\n  :disabled {\n    opacity: 0.5;\n    cursor: not-allowed;\n  }\n  button[disabled] {\n    pointer-events: none;\n  }\n  dt { \n    font-weight: bold;\n  }\n  [hidden], \n  template {\n    display: none;\n  }\n  blockquote {\n    margin: 0;\n  }\n  summary {\n    cursor: pointer;\n  }\n  @if get(\"details-animation\") {\n    details {\n      &[open] {\n        summary {\n          ~ * {\n            // Prevent issues with opening these programmatically on firefox\n            // - Animation would not be complete in the clone on firefox (looks empty)\n            @media screen {\n              animation: get(\"details-animation\");\n            }\n          }\n        }\n      }\n    }\n  }\n  audio {\n    display: block;\n    margin: 1rem 0;\n  }\n",
              "line": {
                "start": 52,
                "end": 208
              }
            }
          },
          {
            "description": "Output the elements base styles\n",
            "context": {
              "type": "mixin",
              "name": "base-elements-styles",
              "code": "\n\n  @include utils.file-header('base', 'elements');\n  *,\n  ::before,\n  ::after {\n    box-sizing: border-box;\n  }\n  html {\n    -webkit-text-size-adjust: 100%;\n    @media (prefers-reduced-motion: no-preference) {\n      scroll-behavior: smooth;\n    }\n  }\n  body {\n    @include styles-body();\n  }\n  h1, \n  h2, \n  h3, \n  h4, \n  h5, \n  h6, \n  ul, \n  ol, \n  li,\n  pre, \n  code,\n  p { \n    margin: 0;\n    padding: 0;\n    font-size: inherit;\n    font-family: inherit;\n    border-width: 0;\n    border-style: solid;\n    font-weight: inherit;\n  }\n  p {\n    $margin-top: typography.get(\"margin-top\");\n    margin-top: utils.when($margin-top, $margin-top, 0);\n    margin-bottom: typography.get(\"margin-bottom\"); \n  }\n  sub, sup {\n    font-size: 75%;\n    line-height: 0;\n    position: relative;\n    vertical-align: baseline;\n  }\n  small { \n    @include typography.size(\"small\", (\"line-height\" : typography.get(\"line-height-dense\"))); \n  }\n  sub { \n    bottom: -0.25em; \n  }\n  sup { \n    top: -0.5em; \n  }\n  b, \n  strong { \n    font-weight: bold; \n  }\n  form {\n    width: 100%;\n  }\n  // Note in future picture can be display: contents\n  // - That value still has SR issues with removing content from accessibility tree\n  video,\n  picture {\n    display: block;\n  }\n  code,\n  kbd,\n  samp,\n  pre {\n    font-family: typography.get(\"font-family-monospace\");\n  }\n  hr {\n    height: 0;\n    border: 0;\n    box-sizing: content-box;\n    overflow: visible;\n    margin: element.get(\"margin\") 0;\n    border-bottom: element.get-rule-style();\n  }\n  iframe {\n    border: 0;\n    outline: 0;\n  }\n  figure {\n    margin: 0;\n  }\n  img {\n    display: block;\n    width: auto;\n    height: auto;\n    max-width: 100%;\n    border-style: none;\n  }\n  // Not styling ordered lists because they are used in navigation and other UI components\n  // - Would rather explicitly style numbered lists so menus and things \n  //   don't have to reset. Usually there's only a few type of in content \n  //   numbered lists and those are styled via classes or wysiwyg\n  ul,\n  ol { \n    list-style: none; \n  }\n  a {\n    // User can disable link styling if they want to add more specific styling\n    // and omit this in element base\n    @if (get(\"link\")) {\n      @include element.link-defaults(\n        $hover: get(\"link-hover\"),\n        $visited: get(\"link-visited\"),\n      );\n    }\n  }\n  [disabled],\n  :disabled {\n    opacity: 0.5;\n    cursor: not-allowed;\n  }\n  button[disabled] {\n    pointer-events: none;\n  }\n  dt { \n    font-weight: bold;\n  }\n  [hidden], \n  template {\n    display: none;\n  }\n  blockquote {\n    margin: 0;\n  }\n  summary {\n    cursor: pointer;\n  }\n  @if get(\"details-animation\") {\n    details {\n      &[open] {\n        summary {\n          ~ * {\n            // Prevent issues with opening these programmatically on firefox\n            // - Animation would not be complete in the clone on firefox (looks empty)\n            @media screen {\n              animation: get(\"details-animation\");\n            }\n          }\n        }\n      }\n    }\n  }\n  audio {\n    display: block;\n    margin: 1rem 0;\n  }\n",
              "line": {
                "start": 52,
                "end": 208
              }
            }
          },
          {
            "description": "Output the elements base styles\n",
            "context": {
              "type": "mixin",
              "name": "base-elements-styles",
              "code": "\n\n  @include utils.file-header('base', 'elements');\n  *,\n  ::before,\n  ::after {\n    box-sizing: border-box;\n  }\n  html {\n    -webkit-text-size-adjust: 100%;\n    @media (prefers-reduced-motion: no-preference) {\n      scroll-behavior: smooth;\n    }\n  }\n  body {\n    @include styles-body();\n  }\n  h1, \n  h2, \n  h3, \n  h4, \n  h5, \n  h6, \n  ul, \n  ol, \n  li,\n  pre, \n  code,\n  p { \n    margin: 0;\n    padding: 0;\n    font-size: inherit;\n    font-family: inherit;\n    border-width: 0;\n    border-style: solid;\n    font-weight: inherit;\n  }\n  p {\n    $margin-top: typography.get(\"margin-top\");\n    margin-top: utils.when($margin-top, $margin-top, 0);\n    margin-bottom: typography.get(\"margin-bottom\"); \n  }\n  sub, sup {\n    font-size: 75%;\n    line-height: 0;\n    position: relative;\n    vertical-align: baseline;\n  }\n  small { \n    @include typography.size(\"small\", (\"line-height\" : typography.get(\"line-height-dense\"))); \n  }\n  sub { \n    bottom: -0.25em; \n  }\n  sup { \n    top: -0.5em; \n  }\n  b, \n  strong { \n    font-weight: bold; \n  }\n  form {\n    width: 100%;\n  }\n  // Note in future picture can be display: contents\n  // - That value still has SR issues with removing content from accessibility tree\n  video,\n  picture {\n    display: block;\n  }\n  code,\n  kbd,\n  samp,\n  pre {\n    font-family: typography.get(\"font-family-monospace\");\n  }\n  hr {\n    height: 0;\n    border: 0;\n    box-sizing: content-box;\n    overflow: visible;\n    margin: element.get(\"margin\") 0;\n    border-bottom: element.get-rule-style();\n  }\n  iframe {\n    border: 0;\n    outline: 0;\n  }\n  figure {\n    margin: 0;\n  }\n  img {\n    display: block;\n    width: auto;\n    height: auto;\n    max-width: 100%;\n    border-style: none;\n  }\n  // Not styling ordered lists because they are used in navigation and other UI components\n  // - Would rather explicitly style numbered lists so menus and things \n  //   don't have to reset. Usually there's only a few type of in content \n  //   numbered lists and those are styled via classes or wysiwyg\n  ul,\n  ol { \n    list-style: none; \n  }\n  a {\n    // User can disable link styling if they want to add more specific styling\n    // and omit this in element base\n    @if (get(\"link\")) {\n      @include element.link-defaults(\n        $hover: get(\"link-hover\"),\n        $visited: get(\"link-visited\"),\n      );\n    }\n  }\n  [disabled],\n  :disabled {\n    opacity: 0.5;\n    cursor: not-allowed;\n  }\n  button[disabled] {\n    pointer-events: none;\n  }\n  dt { \n    font-weight: bold;\n  }\n  [hidden], \n  template {\n    display: none;\n  }\n  blockquote {\n    margin: 0;\n  }\n  summary {\n    cursor: pointer;\n  }\n  @if get(\"details-animation\") {\n    details {\n      &[open] {\n        summary {\n          ~ * {\n            // Prevent issues with opening these programmatically on firefox\n            // - Animation would not be complete in the clone on firefox (looks empty)\n            @media screen {\n              animation: get(\"details-animation\");\n            }\n          }\n        }\n      }\n    }\n  }\n  audio {\n    display: block;\n    margin: 1rem 0;\n  }\n",
              "line": {
                "start": 52,
                "end": 208
              }
            }
          },
          {
            "description": "Output the elements base styles\n",
            "context": {
              "type": "mixin",
              "name": "base-elements-styles",
              "code": "\n\n  @include utils.file-header('base', 'elements');\n  *,\n  ::before,\n  ::after {\n    box-sizing: border-box;\n  }\n  html {\n    -webkit-text-size-adjust: 100%;\n    @media (prefers-reduced-motion: no-preference) {\n      scroll-behavior: smooth;\n    }\n  }\n  body {\n    @include styles-body();\n  }\n  h1, \n  h2, \n  h3, \n  h4, \n  h5, \n  h6, \n  ul, \n  ol, \n  li,\n  pre, \n  code,\n  p { \n    margin: 0;\n    padding: 0;\n    font-size: inherit;\n    font-family: inherit;\n    border-width: 0;\n    border-style: solid;\n    font-weight: inherit;\n  }\n  p {\n    $margin-top: typography.get(\"margin-top\");\n    margin-top: utils.when($margin-top, $margin-top, 0);\n    margin-bottom: typography.get(\"margin-bottom\"); \n  }\n  sub, sup {\n    font-size: 75%;\n    line-height: 0;\n    position: relative;\n    vertical-align: baseline;\n  }\n  small { \n    @include typography.size(\"small\", (\"line-height\" : typography.get(\"line-height-dense\"))); \n  }\n  sub { \n    bottom: -0.25em; \n  }\n  sup { \n    top: -0.5em; \n  }\n  b, \n  strong { \n    font-weight: bold; \n  }\n  form {\n    width: 100%;\n  }\n  // Note in future picture can be display: contents\n  // - That value still has SR issues with removing content from accessibility tree\n  video,\n  picture {\n    display: block;\n  }\n  code,\n  kbd,\n  samp,\n  pre {\n    font-family: typography.get(\"font-family-monospace\");\n  }\n  hr {\n    height: 0;\n    border: 0;\n    box-sizing: content-box;\n    overflow: visible;\n    margin: element.get(\"margin\") 0;\n    border-bottom: element.get-rule-style();\n  }\n  iframe {\n    border: 0;\n    outline: 0;\n  }\n  figure {\n    margin: 0;\n  }\n  img {\n    display: block;\n    width: auto;\n    height: auto;\n    max-width: 100%;\n    border-style: none;\n  }\n  // Not styling ordered lists because they are used in navigation and other UI components\n  // - Would rather explicitly style numbered lists so menus and things \n  //   don't have to reset. Usually there's only a few type of in content \n  //   numbered lists and those are styled via classes or wysiwyg\n  ul,\n  ol { \n    list-style: none; \n  }\n  a {\n    // User can disable link styling if they want to add more specific styling\n    // and omit this in element base\n    @if (get(\"link\")) {\n      @include element.link-defaults(\n        $hover: get(\"link-hover\"),\n        $visited: get(\"link-visited\"),\n      );\n    }\n  }\n  [disabled],\n  :disabled {\n    opacity: 0.5;\n    cursor: not-allowed;\n  }\n  button[disabled] {\n    pointer-events: none;\n  }\n  dt { \n    font-weight: bold;\n  }\n  [hidden], \n  template {\n    display: none;\n  }\n  blockquote {\n    margin: 0;\n  }\n  summary {\n    cursor: pointer;\n  }\n  @if get(\"details-animation\") {\n    details {\n      &[open] {\n        summary {\n          ~ * {\n            // Prevent issues with opening these programmatically on firefox\n            // - Animation would not be complete in the clone on firefox (looks empty)\n            @media screen {\n              animation: get(\"details-animation\");\n            }\n          }\n        }\n      }\n    }\n  }\n  audio {\n    display: block;\n    margin: 1rem 0;\n  }\n",
              "line": {
                "start": 52,
                "end": 208
              }
            }
          },
          {
            "description": "Output the elements base styles\n",
            "context": {
              "type": "mixin",
              "name": "base-elements-styles",
              "code": "\n\n  @include utils.file-header('base', 'elements');\n  *,\n  ::before,\n  ::after {\n    box-sizing: border-box;\n  }\n  html {\n    -webkit-text-size-adjust: 100%;\n    @media (prefers-reduced-motion: no-preference) {\n      scroll-behavior: smooth;\n    }\n  }\n  body {\n    @include styles-body();\n  }\n  h1, \n  h2, \n  h3, \n  h4, \n  h5, \n  h6, \n  ul, \n  ol, \n  li,\n  pre, \n  code,\n  p { \n    margin: 0;\n    padding: 0;\n    font-size: inherit;\n    font-family: inherit;\n    border-width: 0;\n    border-style: solid;\n    font-weight: inherit;\n  }\n  p {\n    $margin-top: typography.get(\"margin-top\");\n    margin-top: utils.when($margin-top, $margin-top, 0);\n    margin-bottom: typography.get(\"margin-bottom\"); \n  }\n  sub, sup {\n    font-size: 75%;\n    line-height: 0;\n    position: relative;\n    vertical-align: baseline;\n  }\n  small { \n    @include typography.size(\"small\", (\"line-height\" : typography.get(\"line-height-dense\"))); \n  }\n  sub { \n    bottom: -0.25em; \n  }\n  sup { \n    top: -0.5em; \n  }\n  b, \n  strong { \n    font-weight: bold; \n  }\n  form {\n    width: 100%;\n  }\n  // Note in future picture can be display: contents\n  // - That value still has SR issues with removing content from accessibility tree\n  video,\n  picture {\n    display: block;\n  }\n  code,\n  kbd,\n  samp,\n  pre {\n    font-family: typography.get(\"font-family-monospace\");\n  }\n  hr {\n    height: 0;\n    border: 0;\n    box-sizing: content-box;\n    overflow: visible;\n    margin: element.get(\"margin\") 0;\n    border-bottom: element.get-rule-style();\n  }\n  iframe {\n    border: 0;\n    outline: 0;\n  }\n  figure {\n    margin: 0;\n  }\n  img {\n    display: block;\n    width: auto;\n    height: auto;\n    max-width: 100%;\n    border-style: none;\n  }\n  // Not styling ordered lists because they are used in navigation and other UI components\n  // - Would rather explicitly style numbered lists so menus and things \n  //   don't have to reset. Usually there's only a few type of in content \n  //   numbered lists and those are styled via classes or wysiwyg\n  ul,\n  ol { \n    list-style: none; \n  }\n  a {\n    // User can disable link styling if they want to add more specific styling\n    // and omit this in element base\n    @if (get(\"link\")) {\n      @include element.link-defaults(\n        $hover: get(\"link-hover\"),\n        $visited: get(\"link-visited\"),\n      );\n    }\n  }\n  [disabled],\n  :disabled {\n    opacity: 0.5;\n    cursor: not-allowed;\n  }\n  button[disabled] {\n    pointer-events: none;\n  }\n  dt { \n    font-weight: bold;\n  }\n  [hidden], \n  template {\n    display: none;\n  }\n  blockquote {\n    margin: 0;\n  }\n  summary {\n    cursor: pointer;\n  }\n  @if get(\"details-animation\") {\n    details {\n      &[open] {\n        summary {\n          ~ * {\n            // Prevent issues with opening these programmatically on firefox\n            // - Animation would not be complete in the clone on firefox (looks empty)\n            @media screen {\n              animation: get(\"details-animation\");\n            }\n          }\n        }\n      }\n    }\n  }\n  audio {\n    display: block;\n    margin: 1rem 0;\n  }\n",
              "line": {
                "start": 52,
                "end": 208
              }
            }
          },
          {
            "description": "Output the elements base styles\n",
            "context": {
              "type": "mixin",
              "name": "base-elements-styles",
              "code": "\n\n  @include utils.file-header('base', 'elements');\n  *,\n  ::before,\n  ::after {\n    box-sizing: border-box;\n  }\n  html {\n    -webkit-text-size-adjust: 100%;\n    @media (prefers-reduced-motion: no-preference) {\n      scroll-behavior: smooth;\n    }\n  }\n  body {\n    @include styles-body();\n  }\n  h1, \n  h2, \n  h3, \n  h4, \n  h5, \n  h6, \n  ul, \n  ol, \n  li,\n  pre, \n  code,\n  p { \n    margin: 0;\n    padding: 0;\n    font-size: inherit;\n    font-family: inherit;\n    border-width: 0;\n    border-style: solid;\n    font-weight: inherit;\n  }\n  p {\n    $margin-top: typography.get(\"margin-top\");\n    margin-top: utils.when($margin-top, $margin-top, 0);\n    margin-bottom: typography.get(\"margin-bottom\"); \n  }\n  sub, sup {\n    font-size: 75%;\n    line-height: 0;\n    position: relative;\n    vertical-align: baseline;\n  }\n  small { \n    @include typography.size(\"small\", (\"line-height\" : typography.get(\"line-height-dense\"))); \n  }\n  sub { \n    bottom: -0.25em; \n  }\n  sup { \n    top: -0.5em; \n  }\n  b, \n  strong { \n    font-weight: bold; \n  }\n  form {\n    width: 100%;\n  }\n  // Note in future picture can be display: contents\n  // - That value still has SR issues with removing content from accessibility tree\n  video,\n  picture {\n    display: block;\n  }\n  code,\n  kbd,\n  samp,\n  pre {\n    font-family: typography.get(\"font-family-monospace\");\n  }\n  hr {\n    height: 0;\n    border: 0;\n    box-sizing: content-box;\n    overflow: visible;\n    margin: element.get(\"margin\") 0;\n    border-bottom: element.get-rule-style();\n  }\n  iframe {\n    border: 0;\n    outline: 0;\n  }\n  figure {\n    margin: 0;\n  }\n  img {\n    display: block;\n    width: auto;\n    height: auto;\n    max-width: 100%;\n    border-style: none;\n  }\n  // Not styling ordered lists because they are used in navigation and other UI components\n  // - Would rather explicitly style numbered lists so menus and things \n  //   don't have to reset. Usually there's only a few type of in content \n  //   numbered lists and those are styled via classes or wysiwyg\n  ul,\n  ol { \n    list-style: none; \n  }\n  a {\n    // User can disable link styling if they want to add more specific styling\n    // and omit this in element base\n    @if (get(\"link\")) {\n      @include element.link-defaults(\n        $hover: get(\"link-hover\"),\n        $visited: get(\"link-visited\"),\n      );\n    }\n  }\n  [disabled],\n  :disabled {\n    opacity: 0.5;\n    cursor: not-allowed;\n  }\n  button[disabled] {\n    pointer-events: none;\n  }\n  dt { \n    font-weight: bold;\n  }\n  [hidden], \n  template {\n    display: none;\n  }\n  blockquote {\n    margin: 0;\n  }\n  summary {\n    cursor: pointer;\n  }\n  @if get(\"details-animation\") {\n    details {\n      &[open] {\n        summary {\n          ~ * {\n            // Prevent issues with opening these programmatically on firefox\n            // - Animation would not be complete in the clone on firefox (looks empty)\n            @media screen {\n              animation: get(\"details-animation\");\n            }\n          }\n        }\n      }\n    }\n  }\n  audio {\n    display: block;\n    margin: 1rem 0;\n  }\n",
              "line": {
                "start": 52,
                "end": 208
              }
            }
          },
          {
            "description": "Output the elements base styles\n",
            "context": {
              "type": "mixin",
              "name": "base-elements-styles",
              "code": "\n\n  @include utils.file-header('base', 'elements');\n  *,\n  ::before,\n  ::after {\n    box-sizing: border-box;\n  }\n  html {\n    -webkit-text-size-adjust: 100%;\n    @media (prefers-reduced-motion: no-preference) {\n      scroll-behavior: smooth;\n    }\n  }\n  body {\n    @include styles-body();\n  }\n  h1, \n  h2, \n  h3, \n  h4, \n  h5, \n  h6, \n  ul, \n  ol, \n  li,\n  pre, \n  code,\n  p { \n    margin: 0;\n    padding: 0;\n    font-size: inherit;\n    font-family: inherit;\n    border-width: 0;\n    border-style: solid;\n    font-weight: inherit;\n  }\n  p {\n    $margin-top: typography.get(\"margin-top\");\n    margin-top: utils.when($margin-top, $margin-top, 0);\n    margin-bottom: typography.get(\"margin-bottom\"); \n  }\n  sub, sup {\n    font-size: 75%;\n    line-height: 0;\n    position: relative;\n    vertical-align: baseline;\n  }\n  small { \n    @include typography.size(\"small\", (\"line-height\" : typography.get(\"line-height-dense\"))); \n  }\n  sub { \n    bottom: -0.25em; \n  }\n  sup { \n    top: -0.5em; \n  }\n  b, \n  strong { \n    font-weight: bold; \n  }\n  form {\n    width: 100%;\n  }\n  // Note in future picture can be display: contents\n  // - That value still has SR issues with removing content from accessibility tree\n  video,\n  picture {\n    display: block;\n  }\n  code,\n  kbd,\n  samp,\n  pre {\n    font-family: typography.get(\"font-family-monospace\");\n  }\n  hr {\n    height: 0;\n    border: 0;\n    box-sizing: content-box;\n    overflow: visible;\n    margin: element.get(\"margin\") 0;\n    border-bottom: element.get-rule-style();\n  }\n  iframe {\n    border: 0;\n    outline: 0;\n  }\n  figure {\n    margin: 0;\n  }\n  img {\n    display: block;\n    width: auto;\n    height: auto;\n    max-width: 100%;\n    border-style: none;\n  }\n  // Not styling ordered lists because they are used in navigation and other UI components\n  // - Would rather explicitly style numbered lists so menus and things \n  //   don't have to reset. Usually there's only a few type of in content \n  //   numbered lists and those are styled via classes or wysiwyg\n  ul,\n  ol { \n    list-style: none; \n  }\n  a {\n    // User can disable link styling if they want to add more specific styling\n    // and omit this in element base\n    @if (get(\"link\")) {\n      @include element.link-defaults(\n        $hover: get(\"link-hover\"),\n        $visited: get(\"link-visited\"),\n      );\n    }\n  }\n  [disabled],\n  :disabled {\n    opacity: 0.5;\n    cursor: not-allowed;\n  }\n  button[disabled] {\n    pointer-events: none;\n  }\n  dt { \n    font-weight: bold;\n  }\n  [hidden], \n  template {\n    display: none;\n  }\n  blockquote {\n    margin: 0;\n  }\n  summary {\n    cursor: pointer;\n  }\n  @if get(\"details-animation\") {\n    details {\n      &[open] {\n        summary {\n          ~ * {\n            // Prevent issues with opening these programmatically on firefox\n            // - Animation would not be complete in the clone on firefox (looks empty)\n            @media screen {\n              animation: get(\"details-animation\");\n            }\n          }\n        }\n      }\n    }\n  }\n  audio {\n    display: block;\n    margin: 1rem 0;\n  }\n",
              "line": {
                "start": 52,
                "end": 208
              }
            }
          },
          {
            "description": "Output the elements base styles\n",
            "context": {
              "type": "mixin",
              "name": "base-elements-styles",
              "code": "\n\n  @include utils.file-header('base', 'elements');\n  *,\n  ::before,\n  ::after {\n    box-sizing: border-box;\n  }\n  html {\n    -webkit-text-size-adjust: 100%;\n    @media (prefers-reduced-motion: no-preference) {\n      scroll-behavior: smooth;\n    }\n  }\n  body {\n    @include styles-body();\n  }\n  h1, \n  h2, \n  h3, \n  h4, \n  h5, \n  h6, \n  ul, \n  ol, \n  li,\n  pre, \n  code,\n  p { \n    margin: 0;\n    padding: 0;\n    font-size: inherit;\n    font-family: inherit;\n    border-width: 0;\n    border-style: solid;\n    font-weight: inherit;\n  }\n  p {\n    $margin-top: typography.get(\"margin-top\");\n    margin-top: utils.when($margin-top, $margin-top, 0);\n    margin-bottom: typography.get(\"margin-bottom\"); \n  }\n  sub, sup {\n    font-size: 75%;\n    line-height: 0;\n    position: relative;\n    vertical-align: baseline;\n  }\n  small { \n    @include typography.size(\"small\", (\"line-height\" : typography.get(\"line-height-dense\"))); \n  }\n  sub { \n    bottom: -0.25em; \n  }\n  sup { \n    top: -0.5em; \n  }\n  b, \n  strong { \n    font-weight: bold; \n  }\n  form {\n    width: 100%;\n  }\n  // Note in future picture can be display: contents\n  // - That value still has SR issues with removing content from accessibility tree\n  video,\n  picture {\n    display: block;\n  }\n  code,\n  kbd,\n  samp,\n  pre {\n    font-family: typography.get(\"font-family-monospace\");\n  }\n  hr {\n    height: 0;\n    border: 0;\n    box-sizing: content-box;\n    overflow: visible;\n    margin: element.get(\"margin\") 0;\n    border-bottom: element.get-rule-style();\n  }\n  iframe {\n    border: 0;\n    outline: 0;\n  }\n  figure {\n    margin: 0;\n  }\n  img {\n    display: block;\n    width: auto;\n    height: auto;\n    max-width: 100%;\n    border-style: none;\n  }\n  // Not styling ordered lists because they are used in navigation and other UI components\n  // - Would rather explicitly style numbered lists so menus and things \n  //   don't have to reset. Usually there's only a few type of in content \n  //   numbered lists and those are styled via classes or wysiwyg\n  ul,\n  ol { \n    list-style: none; \n  }\n  a {\n    // User can disable link styling if they want to add more specific styling\n    // and omit this in element base\n    @if (get(\"link\")) {\n      @include element.link-defaults(\n        $hover: get(\"link-hover\"),\n        $visited: get(\"link-visited\"),\n      );\n    }\n  }\n  [disabled],\n  :disabled {\n    opacity: 0.5;\n    cursor: not-allowed;\n  }\n  button[disabled] {\n    pointer-events: none;\n  }\n  dt { \n    font-weight: bold;\n  }\n  [hidden], \n  template {\n    display: none;\n  }\n  blockquote {\n    margin: 0;\n  }\n  summary {\n    cursor: pointer;\n  }\n  @if get(\"details-animation\") {\n    details {\n      &[open] {\n        summary {\n          ~ * {\n            // Prevent issues with opening these programmatically on firefox\n            // - Animation would not be complete in the clone on firefox (looks empty)\n            @media screen {\n              animation: get(\"details-animation\");\n            }\n          }\n        }\n      }\n    }\n  }\n  audio {\n    display: block;\n    margin: 1rem 0;\n  }\n",
              "line": {
                "start": 52,
                "end": 208
              }
            }
          },
          {
            "description": "Output Layout Styles \n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('base', 'layout');\n\n  @if (get(\"containers\")) {\n    @each $name, $values in layout.$containers {\n      $class: selector.class($name);\n      #{ $class } {\n        @include layout.container-styles($name);\n      }\n    }\n  }\n  @if (get(\"container-nested-no-padding\")) {\n    $prefix: selector.class(\"container\", $name-only: true);\n    [class|=\"#{ $prefix }\"] {\n      [class|=\"#{ $prefix }\"] {\n        padding-left: 0;\n        padding-right: 0;\n      }\n    }\n  }\n\n  @if (get(\"layout-flex\")) {\n    $prefix: selector.class(\"layout-flex\");\n\n    #{ $prefix } {\n      display: flex;\n    }\n    #{ $prefix }-justified {\n      display: flex;\n      justify-content: space-between;\n    }\n    #{ $prefix }-center {\n      display: flex;\n      align-items: center;\n    }\n    #{ $prefix }-center-all {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n    }\n    #{ $prefix }-justify-end {\n      display: flex;\n      justify-content: flex-end;\n    }\n    #{ $prefix }-baseline {\n      display: flex;\n      align-items: baseline;\n    }\n    #{ $prefix }-end {\n      display: flex;\n      align-items: flex-end;\n    }\n    #{ $prefix }-column {\n      display: flex;\n      flex-direction: column;\n    }\n    #{ $prefix }-column-center {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n    }\n  }\n",
              "line": {
                "start": 43,
                "end": 105
              }
            }
          },
          {
            "description": "Output Layout Styles \n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('base', 'layout');\n\n  @if (get(\"containers\")) {\n    @each $name, $values in layout.$containers {\n      $class: selector.class($name);\n      #{ $class } {\n        @include layout.container-styles($name);\n      }\n    }\n  }\n  @if (get(\"container-nested-no-padding\")) {\n    $prefix: selector.class(\"container\", $name-only: true);\n    [class|=\"#{ $prefix }\"] {\n      [class|=\"#{ $prefix }\"] {\n        padding-left: 0;\n        padding-right: 0;\n      }\n    }\n  }\n\n  @if (get(\"layout-flex\")) {\n    $prefix: selector.class(\"layout-flex\");\n\n    #{ $prefix } {\n      display: flex;\n    }\n    #{ $prefix }-justified {\n      display: flex;\n      justify-content: space-between;\n    }\n    #{ $prefix }-center {\n      display: flex;\n      align-items: center;\n    }\n    #{ $prefix }-center-all {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n    }\n    #{ $prefix }-justify-end {\n      display: flex;\n      justify-content: flex-end;\n    }\n    #{ $prefix }-baseline {\n      display: flex;\n      align-items: baseline;\n    }\n    #{ $prefix }-end {\n      display: flex;\n      align-items: flex-end;\n    }\n    #{ $prefix }-column {\n      display: flex;\n      flex-direction: column;\n    }\n    #{ $prefix }-column-center {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n    }\n  }\n",
              "line": {
                "start": 43,
                "end": 105
              }
            }
          },
          {
            "description": "Output Layout Styles \n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('base', 'layout');\n\n  @if (get(\"containers\")) {\n    @each $name, $values in layout.$containers {\n      $class: selector.class($name);\n      #{ $class } {\n        @include layout.container-styles($name);\n      }\n    }\n  }\n  @if (get(\"container-nested-no-padding\")) {\n    $prefix: selector.class(\"container\", $name-only: true);\n    [class|=\"#{ $prefix }\"] {\n      [class|=\"#{ $prefix }\"] {\n        padding-left: 0;\n        padding-right: 0;\n      }\n    }\n  }\n\n  @if (get(\"layout-flex\")) {\n    $prefix: selector.class(\"layout-flex\");\n\n    #{ $prefix } {\n      display: flex;\n    }\n    #{ $prefix }-justified {\n      display: flex;\n      justify-content: space-between;\n    }\n    #{ $prefix }-center {\n      display: flex;\n      align-items: center;\n    }\n    #{ $prefix }-center-all {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n    }\n    #{ $prefix }-justify-end {\n      display: flex;\n      justify-content: flex-end;\n    }\n    #{ $prefix }-baseline {\n      display: flex;\n      align-items: baseline;\n    }\n    #{ $prefix }-end {\n      display: flex;\n      align-items: flex-end;\n    }\n    #{ $prefix }-column {\n      display: flex;\n      flex-direction: column;\n    }\n    #{ $prefix }-column-center {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n    }\n  }\n",
              "line": {
                "start": 43,
                "end": 105
              }
            }
          },
          {
            "description": "Outputs base theme variables and classes\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('base', 'themes');\n\n  @if (list.length(themes.$tokens) > 0) {\n    $keys: themes.get-keys();\n    $default: themes.get(\"default\");\n    $prefix: selector.class(\"theme\");\n    $fake-selectors: ();\n    $inverses: themes.get(\"inverses\");\n    $inverse-prefix: selector.class(\"theme-inverse\");\n    $output-inverse: get(\"output-inverse\");\n    \n    // 1. Build Base Themes\n    @each $key in $keys {\n      $selectors: ();\n      $selectors: list.append($selectors, \"#{ $prefix }-#{ $key }\", comma);\n      \n      @if ($key == $default) {\n        $selectors: list.append($selectors, $root-selector, comma);\n      }\n\n      #{ $selectors } {\n        // Standard color-scheme and CSS vars\n        $color-scheme: themes.get-color-scheme($key);\n        @if ($color-scheme) {\n          color-scheme: #{ $color-scheme };\n        }\n        @include themes.declare($key);\n\n        // Force color and background-color if tokens are set\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n\n        @include -token-warning(\"token-color\", $key);\n        @include -token-warning(\"token-background-color\", $key);\n\n        @if ($color-token) {\n          color: cssvar.use($color-token);\n        }\n        @if ($bg-token) {\n          background-color: cssvar.use($bg-token);\n        }\n\n        // Optional Inverse Variables (Variable Swap Approach)\n        // Can use @scope in the future but for now we suffix -\"inverse\"\n        @if ($output-inverse) {\n          $inverse-key: map.get($inverses, $key);\n          @if ($inverse-key) {\n            $inv-scheme: themes.get-color-scheme($inverse-key);\n            @if ($inv-scheme) {\n              --ulu-inverse-color-scheme: #{ $inv-scheme };\n            }\n            \n            @each $prop, $theme-map in themes.$tokens {\n              @if (utils.is-map($theme-map)) {\n                $inv-value: map.get($theme-map, $inverse-key);\n                @if ($inv-value) {\n                  // Only output the inverse variable, not its fallback!\n                  @include cssvar.declare(\"inverse-#{$prop}\", $inv-value);\n                }\n              }\n            }\n          }\n        }\n\n        // Contextual trigger for the fake inversion utility\n        --ulu-theme-fake-filter: #{ get(\"fake-invert-filter\") };\n        \n        $fake-color: get(\"fake-invert-color\");\n        $fake-bg: inherit;\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n\n        @if ($output-inverse) {\n          $inverse-key: map.get($inverses, $key);\n          @if ($inverse-key) {\n            @if ($color-token) {\n              $fake-color: var(#{ cssvar.name(\"inverse-\" + $color-token) }, #{ $fake-color });\n            }\n            @if ($bg-token) {\n              $fake-bg: var(#{ cssvar.name(\"inverse-\" + $bg-token) }, white);\n            }\n          }\n        }\n\n        --ulu-theme-fake-color: #{ $fake-color };\n        --ulu-theme-fake-background-color: #{ $fake-bg };\n        \n        $fake-selectors: list.append($fake-selectors, $selectors, comma);\n\n        // Ensure fake utility applies to inverted themes\n        @if ($output-inverse) {\n          @each $current-theme, $inverse-target in $inverses {\n            @if ($inverse-target == $key) {\n               $fake-selectors: list.append($fake-selectors, \"#{ $prefix }-#{ $current-theme } #{ $inverse-prefix }\", comma);\n               @if ($current-theme == $default) {\n                 $fake-selectors: list.append($fake-selectors, \"#{ $root-selector } #{ $inverse-prefix }\", comma);\n               }\n            }\n          }\n        }\n      }\n    }\n\n    // 2. The Inverse Utility Class\n    @if ($output-inverse and list.length(map.keys($inverses)) > 0) {\n      #{ $inverse-prefix } {\n        color-scheme: var(--ulu-inverse-color-scheme, inherit);\n        @each $prop, $theme-map in themes.$tokens {\n          @if (utils.is-map($theme-map)) {\n            $inv-name: cssvar.name(\"inverse-\" + $prop);\n            // Swap them: --site-color-bg: var(--site-inverse-color-bg)\n            @include cssvar.declare($prop, var(#{ $inv-name }));\n          }\n        }\n        // Force color and background-color if tokens are set\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n        @if ($color-token) {\n          color: cssvar.use($color-token);\n        }\n        @if ($bg-token) {\n          background-color: cssvar.use($bg-token);\n        }\n      }\n    }\n\n    // 3. The Fake Inversion Utility Class\n    // Can be used on elements that need a theme but that have colors that can't be updated (canvas charts for example)\n    // It inverts the items color, and then inverts/spins the element colors so they match the hue before inversion\n    // It also decreases the contrast slightly\n    @if (list.length($fake-selectors) > 0) {\n      #{ $fake-selectors } {\n        #{ $prefix }-fake-invert,\n        #{ $prefix }-dark-fake { // Legacy support\n          filter: var(--ulu-theme-fake-filter, none);\n          color: var(--ulu-theme-fake-color, inherit);\n          background-color: var(--ulu-theme-fake-background-color, transparent);\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 193
              }
            }
          },
          {
            "description": "Outputs base theme variables and classes\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('base', 'themes');\n\n  @if (list.length(themes.$tokens) > 0) {\n    $keys: themes.get-keys();\n    $default: themes.get(\"default\");\n    $prefix: selector.class(\"theme\");\n    $fake-selectors: ();\n    $inverses: themes.get(\"inverses\");\n    $inverse-prefix: selector.class(\"theme-inverse\");\n    $output-inverse: get(\"output-inverse\");\n    \n    // 1. Build Base Themes\n    @each $key in $keys {\n      $selectors: ();\n      $selectors: list.append($selectors, \"#{ $prefix }-#{ $key }\", comma);\n      \n      @if ($key == $default) {\n        $selectors: list.append($selectors, $root-selector, comma);\n      }\n\n      #{ $selectors } {\n        // Standard color-scheme and CSS vars\n        $color-scheme: themes.get-color-scheme($key);\n        @if ($color-scheme) {\n          color-scheme: #{ $color-scheme };\n        }\n        @include themes.declare($key);\n\n        // Force color and background-color if tokens are set\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n\n        @include -token-warning(\"token-color\", $key);\n        @include -token-warning(\"token-background-color\", $key);\n\n        @if ($color-token) {\n          color: cssvar.use($color-token);\n        }\n        @if ($bg-token) {\n          background-color: cssvar.use($bg-token);\n        }\n\n        // Optional Inverse Variables (Variable Swap Approach)\n        // Can use @scope in the future but for now we suffix -\"inverse\"\n        @if ($output-inverse) {\n          $inverse-key: map.get($inverses, $key);\n          @if ($inverse-key) {\n            $inv-scheme: themes.get-color-scheme($inverse-key);\n            @if ($inv-scheme) {\n              --ulu-inverse-color-scheme: #{ $inv-scheme };\n            }\n            \n            @each $prop, $theme-map in themes.$tokens {\n              @if (utils.is-map($theme-map)) {\n                $inv-value: map.get($theme-map, $inverse-key);\n                @if ($inv-value) {\n                  // Only output the inverse variable, not its fallback!\n                  @include cssvar.declare(\"inverse-#{$prop}\", $inv-value);\n                }\n              }\n            }\n          }\n        }\n\n        // Contextual trigger for the fake inversion utility\n        --ulu-theme-fake-filter: #{ get(\"fake-invert-filter\") };\n        \n        $fake-color: get(\"fake-invert-color\");\n        $fake-bg: inherit;\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n\n        @if ($output-inverse) {\n          $inverse-key: map.get($inverses, $key);\n          @if ($inverse-key) {\n            @if ($color-token) {\n              $fake-color: var(#{ cssvar.name(\"inverse-\" + $color-token) }, #{ $fake-color });\n            }\n            @if ($bg-token) {\n              $fake-bg: var(#{ cssvar.name(\"inverse-\" + $bg-token) }, white);\n            }\n          }\n        }\n\n        --ulu-theme-fake-color: #{ $fake-color };\n        --ulu-theme-fake-background-color: #{ $fake-bg };\n        \n        $fake-selectors: list.append($fake-selectors, $selectors, comma);\n\n        // Ensure fake utility applies to inverted themes\n        @if ($output-inverse) {\n          @each $current-theme, $inverse-target in $inverses {\n            @if ($inverse-target == $key) {\n               $fake-selectors: list.append($fake-selectors, \"#{ $prefix }-#{ $current-theme } #{ $inverse-prefix }\", comma);\n               @if ($current-theme == $default) {\n                 $fake-selectors: list.append($fake-selectors, \"#{ $root-selector } #{ $inverse-prefix }\", comma);\n               }\n            }\n          }\n        }\n      }\n    }\n\n    // 2. The Inverse Utility Class\n    @if ($output-inverse and list.length(map.keys($inverses)) > 0) {\n      #{ $inverse-prefix } {\n        color-scheme: var(--ulu-inverse-color-scheme, inherit);\n        @each $prop, $theme-map in themes.$tokens {\n          @if (utils.is-map($theme-map)) {\n            $inv-name: cssvar.name(\"inverse-\" + $prop);\n            // Swap them: --site-color-bg: var(--site-inverse-color-bg)\n            @include cssvar.declare($prop, var(#{ $inv-name }));\n          }\n        }\n        // Force color and background-color if tokens are set\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n        @if ($color-token) {\n          color: cssvar.use($color-token);\n        }\n        @if ($bg-token) {\n          background-color: cssvar.use($bg-token);\n        }\n      }\n    }\n\n    // 3. The Fake Inversion Utility Class\n    // Can be used on elements that need a theme but that have colors that can't be updated (canvas charts for example)\n    // It inverts the items color, and then inverts/spins the element colors so they match the hue before inversion\n    // It also decreases the contrast slightly\n    @if (list.length($fake-selectors) > 0) {\n      #{ $fake-selectors } {\n        #{ $prefix }-fake-invert,\n        #{ $prefix }-dark-fake { // Legacy support\n          filter: var(--ulu-theme-fake-filter, none);\n          color: var(--ulu-theme-fake-color, inherit);\n          background-color: var(--ulu-theme-fake-background-color, transparent);\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 193
              }
            }
          },
          {
            "description": "Outputs base theme variables and classes\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('base', 'themes');\n\n  @if (list.length(themes.$tokens) > 0) {\n    $keys: themes.get-keys();\n    $default: themes.get(\"default\");\n    $prefix: selector.class(\"theme\");\n    $fake-selectors: ();\n    $inverses: themes.get(\"inverses\");\n    $inverse-prefix: selector.class(\"theme-inverse\");\n    $output-inverse: get(\"output-inverse\");\n    \n    // 1. Build Base Themes\n    @each $key in $keys {\n      $selectors: ();\n      $selectors: list.append($selectors, \"#{ $prefix }-#{ $key }\", comma);\n      \n      @if ($key == $default) {\n        $selectors: list.append($selectors, $root-selector, comma);\n      }\n\n      #{ $selectors } {\n        // Standard color-scheme and CSS vars\n        $color-scheme: themes.get-color-scheme($key);\n        @if ($color-scheme) {\n          color-scheme: #{ $color-scheme };\n        }\n        @include themes.declare($key);\n\n        // Force color and background-color if tokens are set\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n\n        @include -token-warning(\"token-color\", $key);\n        @include -token-warning(\"token-background-color\", $key);\n\n        @if ($color-token) {\n          color: cssvar.use($color-token);\n        }\n        @if ($bg-token) {\n          background-color: cssvar.use($bg-token);\n        }\n\n        // Optional Inverse Variables (Variable Swap Approach)\n        // Can use @scope in the future but for now we suffix -\"inverse\"\n        @if ($output-inverse) {\n          $inverse-key: map.get($inverses, $key);\n          @if ($inverse-key) {\n            $inv-scheme: themes.get-color-scheme($inverse-key);\n            @if ($inv-scheme) {\n              --ulu-inverse-color-scheme: #{ $inv-scheme };\n            }\n            \n            @each $prop, $theme-map in themes.$tokens {\n              @if (utils.is-map($theme-map)) {\n                $inv-value: map.get($theme-map, $inverse-key);\n                @if ($inv-value) {\n                  // Only output the inverse variable, not its fallback!\n                  @include cssvar.declare(\"inverse-#{$prop}\", $inv-value);\n                }\n              }\n            }\n          }\n        }\n\n        // Contextual trigger for the fake inversion utility\n        --ulu-theme-fake-filter: #{ get(\"fake-invert-filter\") };\n        \n        $fake-color: get(\"fake-invert-color\");\n        $fake-bg: inherit;\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n\n        @if ($output-inverse) {\n          $inverse-key: map.get($inverses, $key);\n          @if ($inverse-key) {\n            @if ($color-token) {\n              $fake-color: var(#{ cssvar.name(\"inverse-\" + $color-token) }, #{ $fake-color });\n            }\n            @if ($bg-token) {\n              $fake-bg: var(#{ cssvar.name(\"inverse-\" + $bg-token) }, white);\n            }\n          }\n        }\n\n        --ulu-theme-fake-color: #{ $fake-color };\n        --ulu-theme-fake-background-color: #{ $fake-bg };\n        \n        $fake-selectors: list.append($fake-selectors, $selectors, comma);\n\n        // Ensure fake utility applies to inverted themes\n        @if ($output-inverse) {\n          @each $current-theme, $inverse-target in $inverses {\n            @if ($inverse-target == $key) {\n               $fake-selectors: list.append($fake-selectors, \"#{ $prefix }-#{ $current-theme } #{ $inverse-prefix }\", comma);\n               @if ($current-theme == $default) {\n                 $fake-selectors: list.append($fake-selectors, \"#{ $root-selector } #{ $inverse-prefix }\", comma);\n               }\n            }\n          }\n        }\n      }\n    }\n\n    // 2. The Inverse Utility Class\n    @if ($output-inverse and list.length(map.keys($inverses)) > 0) {\n      #{ $inverse-prefix } {\n        color-scheme: var(--ulu-inverse-color-scheme, inherit);\n        @each $prop, $theme-map in themes.$tokens {\n          @if (utils.is-map($theme-map)) {\n            $inv-name: cssvar.name(\"inverse-\" + $prop);\n            // Swap them: --site-color-bg: var(--site-inverse-color-bg)\n            @include cssvar.declare($prop, var(#{ $inv-name }));\n          }\n        }\n        // Force color and background-color if tokens are set\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n        @if ($color-token) {\n          color: cssvar.use($color-token);\n        }\n        @if ($bg-token) {\n          background-color: cssvar.use($bg-token);\n        }\n      }\n    }\n\n    // 3. The Fake Inversion Utility Class\n    // Can be used on elements that need a theme but that have colors that can't be updated (canvas charts for example)\n    // It inverts the items color, and then inverts/spins the element colors so they match the hue before inversion\n    // It also decreases the contrast slightly\n    @if (list.length($fake-selectors) > 0) {\n      #{ $fake-selectors } {\n        #{ $prefix }-fake-invert,\n        #{ $prefix }-dark-fake { // Legacy support\n          filter: var(--ulu-theme-fake-filter, none);\n          color: var(--ulu-theme-fake-color, inherit);\n          background-color: var(--ulu-theme-fake-background-color, transparent);\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 193
              }
            }
          },
          {
            "description": "Outputs base theme variables and classes\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('base', 'themes');\n\n  @if (list.length(themes.$tokens) > 0) {\n    $keys: themes.get-keys();\n    $default: themes.get(\"default\");\n    $prefix: selector.class(\"theme\");\n    $fake-selectors: ();\n    $inverses: themes.get(\"inverses\");\n    $inverse-prefix: selector.class(\"theme-inverse\");\n    $output-inverse: get(\"output-inverse\");\n    \n    // 1. Build Base Themes\n    @each $key in $keys {\n      $selectors: ();\n      $selectors: list.append($selectors, \"#{ $prefix }-#{ $key }\", comma);\n      \n      @if ($key == $default) {\n        $selectors: list.append($selectors, $root-selector, comma);\n      }\n\n      #{ $selectors } {\n        // Standard color-scheme and CSS vars\n        $color-scheme: themes.get-color-scheme($key);\n        @if ($color-scheme) {\n          color-scheme: #{ $color-scheme };\n        }\n        @include themes.declare($key);\n\n        // Force color and background-color if tokens are set\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n\n        @include -token-warning(\"token-color\", $key);\n        @include -token-warning(\"token-background-color\", $key);\n\n        @if ($color-token) {\n          color: cssvar.use($color-token);\n        }\n        @if ($bg-token) {\n          background-color: cssvar.use($bg-token);\n        }\n\n        // Optional Inverse Variables (Variable Swap Approach)\n        // Can use @scope in the future but for now we suffix -\"inverse\"\n        @if ($output-inverse) {\n          $inverse-key: map.get($inverses, $key);\n          @if ($inverse-key) {\n            $inv-scheme: themes.get-color-scheme($inverse-key);\n            @if ($inv-scheme) {\n              --ulu-inverse-color-scheme: #{ $inv-scheme };\n            }\n            \n            @each $prop, $theme-map in themes.$tokens {\n              @if (utils.is-map($theme-map)) {\n                $inv-value: map.get($theme-map, $inverse-key);\n                @if ($inv-value) {\n                  // Only output the inverse variable, not its fallback!\n                  @include cssvar.declare(\"inverse-#{$prop}\", $inv-value);\n                }\n              }\n            }\n          }\n        }\n\n        // Contextual trigger for the fake inversion utility\n        --ulu-theme-fake-filter: #{ get(\"fake-invert-filter\") };\n        \n        $fake-color: get(\"fake-invert-color\");\n        $fake-bg: inherit;\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n\n        @if ($output-inverse) {\n          $inverse-key: map.get($inverses, $key);\n          @if ($inverse-key) {\n            @if ($color-token) {\n              $fake-color: var(#{ cssvar.name(\"inverse-\" + $color-token) }, #{ $fake-color });\n            }\n            @if ($bg-token) {\n              $fake-bg: var(#{ cssvar.name(\"inverse-\" + $bg-token) }, white);\n            }\n          }\n        }\n\n        --ulu-theme-fake-color: #{ $fake-color };\n        --ulu-theme-fake-background-color: #{ $fake-bg };\n        \n        $fake-selectors: list.append($fake-selectors, $selectors, comma);\n\n        // Ensure fake utility applies to inverted themes\n        @if ($output-inverse) {\n          @each $current-theme, $inverse-target in $inverses {\n            @if ($inverse-target == $key) {\n               $fake-selectors: list.append($fake-selectors, \"#{ $prefix }-#{ $current-theme } #{ $inverse-prefix }\", comma);\n               @if ($current-theme == $default) {\n                 $fake-selectors: list.append($fake-selectors, \"#{ $root-selector } #{ $inverse-prefix }\", comma);\n               }\n            }\n          }\n        }\n      }\n    }\n\n    // 2. The Inverse Utility Class\n    @if ($output-inverse and list.length(map.keys($inverses)) > 0) {\n      #{ $inverse-prefix } {\n        color-scheme: var(--ulu-inverse-color-scheme, inherit);\n        @each $prop, $theme-map in themes.$tokens {\n          @if (utils.is-map($theme-map)) {\n            $inv-name: cssvar.name(\"inverse-\" + $prop);\n            // Swap them: --site-color-bg: var(--site-inverse-color-bg)\n            @include cssvar.declare($prop, var(#{ $inv-name }));\n          }\n        }\n        // Force color and background-color if tokens are set\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n        @if ($color-token) {\n          color: cssvar.use($color-token);\n        }\n        @if ($bg-token) {\n          background-color: cssvar.use($bg-token);\n        }\n      }\n    }\n\n    // 3. The Fake Inversion Utility Class\n    // Can be used on elements that need a theme but that have colors that can't be updated (canvas charts for example)\n    // It inverts the items color, and then inverts/spins the element colors so they match the hue before inversion\n    // It also decreases the contrast slightly\n    @if (list.length($fake-selectors) > 0) {\n      #{ $fake-selectors } {\n        #{ $prefix }-fake-invert,\n        #{ $prefix }-dark-fake { // Legacy support\n          filter: var(--ulu-theme-fake-filter, none);\n          color: var(--ulu-theme-fake-color, inherit);\n          background-color: var(--ulu-theme-fake-background-color, transparent);\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 193
              }
            }
          },
          {
            "description": "Outputs base theme variables and classes\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('base', 'themes');\n\n  @if (list.length(themes.$tokens) > 0) {\n    $keys: themes.get-keys();\n    $default: themes.get(\"default\");\n    $prefix: selector.class(\"theme\");\n    $fake-selectors: ();\n    $inverses: themes.get(\"inverses\");\n    $inverse-prefix: selector.class(\"theme-inverse\");\n    $output-inverse: get(\"output-inverse\");\n    \n    // 1. Build Base Themes\n    @each $key in $keys {\n      $selectors: ();\n      $selectors: list.append($selectors, \"#{ $prefix }-#{ $key }\", comma);\n      \n      @if ($key == $default) {\n        $selectors: list.append($selectors, $root-selector, comma);\n      }\n\n      #{ $selectors } {\n        // Standard color-scheme and CSS vars\n        $color-scheme: themes.get-color-scheme($key);\n        @if ($color-scheme) {\n          color-scheme: #{ $color-scheme };\n        }\n        @include themes.declare($key);\n\n        // Force color and background-color if tokens are set\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n\n        @include -token-warning(\"token-color\", $key);\n        @include -token-warning(\"token-background-color\", $key);\n\n        @if ($color-token) {\n          color: cssvar.use($color-token);\n        }\n        @if ($bg-token) {\n          background-color: cssvar.use($bg-token);\n        }\n\n        // Optional Inverse Variables (Variable Swap Approach)\n        // Can use @scope in the future but for now we suffix -\"inverse\"\n        @if ($output-inverse) {\n          $inverse-key: map.get($inverses, $key);\n          @if ($inverse-key) {\n            $inv-scheme: themes.get-color-scheme($inverse-key);\n            @if ($inv-scheme) {\n              --ulu-inverse-color-scheme: #{ $inv-scheme };\n            }\n            \n            @each $prop, $theme-map in themes.$tokens {\n              @if (utils.is-map($theme-map)) {\n                $inv-value: map.get($theme-map, $inverse-key);\n                @if ($inv-value) {\n                  // Only output the inverse variable, not its fallback!\n                  @include cssvar.declare(\"inverse-#{$prop}\", $inv-value);\n                }\n              }\n            }\n          }\n        }\n\n        // Contextual trigger for the fake inversion utility\n        --ulu-theme-fake-filter: #{ get(\"fake-invert-filter\") };\n        \n        $fake-color: get(\"fake-invert-color\");\n        $fake-bg: inherit;\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n\n        @if ($output-inverse) {\n          $inverse-key: map.get($inverses, $key);\n          @if ($inverse-key) {\n            @if ($color-token) {\n              $fake-color: var(#{ cssvar.name(\"inverse-\" + $color-token) }, #{ $fake-color });\n            }\n            @if ($bg-token) {\n              $fake-bg: var(#{ cssvar.name(\"inverse-\" + $bg-token) }, white);\n            }\n          }\n        }\n\n        --ulu-theme-fake-color: #{ $fake-color };\n        --ulu-theme-fake-background-color: #{ $fake-bg };\n        \n        $fake-selectors: list.append($fake-selectors, $selectors, comma);\n\n        // Ensure fake utility applies to inverted themes\n        @if ($output-inverse) {\n          @each $current-theme, $inverse-target in $inverses {\n            @if ($inverse-target == $key) {\n               $fake-selectors: list.append($fake-selectors, \"#{ $prefix }-#{ $current-theme } #{ $inverse-prefix }\", comma);\n               @if ($current-theme == $default) {\n                 $fake-selectors: list.append($fake-selectors, \"#{ $root-selector } #{ $inverse-prefix }\", comma);\n               }\n            }\n          }\n        }\n      }\n    }\n\n    // 2. The Inverse Utility Class\n    @if ($output-inverse and list.length(map.keys($inverses)) > 0) {\n      #{ $inverse-prefix } {\n        color-scheme: var(--ulu-inverse-color-scheme, inherit);\n        @each $prop, $theme-map in themes.$tokens {\n          @if (utils.is-map($theme-map)) {\n            $inv-name: cssvar.name(\"inverse-\" + $prop);\n            // Swap them: --site-color-bg: var(--site-inverse-color-bg)\n            @include cssvar.declare($prop, var(#{ $inv-name }));\n          }\n        }\n        // Force color and background-color if tokens are set\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n        @if ($color-token) {\n          color: cssvar.use($color-token);\n        }\n        @if ($bg-token) {\n          background-color: cssvar.use($bg-token);\n        }\n      }\n    }\n\n    // 3. The Fake Inversion Utility Class\n    // Can be used on elements that need a theme but that have colors that can't be updated (canvas charts for example)\n    // It inverts the items color, and then inverts/spins the element colors so they match the hue before inversion\n    // It also decreases the contrast slightly\n    @if (list.length($fake-selectors) > 0) {\n      #{ $fake-selectors } {\n        #{ $prefix }-fake-invert,\n        #{ $prefix }-dark-fake { // Legacy support\n          filter: var(--ulu-theme-fake-filter, none);\n          color: var(--ulu-theme-fake-color, inherit);\n          background-color: var(--ulu-theme-fake-background-color, transparent);\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 193
              }
            }
          },
          {
            "description": "Outputs base theme variables and classes\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('base', 'themes');\n\n  @if (list.length(themes.$tokens) > 0) {\n    $keys: themes.get-keys();\n    $default: themes.get(\"default\");\n    $prefix: selector.class(\"theme\");\n    $fake-selectors: ();\n    $inverses: themes.get(\"inverses\");\n    $inverse-prefix: selector.class(\"theme-inverse\");\n    $output-inverse: get(\"output-inverse\");\n    \n    // 1. Build Base Themes\n    @each $key in $keys {\n      $selectors: ();\n      $selectors: list.append($selectors, \"#{ $prefix }-#{ $key }\", comma);\n      \n      @if ($key == $default) {\n        $selectors: list.append($selectors, $root-selector, comma);\n      }\n\n      #{ $selectors } {\n        // Standard color-scheme and CSS vars\n        $color-scheme: themes.get-color-scheme($key);\n        @if ($color-scheme) {\n          color-scheme: #{ $color-scheme };\n        }\n        @include themes.declare($key);\n\n        // Force color and background-color if tokens are set\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n\n        @include -token-warning(\"token-color\", $key);\n        @include -token-warning(\"token-background-color\", $key);\n\n        @if ($color-token) {\n          color: cssvar.use($color-token);\n        }\n        @if ($bg-token) {\n          background-color: cssvar.use($bg-token);\n        }\n\n        // Optional Inverse Variables (Variable Swap Approach)\n        // Can use @scope in the future but for now we suffix -\"inverse\"\n        @if ($output-inverse) {\n          $inverse-key: map.get($inverses, $key);\n          @if ($inverse-key) {\n            $inv-scheme: themes.get-color-scheme($inverse-key);\n            @if ($inv-scheme) {\n              --ulu-inverse-color-scheme: #{ $inv-scheme };\n            }\n            \n            @each $prop, $theme-map in themes.$tokens {\n              @if (utils.is-map($theme-map)) {\n                $inv-value: map.get($theme-map, $inverse-key);\n                @if ($inv-value) {\n                  // Only output the inverse variable, not its fallback!\n                  @include cssvar.declare(\"inverse-#{$prop}\", $inv-value);\n                }\n              }\n            }\n          }\n        }\n\n        // Contextual trigger for the fake inversion utility\n        --ulu-theme-fake-filter: #{ get(\"fake-invert-filter\") };\n        \n        $fake-color: get(\"fake-invert-color\");\n        $fake-bg: inherit;\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n\n        @if ($output-inverse) {\n          $inverse-key: map.get($inverses, $key);\n          @if ($inverse-key) {\n            @if ($color-token) {\n              $fake-color: var(#{ cssvar.name(\"inverse-\" + $color-token) }, #{ $fake-color });\n            }\n            @if ($bg-token) {\n              $fake-bg: var(#{ cssvar.name(\"inverse-\" + $bg-token) }, white);\n            }\n          }\n        }\n\n        --ulu-theme-fake-color: #{ $fake-color };\n        --ulu-theme-fake-background-color: #{ $fake-bg };\n        \n        $fake-selectors: list.append($fake-selectors, $selectors, comma);\n\n        // Ensure fake utility applies to inverted themes\n        @if ($output-inverse) {\n          @each $current-theme, $inverse-target in $inverses {\n            @if ($inverse-target == $key) {\n               $fake-selectors: list.append($fake-selectors, \"#{ $prefix }-#{ $current-theme } #{ $inverse-prefix }\", comma);\n               @if ($current-theme == $default) {\n                 $fake-selectors: list.append($fake-selectors, \"#{ $root-selector } #{ $inverse-prefix }\", comma);\n               }\n            }\n          }\n        }\n      }\n    }\n\n    // 2. The Inverse Utility Class\n    @if ($output-inverse and list.length(map.keys($inverses)) > 0) {\n      #{ $inverse-prefix } {\n        color-scheme: var(--ulu-inverse-color-scheme, inherit);\n        @each $prop, $theme-map in themes.$tokens {\n          @if (utils.is-map($theme-map)) {\n            $inv-name: cssvar.name(\"inverse-\" + $prop);\n            // Swap them: --site-color-bg: var(--site-inverse-color-bg)\n            @include cssvar.declare($prop, var(#{ $inv-name }));\n          }\n        }\n        // Force color and background-color if tokens are set\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n        @if ($color-token) {\n          color: cssvar.use($color-token);\n        }\n        @if ($bg-token) {\n          background-color: cssvar.use($bg-token);\n        }\n      }\n    }\n\n    // 3. The Fake Inversion Utility Class\n    // Can be used on elements that need a theme but that have colors that can't be updated (canvas charts for example)\n    // It inverts the items color, and then inverts/spins the element colors so they match the hue before inversion\n    // It also decreases the contrast slightly\n    @if (list.length($fake-selectors) > 0) {\n      #{ $fake-selectors } {\n        #{ $prefix }-fake-invert,\n        #{ $prefix }-dark-fake { // Legacy support\n          filter: var(--ulu-theme-fake-filter, none);\n          color: var(--ulu-theme-fake-color, inherit);\n          background-color: var(--ulu-theme-fake-background-color, transparent);\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 193
              }
            }
          },
          {
            "description": "Outputs base theme variables and classes\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('base', 'themes');\n\n  @if (list.length(themes.$tokens) > 0) {\n    $keys: themes.get-keys();\n    $default: themes.get(\"default\");\n    $prefix: selector.class(\"theme\");\n    $fake-selectors: ();\n    $inverses: themes.get(\"inverses\");\n    $inverse-prefix: selector.class(\"theme-inverse\");\n    $output-inverse: get(\"output-inverse\");\n    \n    // 1. Build Base Themes\n    @each $key in $keys {\n      $selectors: ();\n      $selectors: list.append($selectors, \"#{ $prefix }-#{ $key }\", comma);\n      \n      @if ($key == $default) {\n        $selectors: list.append($selectors, $root-selector, comma);\n      }\n\n      #{ $selectors } {\n        // Standard color-scheme and CSS vars\n        $color-scheme: themes.get-color-scheme($key);\n        @if ($color-scheme) {\n          color-scheme: #{ $color-scheme };\n        }\n        @include themes.declare($key);\n\n        // Force color and background-color if tokens are set\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n\n        @include -token-warning(\"token-color\", $key);\n        @include -token-warning(\"token-background-color\", $key);\n\n        @if ($color-token) {\n          color: cssvar.use($color-token);\n        }\n        @if ($bg-token) {\n          background-color: cssvar.use($bg-token);\n        }\n\n        // Optional Inverse Variables (Variable Swap Approach)\n        // Can use @scope in the future but for now we suffix -\"inverse\"\n        @if ($output-inverse) {\n          $inverse-key: map.get($inverses, $key);\n          @if ($inverse-key) {\n            $inv-scheme: themes.get-color-scheme($inverse-key);\n            @if ($inv-scheme) {\n              --ulu-inverse-color-scheme: #{ $inv-scheme };\n            }\n            \n            @each $prop, $theme-map in themes.$tokens {\n              @if (utils.is-map($theme-map)) {\n                $inv-value: map.get($theme-map, $inverse-key);\n                @if ($inv-value) {\n                  // Only output the inverse variable, not its fallback!\n                  @include cssvar.declare(\"inverse-#{$prop}\", $inv-value);\n                }\n              }\n            }\n          }\n        }\n\n        // Contextual trigger for the fake inversion utility\n        --ulu-theme-fake-filter: #{ get(\"fake-invert-filter\") };\n        \n        $fake-color: get(\"fake-invert-color\");\n        $fake-bg: inherit;\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n\n        @if ($output-inverse) {\n          $inverse-key: map.get($inverses, $key);\n          @if ($inverse-key) {\n            @if ($color-token) {\n              $fake-color: var(#{ cssvar.name(\"inverse-\" + $color-token) }, #{ $fake-color });\n            }\n            @if ($bg-token) {\n              $fake-bg: var(#{ cssvar.name(\"inverse-\" + $bg-token) }, white);\n            }\n          }\n        }\n\n        --ulu-theme-fake-color: #{ $fake-color };\n        --ulu-theme-fake-background-color: #{ $fake-bg };\n        \n        $fake-selectors: list.append($fake-selectors, $selectors, comma);\n\n        // Ensure fake utility applies to inverted themes\n        @if ($output-inverse) {\n          @each $current-theme, $inverse-target in $inverses {\n            @if ($inverse-target == $key) {\n               $fake-selectors: list.append($fake-selectors, \"#{ $prefix }-#{ $current-theme } #{ $inverse-prefix }\", comma);\n               @if ($current-theme == $default) {\n                 $fake-selectors: list.append($fake-selectors, \"#{ $root-selector } #{ $inverse-prefix }\", comma);\n               }\n            }\n          }\n        }\n      }\n    }\n\n    // 2. The Inverse Utility Class\n    @if ($output-inverse and list.length(map.keys($inverses)) > 0) {\n      #{ $inverse-prefix } {\n        color-scheme: var(--ulu-inverse-color-scheme, inherit);\n        @each $prop, $theme-map in themes.$tokens {\n          @if (utils.is-map($theme-map)) {\n            $inv-name: cssvar.name(\"inverse-\" + $prop);\n            // Swap them: --site-color-bg: var(--site-inverse-color-bg)\n            @include cssvar.declare($prop, var(#{ $inv-name }));\n          }\n        }\n        // Force color and background-color if tokens are set\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n        @if ($color-token) {\n          color: cssvar.use($color-token);\n        }\n        @if ($bg-token) {\n          background-color: cssvar.use($bg-token);\n        }\n      }\n    }\n\n    // 3. The Fake Inversion Utility Class\n    // Can be used on elements that need a theme but that have colors that can't be updated (canvas charts for example)\n    // It inverts the items color, and then inverts/spins the element colors so they match the hue before inversion\n    // It also decreases the contrast slightly\n    @if (list.length($fake-selectors) > 0) {\n      #{ $fake-selectors } {\n        #{ $prefix }-fake-invert,\n        #{ $prefix }-dark-fake { // Legacy support\n          filter: var(--ulu-theme-fake-filter, none);\n          color: var(--ulu-theme-fake-color, inherit);\n          background-color: var(--ulu-theme-fake-background-color, transparent);\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 193
              }
            }
          },
          {
            "description": "Outputs base theme variables and classes\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('base', 'themes');\n\n  @if (list.length(themes.$tokens) > 0) {\n    $keys: themes.get-keys();\n    $default: themes.get(\"default\");\n    $prefix: selector.class(\"theme\");\n    $fake-selectors: ();\n    $inverses: themes.get(\"inverses\");\n    $inverse-prefix: selector.class(\"theme-inverse\");\n    $output-inverse: get(\"output-inverse\");\n    \n    // 1. Build Base Themes\n    @each $key in $keys {\n      $selectors: ();\n      $selectors: list.append($selectors, \"#{ $prefix }-#{ $key }\", comma);\n      \n      @if ($key == $default) {\n        $selectors: list.append($selectors, $root-selector, comma);\n      }\n\n      #{ $selectors } {\n        // Standard color-scheme and CSS vars\n        $color-scheme: themes.get-color-scheme($key);\n        @if ($color-scheme) {\n          color-scheme: #{ $color-scheme };\n        }\n        @include themes.declare($key);\n\n        // Force color and background-color if tokens are set\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n\n        @include -token-warning(\"token-color\", $key);\n        @include -token-warning(\"token-background-color\", $key);\n\n        @if ($color-token) {\n          color: cssvar.use($color-token);\n        }\n        @if ($bg-token) {\n          background-color: cssvar.use($bg-token);\n        }\n\n        // Optional Inverse Variables (Variable Swap Approach)\n        // Can use @scope in the future but for now we suffix -\"inverse\"\n        @if ($output-inverse) {\n          $inverse-key: map.get($inverses, $key);\n          @if ($inverse-key) {\n            $inv-scheme: themes.get-color-scheme($inverse-key);\n            @if ($inv-scheme) {\n              --ulu-inverse-color-scheme: #{ $inv-scheme };\n            }\n            \n            @each $prop, $theme-map in themes.$tokens {\n              @if (utils.is-map($theme-map)) {\n                $inv-value: map.get($theme-map, $inverse-key);\n                @if ($inv-value) {\n                  // Only output the inverse variable, not its fallback!\n                  @include cssvar.declare(\"inverse-#{$prop}\", $inv-value);\n                }\n              }\n            }\n          }\n        }\n\n        // Contextual trigger for the fake inversion utility\n        --ulu-theme-fake-filter: #{ get(\"fake-invert-filter\") };\n        \n        $fake-color: get(\"fake-invert-color\");\n        $fake-bg: inherit;\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n\n        @if ($output-inverse) {\n          $inverse-key: map.get($inverses, $key);\n          @if ($inverse-key) {\n            @if ($color-token) {\n              $fake-color: var(#{ cssvar.name(\"inverse-\" + $color-token) }, #{ $fake-color });\n            }\n            @if ($bg-token) {\n              $fake-bg: var(#{ cssvar.name(\"inverse-\" + $bg-token) }, white);\n            }\n          }\n        }\n\n        --ulu-theme-fake-color: #{ $fake-color };\n        --ulu-theme-fake-background-color: #{ $fake-bg };\n        \n        $fake-selectors: list.append($fake-selectors, $selectors, comma);\n\n        // Ensure fake utility applies to inverted themes\n        @if ($output-inverse) {\n          @each $current-theme, $inverse-target in $inverses {\n            @if ($inverse-target == $key) {\n               $fake-selectors: list.append($fake-selectors, \"#{ $prefix }-#{ $current-theme } #{ $inverse-prefix }\", comma);\n               @if ($current-theme == $default) {\n                 $fake-selectors: list.append($fake-selectors, \"#{ $root-selector } #{ $inverse-prefix }\", comma);\n               }\n            }\n          }\n        }\n      }\n    }\n\n    // 2. The Inverse Utility Class\n    @if ($output-inverse and list.length(map.keys($inverses)) > 0) {\n      #{ $inverse-prefix } {\n        color-scheme: var(--ulu-inverse-color-scheme, inherit);\n        @each $prop, $theme-map in themes.$tokens {\n          @if (utils.is-map($theme-map)) {\n            $inv-name: cssvar.name(\"inverse-\" + $prop);\n            // Swap them: --site-color-bg: var(--site-inverse-color-bg)\n            @include cssvar.declare($prop, var(#{ $inv-name }));\n          }\n        }\n        // Force color and background-color if tokens are set\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n        @if ($color-token) {\n          color: cssvar.use($color-token);\n        }\n        @if ($bg-token) {\n          background-color: cssvar.use($bg-token);\n        }\n      }\n    }\n\n    // 3. The Fake Inversion Utility Class\n    // Can be used on elements that need a theme but that have colors that can't be updated (canvas charts for example)\n    // It inverts the items color, and then inverts/spins the element colors so they match the hue before inversion\n    // It also decreases the contrast slightly\n    @if (list.length($fake-selectors) > 0) {\n      #{ $fake-selectors } {\n        #{ $prefix }-fake-invert,\n        #{ $prefix }-dark-fake { // Legacy support\n          filter: var(--ulu-theme-fake-filter, none);\n          color: var(--ulu-theme-fake-color, inherit);\n          background-color: var(--ulu-theme-fake-background-color, transparent);\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 193
              }
            }
          },
          {
            "description": "Outputs base theme variables and classes\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('base', 'themes');\n\n  @if (list.length(themes.$tokens) > 0) {\n    $keys: themes.get-keys();\n    $default: themes.get(\"default\");\n    $prefix: selector.class(\"theme\");\n    $fake-selectors: ();\n    $inverses: themes.get(\"inverses\");\n    $inverse-prefix: selector.class(\"theme-inverse\");\n    $output-inverse: get(\"output-inverse\");\n    \n    // 1. Build Base Themes\n    @each $key in $keys {\n      $selectors: ();\n      $selectors: list.append($selectors, \"#{ $prefix }-#{ $key }\", comma);\n      \n      @if ($key == $default) {\n        $selectors: list.append($selectors, $root-selector, comma);\n      }\n\n      #{ $selectors } {\n        // Standard color-scheme and CSS vars\n        $color-scheme: themes.get-color-scheme($key);\n        @if ($color-scheme) {\n          color-scheme: #{ $color-scheme };\n        }\n        @include themes.declare($key);\n\n        // Force color and background-color if tokens are set\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n\n        @include -token-warning(\"token-color\", $key);\n        @include -token-warning(\"token-background-color\", $key);\n\n        @if ($color-token) {\n          color: cssvar.use($color-token);\n        }\n        @if ($bg-token) {\n          background-color: cssvar.use($bg-token);\n        }\n\n        // Optional Inverse Variables (Variable Swap Approach)\n        // Can use @scope in the future but for now we suffix -\"inverse\"\n        @if ($output-inverse) {\n          $inverse-key: map.get($inverses, $key);\n          @if ($inverse-key) {\n            $inv-scheme: themes.get-color-scheme($inverse-key);\n            @if ($inv-scheme) {\n              --ulu-inverse-color-scheme: #{ $inv-scheme };\n            }\n            \n            @each $prop, $theme-map in themes.$tokens {\n              @if (utils.is-map($theme-map)) {\n                $inv-value: map.get($theme-map, $inverse-key);\n                @if ($inv-value) {\n                  // Only output the inverse variable, not its fallback!\n                  @include cssvar.declare(\"inverse-#{$prop}\", $inv-value);\n                }\n              }\n            }\n          }\n        }\n\n        // Contextual trigger for the fake inversion utility\n        --ulu-theme-fake-filter: #{ get(\"fake-invert-filter\") };\n        \n        $fake-color: get(\"fake-invert-color\");\n        $fake-bg: inherit;\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n\n        @if ($output-inverse) {\n          $inverse-key: map.get($inverses, $key);\n          @if ($inverse-key) {\n            @if ($color-token) {\n              $fake-color: var(#{ cssvar.name(\"inverse-\" + $color-token) }, #{ $fake-color });\n            }\n            @if ($bg-token) {\n              $fake-bg: var(#{ cssvar.name(\"inverse-\" + $bg-token) }, white);\n            }\n          }\n        }\n\n        --ulu-theme-fake-color: #{ $fake-color };\n        --ulu-theme-fake-background-color: #{ $fake-bg };\n        \n        $fake-selectors: list.append($fake-selectors, $selectors, comma);\n\n        // Ensure fake utility applies to inverted themes\n        @if ($output-inverse) {\n          @each $current-theme, $inverse-target in $inverses {\n            @if ($inverse-target == $key) {\n               $fake-selectors: list.append($fake-selectors, \"#{ $prefix }-#{ $current-theme } #{ $inverse-prefix }\", comma);\n               @if ($current-theme == $default) {\n                 $fake-selectors: list.append($fake-selectors, \"#{ $root-selector } #{ $inverse-prefix }\", comma);\n               }\n            }\n          }\n        }\n      }\n    }\n\n    // 2. The Inverse Utility Class\n    @if ($output-inverse and list.length(map.keys($inverses)) > 0) {\n      #{ $inverse-prefix } {\n        color-scheme: var(--ulu-inverse-color-scheme, inherit);\n        @each $prop, $theme-map in themes.$tokens {\n          @if (utils.is-map($theme-map)) {\n            $inv-name: cssvar.name(\"inverse-\" + $prop);\n            // Swap them: --site-color-bg: var(--site-inverse-color-bg)\n            @include cssvar.declare($prop, var(#{ $inv-name }));\n          }\n        }\n        // Force color and background-color if tokens are set\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n        @if ($color-token) {\n          color: cssvar.use($color-token);\n        }\n        @if ($bg-token) {\n          background-color: cssvar.use($bg-token);\n        }\n      }\n    }\n\n    // 3. The Fake Inversion Utility Class\n    // Can be used on elements that need a theme but that have colors that can't be updated (canvas charts for example)\n    // It inverts the items color, and then inverts/spins the element colors so they match the hue before inversion\n    // It also decreases the contrast slightly\n    @if (list.length($fake-selectors) > 0) {\n      #{ $fake-selectors } {\n        #{ $prefix }-fake-invert,\n        #{ $prefix }-dark-fake { // Legacy support\n          filter: var(--ulu-theme-fake-filter, none);\n          color: var(--ulu-theme-fake-color, inherit);\n          background-color: var(--ulu-theme-fake-background-color, transparent);\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 193
              }
            }
          },
          {
            "description": "Outputs base theme variables and classes\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('base', 'themes');\n\n  @if (list.length(themes.$tokens) > 0) {\n    $keys: themes.get-keys();\n    $default: themes.get(\"default\");\n    $prefix: selector.class(\"theme\");\n    $fake-selectors: ();\n    $inverses: themes.get(\"inverses\");\n    $inverse-prefix: selector.class(\"theme-inverse\");\n    $output-inverse: get(\"output-inverse\");\n    \n    // 1. Build Base Themes\n    @each $key in $keys {\n      $selectors: ();\n      $selectors: list.append($selectors, \"#{ $prefix }-#{ $key }\", comma);\n      \n      @if ($key == $default) {\n        $selectors: list.append($selectors, $root-selector, comma);\n      }\n\n      #{ $selectors } {\n        // Standard color-scheme and CSS vars\n        $color-scheme: themes.get-color-scheme($key);\n        @if ($color-scheme) {\n          color-scheme: #{ $color-scheme };\n        }\n        @include themes.declare($key);\n\n        // Force color and background-color if tokens are set\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n\n        @include -token-warning(\"token-color\", $key);\n        @include -token-warning(\"token-background-color\", $key);\n\n        @if ($color-token) {\n          color: cssvar.use($color-token);\n        }\n        @if ($bg-token) {\n          background-color: cssvar.use($bg-token);\n        }\n\n        // Optional Inverse Variables (Variable Swap Approach)\n        // Can use @scope in the future but for now we suffix -\"inverse\"\n        @if ($output-inverse) {\n          $inverse-key: map.get($inverses, $key);\n          @if ($inverse-key) {\n            $inv-scheme: themes.get-color-scheme($inverse-key);\n            @if ($inv-scheme) {\n              --ulu-inverse-color-scheme: #{ $inv-scheme };\n            }\n            \n            @each $prop, $theme-map in themes.$tokens {\n              @if (utils.is-map($theme-map)) {\n                $inv-value: map.get($theme-map, $inverse-key);\n                @if ($inv-value) {\n                  // Only output the inverse variable, not its fallback!\n                  @include cssvar.declare(\"inverse-#{$prop}\", $inv-value);\n                }\n              }\n            }\n          }\n        }\n\n        // Contextual trigger for the fake inversion utility\n        --ulu-theme-fake-filter: #{ get(\"fake-invert-filter\") };\n        \n        $fake-color: get(\"fake-invert-color\");\n        $fake-bg: inherit;\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n\n        @if ($output-inverse) {\n          $inverse-key: map.get($inverses, $key);\n          @if ($inverse-key) {\n            @if ($color-token) {\n              $fake-color: var(#{ cssvar.name(\"inverse-\" + $color-token) }, #{ $fake-color });\n            }\n            @if ($bg-token) {\n              $fake-bg: var(#{ cssvar.name(\"inverse-\" + $bg-token) }, white);\n            }\n          }\n        }\n\n        --ulu-theme-fake-color: #{ $fake-color };\n        --ulu-theme-fake-background-color: #{ $fake-bg };\n        \n        $fake-selectors: list.append($fake-selectors, $selectors, comma);\n\n        // Ensure fake utility applies to inverted themes\n        @if ($output-inverse) {\n          @each $current-theme, $inverse-target in $inverses {\n            @if ($inverse-target == $key) {\n               $fake-selectors: list.append($fake-selectors, \"#{ $prefix }-#{ $current-theme } #{ $inverse-prefix }\", comma);\n               @if ($current-theme == $default) {\n                 $fake-selectors: list.append($fake-selectors, \"#{ $root-selector } #{ $inverse-prefix }\", comma);\n               }\n            }\n          }\n        }\n      }\n    }\n\n    // 2. The Inverse Utility Class\n    @if ($output-inverse and list.length(map.keys($inverses)) > 0) {\n      #{ $inverse-prefix } {\n        color-scheme: var(--ulu-inverse-color-scheme, inherit);\n        @each $prop, $theme-map in themes.$tokens {\n          @if (utils.is-map($theme-map)) {\n            $inv-name: cssvar.name(\"inverse-\" + $prop);\n            // Swap them: --site-color-bg: var(--site-inverse-color-bg)\n            @include cssvar.declare($prop, var(#{ $inv-name }));\n          }\n        }\n        // Force color and background-color if tokens are set\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n        @if ($color-token) {\n          color: cssvar.use($color-token);\n        }\n        @if ($bg-token) {\n          background-color: cssvar.use($bg-token);\n        }\n      }\n    }\n\n    // 3. The Fake Inversion Utility Class\n    // Can be used on elements that need a theme but that have colors that can't be updated (canvas charts for example)\n    // It inverts the items color, and then inverts/spins the element colors so they match the hue before inversion\n    // It also decreases the contrast slightly\n    @if (list.length($fake-selectors) > 0) {\n      #{ $fake-selectors } {\n        #{ $prefix }-fake-invert,\n        #{ $prefix }-dark-fake { // Legacy support\n          filter: var(--ulu-theme-fake-filter, none);\n          color: var(--ulu-theme-fake-color, inherit);\n          background-color: var(--ulu-theme-fake-background-color, transparent);\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 193
              }
            }
          },
          {
            "description": "Outputs base theme variables and classes\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('base', 'themes');\n\n  @if (list.length(themes.$tokens) > 0) {\n    $keys: themes.get-keys();\n    $default: themes.get(\"default\");\n    $prefix: selector.class(\"theme\");\n    $fake-selectors: ();\n    $inverses: themes.get(\"inverses\");\n    $inverse-prefix: selector.class(\"theme-inverse\");\n    $output-inverse: get(\"output-inverse\");\n    \n    // 1. Build Base Themes\n    @each $key in $keys {\n      $selectors: ();\n      $selectors: list.append($selectors, \"#{ $prefix }-#{ $key }\", comma);\n      \n      @if ($key == $default) {\n        $selectors: list.append($selectors, $root-selector, comma);\n      }\n\n      #{ $selectors } {\n        // Standard color-scheme and CSS vars\n        $color-scheme: themes.get-color-scheme($key);\n        @if ($color-scheme) {\n          color-scheme: #{ $color-scheme };\n        }\n        @include themes.declare($key);\n\n        // Force color and background-color if tokens are set\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n\n        @include -token-warning(\"token-color\", $key);\n        @include -token-warning(\"token-background-color\", $key);\n\n        @if ($color-token) {\n          color: cssvar.use($color-token);\n        }\n        @if ($bg-token) {\n          background-color: cssvar.use($bg-token);\n        }\n\n        // Optional Inverse Variables (Variable Swap Approach)\n        // Can use @scope in the future but for now we suffix -\"inverse\"\n        @if ($output-inverse) {\n          $inverse-key: map.get($inverses, $key);\n          @if ($inverse-key) {\n            $inv-scheme: themes.get-color-scheme($inverse-key);\n            @if ($inv-scheme) {\n              --ulu-inverse-color-scheme: #{ $inv-scheme };\n            }\n            \n            @each $prop, $theme-map in themes.$tokens {\n              @if (utils.is-map($theme-map)) {\n                $inv-value: map.get($theme-map, $inverse-key);\n                @if ($inv-value) {\n                  // Only output the inverse variable, not its fallback!\n                  @include cssvar.declare(\"inverse-#{$prop}\", $inv-value);\n                }\n              }\n            }\n          }\n        }\n\n        // Contextual trigger for the fake inversion utility\n        --ulu-theme-fake-filter: #{ get(\"fake-invert-filter\") };\n        \n        $fake-color: get(\"fake-invert-color\");\n        $fake-bg: inherit;\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n\n        @if ($output-inverse) {\n          $inverse-key: map.get($inverses, $key);\n          @if ($inverse-key) {\n            @if ($color-token) {\n              $fake-color: var(#{ cssvar.name(\"inverse-\" + $color-token) }, #{ $fake-color });\n            }\n            @if ($bg-token) {\n              $fake-bg: var(#{ cssvar.name(\"inverse-\" + $bg-token) }, white);\n            }\n          }\n        }\n\n        --ulu-theme-fake-color: #{ $fake-color };\n        --ulu-theme-fake-background-color: #{ $fake-bg };\n        \n        $fake-selectors: list.append($fake-selectors, $selectors, comma);\n\n        // Ensure fake utility applies to inverted themes\n        @if ($output-inverse) {\n          @each $current-theme, $inverse-target in $inverses {\n            @if ($inverse-target == $key) {\n               $fake-selectors: list.append($fake-selectors, \"#{ $prefix }-#{ $current-theme } #{ $inverse-prefix }\", comma);\n               @if ($current-theme == $default) {\n                 $fake-selectors: list.append($fake-selectors, \"#{ $root-selector } #{ $inverse-prefix }\", comma);\n               }\n            }\n          }\n        }\n      }\n    }\n\n    // 2. The Inverse Utility Class\n    @if ($output-inverse and list.length(map.keys($inverses)) > 0) {\n      #{ $inverse-prefix } {\n        color-scheme: var(--ulu-inverse-color-scheme, inherit);\n        @each $prop, $theme-map in themes.$tokens {\n          @if (utils.is-map($theme-map)) {\n            $inv-name: cssvar.name(\"inverse-\" + $prop);\n            // Swap them: --site-color-bg: var(--site-inverse-color-bg)\n            @include cssvar.declare($prop, var(#{ $inv-name }));\n          }\n        }\n        // Force color and background-color if tokens are set\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n        @if ($color-token) {\n          color: cssvar.use($color-token);\n        }\n        @if ($bg-token) {\n          background-color: cssvar.use($bg-token);\n        }\n      }\n    }\n\n    // 3. The Fake Inversion Utility Class\n    // Can be used on elements that need a theme but that have colors that can't be updated (canvas charts for example)\n    // It inverts the items color, and then inverts/spins the element colors so they match the hue before inversion\n    // It also decreases the contrast slightly\n    @if (list.length($fake-selectors) > 0) {\n      #{ $fake-selectors } {\n        #{ $prefix }-fake-invert,\n        #{ $prefix }-dark-fake { // Legacy support\n          filter: var(--ulu-theme-fake-filter, none);\n          color: var(--ulu-theme-fake-color, inherit);\n          background-color: var(--ulu-theme-fake-background-color, transparent);\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 193
              }
            }
          },
          {
            "description": "Outputs base theme variables and classes\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('base', 'themes');\n\n  @if (list.length(themes.$tokens) > 0) {\n    $keys: themes.get-keys();\n    $default: themes.get(\"default\");\n    $prefix: selector.class(\"theme\");\n    $fake-selectors: ();\n    $inverses: themes.get(\"inverses\");\n    $inverse-prefix: selector.class(\"theme-inverse\");\n    $output-inverse: get(\"output-inverse\");\n    \n    // 1. Build Base Themes\n    @each $key in $keys {\n      $selectors: ();\n      $selectors: list.append($selectors, \"#{ $prefix }-#{ $key }\", comma);\n      \n      @if ($key == $default) {\n        $selectors: list.append($selectors, $root-selector, comma);\n      }\n\n      #{ $selectors } {\n        // Standard color-scheme and CSS vars\n        $color-scheme: themes.get-color-scheme($key);\n        @if ($color-scheme) {\n          color-scheme: #{ $color-scheme };\n        }\n        @include themes.declare($key);\n\n        // Force color and background-color if tokens are set\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n\n        @include -token-warning(\"token-color\", $key);\n        @include -token-warning(\"token-background-color\", $key);\n\n        @if ($color-token) {\n          color: cssvar.use($color-token);\n        }\n        @if ($bg-token) {\n          background-color: cssvar.use($bg-token);\n        }\n\n        // Optional Inverse Variables (Variable Swap Approach)\n        // Can use @scope in the future but for now we suffix -\"inverse\"\n        @if ($output-inverse) {\n          $inverse-key: map.get($inverses, $key);\n          @if ($inverse-key) {\n            $inv-scheme: themes.get-color-scheme($inverse-key);\n            @if ($inv-scheme) {\n              --ulu-inverse-color-scheme: #{ $inv-scheme };\n            }\n            \n            @each $prop, $theme-map in themes.$tokens {\n              @if (utils.is-map($theme-map)) {\n                $inv-value: map.get($theme-map, $inverse-key);\n                @if ($inv-value) {\n                  // Only output the inverse variable, not its fallback!\n                  @include cssvar.declare(\"inverse-#{$prop}\", $inv-value);\n                }\n              }\n            }\n          }\n        }\n\n        // Contextual trigger for the fake inversion utility\n        --ulu-theme-fake-filter: #{ get(\"fake-invert-filter\") };\n        \n        $fake-color: get(\"fake-invert-color\");\n        $fake-bg: inherit;\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n\n        @if ($output-inverse) {\n          $inverse-key: map.get($inverses, $key);\n          @if ($inverse-key) {\n            @if ($color-token) {\n              $fake-color: var(#{ cssvar.name(\"inverse-\" + $color-token) }, #{ $fake-color });\n            }\n            @if ($bg-token) {\n              $fake-bg: var(#{ cssvar.name(\"inverse-\" + $bg-token) }, white);\n            }\n          }\n        }\n\n        --ulu-theme-fake-color: #{ $fake-color };\n        --ulu-theme-fake-background-color: #{ $fake-bg };\n        \n        $fake-selectors: list.append($fake-selectors, $selectors, comma);\n\n        // Ensure fake utility applies to inverted themes\n        @if ($output-inverse) {\n          @each $current-theme, $inverse-target in $inverses {\n            @if ($inverse-target == $key) {\n               $fake-selectors: list.append($fake-selectors, \"#{ $prefix }-#{ $current-theme } #{ $inverse-prefix }\", comma);\n               @if ($current-theme == $default) {\n                 $fake-selectors: list.append($fake-selectors, \"#{ $root-selector } #{ $inverse-prefix }\", comma);\n               }\n            }\n          }\n        }\n      }\n    }\n\n    // 2. The Inverse Utility Class\n    @if ($output-inverse and list.length(map.keys($inverses)) > 0) {\n      #{ $inverse-prefix } {\n        color-scheme: var(--ulu-inverse-color-scheme, inherit);\n        @each $prop, $theme-map in themes.$tokens {\n          @if (utils.is-map($theme-map)) {\n            $inv-name: cssvar.name(\"inverse-\" + $prop);\n            // Swap them: --site-color-bg: var(--site-inverse-color-bg)\n            @include cssvar.declare($prop, var(#{ $inv-name }));\n          }\n        }\n        // Force color and background-color if tokens are set\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n        @if ($color-token) {\n          color: cssvar.use($color-token);\n        }\n        @if ($bg-token) {\n          background-color: cssvar.use($bg-token);\n        }\n      }\n    }\n\n    // 3. The Fake Inversion Utility Class\n    // Can be used on elements that need a theme but that have colors that can't be updated (canvas charts for example)\n    // It inverts the items color, and then inverts/spins the element colors so they match the hue before inversion\n    // It also decreases the contrast slightly\n    @if (list.length($fake-selectors) > 0) {\n      #{ $fake-selectors } {\n        #{ $prefix }-fake-invert,\n        #{ $prefix }-dark-fake { // Legacy support\n          filter: var(--ulu-theme-fake-filter, none);\n          color: var(--ulu-theme-fake-color, inherit);\n          background-color: var(--ulu-theme-fake-background-color, transparent);\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 193
              }
            }
          },
          {
            "description": "Outputs base theme variables and classes\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('base', 'themes');\n\n  @if (list.length(themes.$tokens) > 0) {\n    $keys: themes.get-keys();\n    $default: themes.get(\"default\");\n    $prefix: selector.class(\"theme\");\n    $fake-selectors: ();\n    $inverses: themes.get(\"inverses\");\n    $inverse-prefix: selector.class(\"theme-inverse\");\n    $output-inverse: get(\"output-inverse\");\n    \n    // 1. Build Base Themes\n    @each $key in $keys {\n      $selectors: ();\n      $selectors: list.append($selectors, \"#{ $prefix }-#{ $key }\", comma);\n      \n      @if ($key == $default) {\n        $selectors: list.append($selectors, $root-selector, comma);\n      }\n\n      #{ $selectors } {\n        // Standard color-scheme and CSS vars\n        $color-scheme: themes.get-color-scheme($key);\n        @if ($color-scheme) {\n          color-scheme: #{ $color-scheme };\n        }\n        @include themes.declare($key);\n\n        // Force color and background-color if tokens are set\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n\n        @include -token-warning(\"token-color\", $key);\n        @include -token-warning(\"token-background-color\", $key);\n\n        @if ($color-token) {\n          color: cssvar.use($color-token);\n        }\n        @if ($bg-token) {\n          background-color: cssvar.use($bg-token);\n        }\n\n        // Optional Inverse Variables (Variable Swap Approach)\n        // Can use @scope in the future but for now we suffix -\"inverse\"\n        @if ($output-inverse) {\n          $inverse-key: map.get($inverses, $key);\n          @if ($inverse-key) {\n            $inv-scheme: themes.get-color-scheme($inverse-key);\n            @if ($inv-scheme) {\n              --ulu-inverse-color-scheme: #{ $inv-scheme };\n            }\n            \n            @each $prop, $theme-map in themes.$tokens {\n              @if (utils.is-map($theme-map)) {\n                $inv-value: map.get($theme-map, $inverse-key);\n                @if ($inv-value) {\n                  // Only output the inverse variable, not its fallback!\n                  @include cssvar.declare(\"inverse-#{$prop}\", $inv-value);\n                }\n              }\n            }\n          }\n        }\n\n        // Contextual trigger for the fake inversion utility\n        --ulu-theme-fake-filter: #{ get(\"fake-invert-filter\") };\n        \n        $fake-color: get(\"fake-invert-color\");\n        $fake-bg: inherit;\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n\n        @if ($output-inverse) {\n          $inverse-key: map.get($inverses, $key);\n          @if ($inverse-key) {\n            @if ($color-token) {\n              $fake-color: var(#{ cssvar.name(\"inverse-\" + $color-token) }, #{ $fake-color });\n            }\n            @if ($bg-token) {\n              $fake-bg: var(#{ cssvar.name(\"inverse-\" + $bg-token) }, white);\n            }\n          }\n        }\n\n        --ulu-theme-fake-color: #{ $fake-color };\n        --ulu-theme-fake-background-color: #{ $fake-bg };\n        \n        $fake-selectors: list.append($fake-selectors, $selectors, comma);\n\n        // Ensure fake utility applies to inverted themes\n        @if ($output-inverse) {\n          @each $current-theme, $inverse-target in $inverses {\n            @if ($inverse-target == $key) {\n               $fake-selectors: list.append($fake-selectors, \"#{ $prefix }-#{ $current-theme } #{ $inverse-prefix }\", comma);\n               @if ($current-theme == $default) {\n                 $fake-selectors: list.append($fake-selectors, \"#{ $root-selector } #{ $inverse-prefix }\", comma);\n               }\n            }\n          }\n        }\n      }\n    }\n\n    // 2. The Inverse Utility Class\n    @if ($output-inverse and list.length(map.keys($inverses)) > 0) {\n      #{ $inverse-prefix } {\n        color-scheme: var(--ulu-inverse-color-scheme, inherit);\n        @each $prop, $theme-map in themes.$tokens {\n          @if (utils.is-map($theme-map)) {\n            $inv-name: cssvar.name(\"inverse-\" + $prop);\n            // Swap them: --site-color-bg: var(--site-inverse-color-bg)\n            @include cssvar.declare($prop, var(#{ $inv-name }));\n          }\n        }\n        // Force color and background-color if tokens are set\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n        @if ($color-token) {\n          color: cssvar.use($color-token);\n        }\n        @if ($bg-token) {\n          background-color: cssvar.use($bg-token);\n        }\n      }\n    }\n\n    // 3. The Fake Inversion Utility Class\n    // Can be used on elements that need a theme but that have colors that can't be updated (canvas charts for example)\n    // It inverts the items color, and then inverts/spins the element colors so they match the hue before inversion\n    // It also decreases the contrast slightly\n    @if (list.length($fake-selectors) > 0) {\n      #{ $fake-selectors } {\n        #{ $prefix }-fake-invert,\n        #{ $prefix }-dark-fake { // Legacy support\n          filter: var(--ulu-theme-fake-filter, none);\n          color: var(--ulu-theme-fake-color, inherit);\n          background-color: var(--ulu-theme-fake-background-color, transparent);\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 193
              }
            }
          },
          {
            "description": "Outputs base theme variables and classes\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('base', 'themes');\n\n  @if (list.length(themes.$tokens) > 0) {\n    $keys: themes.get-keys();\n    $default: themes.get(\"default\");\n    $prefix: selector.class(\"theme\");\n    $fake-selectors: ();\n    $inverses: themes.get(\"inverses\");\n    $inverse-prefix: selector.class(\"theme-inverse\");\n    $output-inverse: get(\"output-inverse\");\n    \n    // 1. Build Base Themes\n    @each $key in $keys {\n      $selectors: ();\n      $selectors: list.append($selectors, \"#{ $prefix }-#{ $key }\", comma);\n      \n      @if ($key == $default) {\n        $selectors: list.append($selectors, $root-selector, comma);\n      }\n\n      #{ $selectors } {\n        // Standard color-scheme and CSS vars\n        $color-scheme: themes.get-color-scheme($key);\n        @if ($color-scheme) {\n          color-scheme: #{ $color-scheme };\n        }\n        @include themes.declare($key);\n\n        // Force color and background-color if tokens are set\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n\n        @include -token-warning(\"token-color\", $key);\n        @include -token-warning(\"token-background-color\", $key);\n\n        @if ($color-token) {\n          color: cssvar.use($color-token);\n        }\n        @if ($bg-token) {\n          background-color: cssvar.use($bg-token);\n        }\n\n        // Optional Inverse Variables (Variable Swap Approach)\n        // Can use @scope in the future but for now we suffix -\"inverse\"\n        @if ($output-inverse) {\n          $inverse-key: map.get($inverses, $key);\n          @if ($inverse-key) {\n            $inv-scheme: themes.get-color-scheme($inverse-key);\n            @if ($inv-scheme) {\n              --ulu-inverse-color-scheme: #{ $inv-scheme };\n            }\n            \n            @each $prop, $theme-map in themes.$tokens {\n              @if (utils.is-map($theme-map)) {\n                $inv-value: map.get($theme-map, $inverse-key);\n                @if ($inv-value) {\n                  // Only output the inverse variable, not its fallback!\n                  @include cssvar.declare(\"inverse-#{$prop}\", $inv-value);\n                }\n              }\n            }\n          }\n        }\n\n        // Contextual trigger for the fake inversion utility\n        --ulu-theme-fake-filter: #{ get(\"fake-invert-filter\") };\n        \n        $fake-color: get(\"fake-invert-color\");\n        $fake-bg: inherit;\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n\n        @if ($output-inverse) {\n          $inverse-key: map.get($inverses, $key);\n          @if ($inverse-key) {\n            @if ($color-token) {\n              $fake-color: var(#{ cssvar.name(\"inverse-\" + $color-token) }, #{ $fake-color });\n            }\n            @if ($bg-token) {\n              $fake-bg: var(#{ cssvar.name(\"inverse-\" + $bg-token) }, white);\n            }\n          }\n        }\n\n        --ulu-theme-fake-color: #{ $fake-color };\n        --ulu-theme-fake-background-color: #{ $fake-bg };\n        \n        $fake-selectors: list.append($fake-selectors, $selectors, comma);\n\n        // Ensure fake utility applies to inverted themes\n        @if ($output-inverse) {\n          @each $current-theme, $inverse-target in $inverses {\n            @if ($inverse-target == $key) {\n               $fake-selectors: list.append($fake-selectors, \"#{ $prefix }-#{ $current-theme } #{ $inverse-prefix }\", comma);\n               @if ($current-theme == $default) {\n                 $fake-selectors: list.append($fake-selectors, \"#{ $root-selector } #{ $inverse-prefix }\", comma);\n               }\n            }\n          }\n        }\n      }\n    }\n\n    // 2. The Inverse Utility Class\n    @if ($output-inverse and list.length(map.keys($inverses)) > 0) {\n      #{ $inverse-prefix } {\n        color-scheme: var(--ulu-inverse-color-scheme, inherit);\n        @each $prop, $theme-map in themes.$tokens {\n          @if (utils.is-map($theme-map)) {\n            $inv-name: cssvar.name(\"inverse-\" + $prop);\n            // Swap them: --site-color-bg: var(--site-inverse-color-bg)\n            @include cssvar.declare($prop, var(#{ $inv-name }));\n          }\n        }\n        // Force color and background-color if tokens are set\n        $color-token: get(\"token-color\");\n        $bg-token: get(\"token-background-color\");\n        @if ($color-token) {\n          color: cssvar.use($color-token);\n        }\n        @if ($bg-token) {\n          background-color: cssvar.use($bg-token);\n        }\n      }\n    }\n\n    // 3. The Fake Inversion Utility Class\n    // Can be used on elements that need a theme but that have colors that can't be updated (canvas charts for example)\n    // It inverts the items color, and then inverts/spins the element colors so they match the hue before inversion\n    // It also decreases the contrast slightly\n    @if (list.length($fake-selectors) > 0) {\n      #{ $fake-selectors } {\n        #{ $prefix }-fake-invert,\n        #{ $prefix }-dark-fake { // Legacy support\n          filter: var(--ulu-theme-fake-filter, none);\n          color: var(--ulu-theme-fake-color, inherit);\n          background-color: var(--ulu-theme-fake-background-color, transparent);\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 193
              }
            }
          },
          {
            "description": "Internal mixin for warnings (DRY) \n",
            "context": {
              "type": "mixin",
              "name": "-token-warning",
              "code": "\n  @if (get(\"token-warnings\")) {\n    $token: get($token-property);\n    @if ($token) {\n      $def: utils.ensure-map(map.get(themes.$tokens, $token));\n      @if (not utils.map-has($def, $theme-key)) {\n        @warn \"ULU Themes: The token '#{ $token }' (#{ $token-property}) is missing a value for theme '#{ $theme-key }'. This may cause color inheritance issues.\";\n      }\n    }\n  }\n",
              "line": {
                "start": 196,
                "end": 206
              }
            }
          },
          {
            "description": "Internal mixin for warnings (DRY) \n",
            "context": {
              "type": "mixin",
              "name": "-token-warning",
              "code": "\n  @if (get(\"token-warnings\")) {\n    $token: get($token-property);\n    @if ($token) {\n      $def: utils.ensure-map(map.get(themes.$tokens, $token));\n      @if (not utils.map-has($def, $theme-key)) {\n        @warn \"ULU Themes: The token '#{ $token }' (#{ $token-property}) is missing a value for theme '#{ $theme-key }'. This may cause color inheritance issues.\";\n      }\n    }\n  }\n",
              "line": {
                "start": 196,
                "end": 206
              }
            }
          },
          {
            "description": "Internal mixin for warnings (DRY) \n",
            "context": {
              "type": "mixin",
              "name": "-token-warning",
              "code": "\n  @if (get(\"token-warnings\")) {\n    $token: get($token-property);\n    @if ($token) {\n      $def: utils.ensure-map(map.get(themes.$tokens, $token));\n      @if (not utils.map-has($def, $theme-key)) {\n        @warn \"ULU Themes: The token '#{ $token }' (#{ $token-property}) is missing a value for theme '#{ $theme-key }'. This may cause color inheritance issues.\";\n      }\n    }\n  }\n",
              "line": {
                "start": 196,
                "end": 206
              }
            }
          },
          {
            "description": "Prints typography base styles\n- These are any type sizes that specify \"base-class\" in their configuration\n- Type sizes with \"base-class-prefixed\" will be prefixed with the \"type-\" prefix\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  @include utils.file-header('base', 'typography');\n\n  $prefix: selector.class(\"type\");\n\n  // Print base typographic sizes\n  @each $size, $values in typography.$sizes {\n    @if (map.get($values, \"base-class\")) {\n      @if (map.get($values, \"base-class-prefixed\")) {\n        #{ $prefix }-#{$size} {\n          @include typography.size($size);\n        }\n      } @else {\n        .#{ $size } {\n          @include typography.size($size);\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 24,
                "end": 44
              }
            }
          },
          {
            "description": "Prints typography base styles\n- These are any type sizes that specify \"base-class\" in their configuration\n- Type sizes with \"base-class-prefixed\" will be prefixed with the \"type-\" prefix\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  @include utils.file-header('base', 'typography');\n\n  $prefix: selector.class(\"type\");\n\n  // Print base typographic sizes\n  @each $size, $values in typography.$sizes {\n    @if (map.get($values, \"base-class\")) {\n      @if (map.get($values, \"base-class-prefixed\")) {\n        #{ $prefix }-#{$size} {\n          @include typography.size($size);\n        }\n      } @else {\n        .#{ $size } {\n          @include typography.size($size);\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 24,
                "end": 44
              }
            }
          }
        ]
      },
      {
        "id": "mixin-base-elements-styles",
        "title": "base-elements-styles()",
        "groupName": "elements",
        "path": "/sass/base/elements/#mixin-base-elements-styles",
        "description": "Output the elements base styles\n",
        "commentRange": {
          "start": 47,
          "end": 50
        },
        "context": {
          "type": "mixin",
          "name": "base-elements-styles",
          "code": "\n\n  @include utils.file-header('base', 'elements');\n  *,\n  ::before,\n  ::after {\n    box-sizing: border-box;\n  }\n  html {\n    -webkit-text-size-adjust: 100%;\n    @media (prefers-reduced-motion: no-preference) {\n      scroll-behavior: smooth;\n    }\n  }\n  body {\n    @include styles-body();\n  }\n  h1, \n  h2, \n  h3, \n  h4, \n  h5, \n  h6, \n  ul, \n  ol, \n  li,\n  pre, \n  code,\n  p { \n    margin: 0;\n    padding: 0;\n    font-size: inherit;\n    font-family: inherit;\n    border-width: 0;\n    border-style: solid;\n    font-weight: inherit;\n  }\n  p {\n    $margin-top: typography.get(\"margin-top\");\n    margin-top: utils.when($margin-top, $margin-top, 0);\n    margin-bottom: typography.get(\"margin-bottom\"); \n  }\n  sub, sup {\n    font-size: 75%;\n    line-height: 0;\n    position: relative;\n    vertical-align: baseline;\n  }\n  small { \n    @include typography.size(\"small\", (\"line-height\" : typography.get(\"line-height-dense\"))); \n  }\n  sub { \n    bottom: -0.25em; \n  }\n  sup { \n    top: -0.5em; \n  }\n  b, \n  strong { \n    font-weight: bold; \n  }\n  form {\n    width: 100%;\n  }\n  // Note in future picture can be display: contents\n  // - That value still has SR issues with removing content from accessibility tree\n  video,\n  picture {\n    display: block;\n  }\n  code,\n  kbd,\n  samp,\n  pre {\n    font-family: typography.get(\"font-family-monospace\");\n  }\n  hr {\n    height: 0;\n    border: 0;\n    box-sizing: content-box;\n    overflow: visible;\n    margin: element.get(\"margin\") 0;\n    border-bottom: element.get-rule-style();\n  }\n  iframe {\n    border: 0;\n    outline: 0;\n  }\n  figure {\n    margin: 0;\n  }\n  img {\n    display: block;\n    width: auto;\n    height: auto;\n    max-width: 100%;\n    border-style: none;\n  }\n  // Not styling ordered lists because they are used in navigation and other UI components\n  // - Would rather explicitly style numbered lists so menus and things \n  //   don't have to reset. Usually there's only a few type of in content \n  //   numbered lists and those are styled via classes or wysiwyg\n  ul,\n  ol { \n    list-style: none; \n  }\n  a {\n    // User can disable link styling if they want to add more specific styling\n    // and omit this in element base\n    @if (get(\"link\")) {\n      @include element.link-defaults(\n        $hover: get(\"link-hover\"),\n        $visited: get(\"link-visited\"),\n      );\n    }\n  }\n  [disabled],\n  :disabled {\n    opacity: 0.5;\n    cursor: not-allowed;\n  }\n  button[disabled] {\n    pointer-events: none;\n  }\n  dt { \n    font-weight: bold;\n  }\n  [hidden], \n  template {\n    display: none;\n  }\n  blockquote {\n    margin: 0;\n  }\n  summary {\n    cursor: pointer;\n  }\n  @if get(\"details-animation\") {\n    details {\n      &[open] {\n        summary {\n          ~ * {\n            // Prevent issues with opening these programmatically on firefox\n            // - Animation would not be complete in the clone on firefox (looks empty)\n            @media screen {\n              animation: get(\"details-animation\");\n            }\n          }\n        }\n      }\n    }\n  }\n  audio {\n    display: block;\n    margin: 1rem 0;\n  }\n",
          "line": {
            "start": 52,
            "end": 208
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.base-elements-styles();"
          }
        ],
        "group": [
          "elements"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_elements.scss",
          "name": "_elements.scss"
        }
      }
    ],
    "keyframes": [
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "keyframes",
        "path": "/sass/base/keyframes/#mixin-styles",
        "description": "Output ulu CSS keyframes\n",
        "commentRange": {
          "start": 8,
          "end": 10
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  @include utils.file-header('base', 'keyframes');\n  @keyframes UluFadeIn {\n    0% {\n      opacity: 0; \n    }\n    100% {\n      opacity: 1; \n    }\n  }\n  @keyframes UluFadeInUp {\n    0% {\n      opacity: 0; \n      transform: translateY(10px);\n    }\n    100%  {\n      opacity: 1; \n      transform: translateY(0);\n    }\n  }\n  @keyframes UluFadeInDown {\n    0% {\n      opacity: 0; \n      transform: translateY(-10px);\n    }\n    100%  {\n      opacity: 1; \n      transform: translateY(0);\n    }\n  }\n  @keyframes UluFadeInLeft {\n    0% {\n      opacity: 0; \n      transform: translateX(-10px);\n    }\n    100% {\n      opacity: 1; \n      transform: translateX(0);\n    }\n  }\n  @keyframes UluFadeInLeftMore {\n    0% {\n      opacity: 0; \n      transform: translateX(-50px);\n    }\n    100% {\n      opacity: 1; \n      transform: translateX(0);\n    }\n  }\n  @keyframes UluFadeInRight {\n    0% {\n      opacity: 0; \n      transform: translateX(10px);\n    }\n    100% {\n      opacity: 1; \n      transform: translateX(0);\n    }\n  }\n  @keyframes UluFadeInRightMore {\n    0% {\n      opacity: 0; \n      transform: translateX(50px);\n    }\n    100% {\n      opacity: 1; \n      transform: translateX(0);\n    }\n  }\n  @keyframes UluFadeInZoom {\n    0% {\n      opacity: 0; \n      transform: scale(0);\n    }\n    50% {\n      opacity: 0; \n      transform: scale(0);\n    }\n    100%  {\n      opacity: 1; \n      transform: scale(1);\n    }\n  }\n  @keyframes UluFadeOut {\n    0% {\n      opacity: 1;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes UluFadeOutLeft {\n    0% {\n      opacity: 1;\n      transform: translateX(0);\n      }\n    100% {\n      opacity: 0;\n      transform: translateX(-10px);\n    }\n  }\n  @keyframes UluFadeOutRight {\n    0% {\n      opacity: 1;\n      transform: translateX(0);\n      }\n    100% {\n      opacity: 0;\n      transform: translateX(10px);\n    }\n  }\n  @keyframes UluFadeOutLeftMore {\n    0% {\n      opacity: 1;\n      transform: translateX(0);\n      }\n    100% {\n      opacity: 0;\n      transform: translateX(-50px);\n    }\n  }\n  @keyframes UluFadeOutRightMore {\n    0% {\n      opacity: 1;\n      transform: translateX(0);\n      }\n    100% {\n      opacity: 0;\n      transform: translateX(50px);\n    }\n  }\n  @keyframes UluFadeDownOut {\n    0% {\n      opacity: 1; \n      transform: translateY(-10px);\n    }\n    100%  {\n      opacity: 0; \n      transform: translateY(0);\n    }\n  }\n  @keyframes UluSpin {\n    from {\n      transform: rotate(0deg);\n    }\n    to {\n      transform: rotate(360deg);\n    }\n  }\n  @keyframes UluPulse {\n    50% {\n      opacity: 0.5;\n    }\n  }\n  @keyframes UluScaleIn {\n    0% {\n      opacity: 0;\n      transform: scale(0);\n    }\n    100% {\n      opacity: 1;\n      transform: scale(1);\n    }\n  }\n  @keyframes UluWiggle {\n    0% { transform: rotate(0deg); }\n    84% { transform: rotate(0deg); }\n    88% { transform: rotate(2deg); }\n    90% { transform: rotate(-2deg); }\n    92% { transform: rotate(0deg); }\n    94% { transform: rotate(2deg); }\n    96% { transform: rotate(-2deg); }\n    100% { transform: rotate(0deg); }\n  }\n  @keyframes UluPulse {\n    50% {\n      opacity: 0.5;\n    }\n  }\n",
          "line": {
            "start": 12,
            "end": 192
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.base-keyframes-styles();"
          }
        ],
        "group": [
          "keyframes"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_keyframes.scss",
          "name": "_keyframes.scss"
        }
      }
    ],
    "normalize": [
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "normalize",
        "path": "/sass/base/normalize/#mixin-styles",
        "description": "Prints the normalize stylesheet. Originally based on modern-normalize 1.1.0\n- This has been reduced to what is needed and doesn't interfere\n- Should be updated/added to as needed\n",
        "commentRange": {
          "start": 10,
          "end": 15
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n\n  @include utils.file-header('base', 'normalize');\n  \n  /*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */\n\n  /**\n  Use a more readable tab size (opinionated).\n  */\n\n  html {\n    -moz-tab-size: 4;\n    tab-size: 4;\n  }\n\n  /**\n  For flexbox, grid, etc. We always need it \n  */\n  body,\n  html {\n    min-height: 100%; \n  }\n\n  body {\n    margin: 0;\n  }\n\n  /**\n  Add the correct text decoration in Chrome, Edge, and Safari.\n  */\n\n  abbr[title] {\n    text-decoration: underline dotted;\n  }\n\n  /*\n  Tabular data\n  ============\n  */\n\n  /**\n  1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n  2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n  */\n\n  table {\n    text-indent: 0; /* 1 */\n    // border-color: inherit; /* 2 */\n  }\n\n  /*\n  Forms\n  =====\n  */\n\n  /**\n  1. Change the font styles in all browsers.\n  2. Remove the margin in Firefox and Safari.\n  */\n\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit; /* 1 */\n    // font-size: 100%; /* 1 */\n    // line-height: 1.15; /* 1 */\n    line-height: inherit;\n    font-size: inherit;\n    margin: 0; /* 2 */\n  }\n\n  /**\n  Remove the inheritance of text transform in Edge and Firefox.\n  1. Remove the inheritance of text transform in Firefox.\n  */\n\n  button,\n  select { /* 1 */\n    text-transform: none;\n  }\n\n  /**\n  Correct the inability to style clickable types in iOS and Safari.\n  */\n\n  button,\n  [type='button'],\n  [type='reset'],\n  [type='submit'] {\n    @include button.reset();\n  }\n\n  /**\n  Remove the inner border and padding in Firefox.\n  */\n\n  ::-moz-focus-inner {\n    border-style: none;\n    padding: 0;\n  }\n\n  /**\n  Restore the focus styles unset by the previous rule.\n  */\n\n  :-moz-focusring {\n    outline: 1px dotted ButtonText;\n  }\n\n  /**\n  Remove the additional ':invalid' styles in Firefox.\n  See: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737\n  */\n\n  :-moz-ui-invalid {\n    box-shadow: none;\n  }\n\n  /**\n  Remove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.\n  */\n\n  legend {\n    padding: 0;\n  }\n\n  /**\n  Add the correct vertical alignment in Chrome and Firefox.\n  */\n\n  progress {\n    vertical-align: baseline;\n  }\n\n  /**\n  Correct the cursor style of increment and decrement buttons in Safari.\n  */\n\n  ::-webkit-inner-spin-button,\n  ::-webkit-outer-spin-button {\n    height: auto;\n  }\n\n  /**\n  1. Correct the odd appearance in Chrome and Safari.\n  2. Correct the outline style in Safari.\n  */\n\n  [type='search'] {\n    -webkit-appearance: textfield; /* 1 */\n    outline-offset: -2px; /* 2 */\n  }\n\n  /**\n  Remove the inner padding in Chrome and Safari on macOS.\n  */\n\n  ::-webkit-search-decoration {\n    -webkit-appearance: none;\n  }\n\n  /**\n  1. Correct the inability to style clickable types in iOS and Safari.\n  2. Change font properties to 'inherit' in Safari.\n  */\n\n  ::-webkit-file-upload-button {\n    -webkit-appearance: button; /* 1 */\n    font: inherit; /* 2 */\n  }\n\n  /*\n  Interactive\n  ===========\n  */\n\n  /*\n  Add the correct display in Chrome and Safari.\n  */\n\n  summary {\n    display: list-item;\n  }\n",
          "line": {
            "start": 17,
            "end": 202
          }
        },
        "link": [
          {
            "url": "https://www.npmjs.com/package/modern-normalize",
            "caption": "Modern Normalize (NPM)"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.base-normalize-styles();"
          }
        ],
        "group": [
          "normalize"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_normalize.scss",
          "name": "_normalize.scss"
        }
      }
    ],
    "print": [
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "print",
        "path": "/sass/base/print/#mixin-styles",
        "description": "Printed Media Stylesheet\n- Note this is a portion of the print styles from the original framework\n  and may be outdated. Most of the styling options have been removed though\n",
        "commentRange": {
          "start": 8,
          "end": 12
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  @include utils.file-header('base', 'print');\n\n  @media (print) {\n    * {\n      background: transparent !important;\n      color: black !important;\n      box-shadow: none !important;\n      text-shadow: none !important;\n      filter: none !important;\n    }\n    a, \n    a:visited {\n      text-decoration: underline;\n    }\n    pre, \n    blockquote {\n      page-break-inside: avoid;\n    }\n    tr, img {\n      page-break-inside: avoid;\n    }\n    img {\n      max-width: 100% !important;\n    }\n    p, \n    h2, \n    h3 {\n      orphans: 3;\n      widows: 3;\n    }\n    h2, \n    h3 {\n      page-break-after: avoid;\n    }\n    @page {\n      margin: 0.5in;\n    }\n  }\n",
          "line": {
            "start": 14,
            "end": 53
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.base-print-styles();"
          }
        ],
        "group": [
          "print"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_print.scss",
          "name": "_print.scss"
        }
      }
    ],
    "root": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "root",
        "path": "/sass/base/root/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 12,
          "end": 19
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"sticky-offset-top\": cssvar.add(cssvar.use-ulu(\"header-height\"), cssvar.use-ulu(\"sticky-margin\")),\n  \"sticky-offset-bottom\": 0px,\n  \"sticky-margin\": 0px,\n  \"header-height\": 0px,\n  \"fullscreen-height\": cssvar.subtract(100dvh, cssvar.use-ulu(\"header-height\")),\n  \"fullscreen-height-sticky\": cssvar.subtract(100dvh, cssvar.use-ulu(\"sticky-offset-top\"), cssvar.use-ulu(\"sticky-offset-bottom\"))\n)",
          "scope": "default",
          "line": {
            "start": 21,
            "end": 28
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "String",
            "name": "sticky-offset-top",
            "default": "cssvar.add(cssvar.use-ulu(\"header-height\"), cssvar.use-ulu(\"sticky-margin\"))",
            "description": "Total top offset for sticky positioning. Accounts for the primary header and any required breathing room."
          },
          {
            "type": "Dimension",
            "name": "sticky-offset-bottom",
            "default": "0px",
            "description": "Bottom offset for sticky positioning. Useful when accounting for fixed footers or mobile navigation bars."
          },
          {
            "type": "Dimension",
            "name": "sticky-margin",
            "default": "0px",
            "description": "Desired visual space between a sticky element and the bottom of the header."
          },
          {
            "type": "Dimension",
            "name": "header-height",
            "default": "0px",
            "description": "The physical rendered height of the site's fixed/sticky header."
          },
          {
            "type": "String",
            "name": "fullscreen-height",
            "default": "cssvar.subtract(100dvh, cssvar.use-ulu(\"header-height\"))",
            "description": "Utility height representing the visible viewport space below the header."
          },
          {
            "type": "String",
            "name": "fullscreen-height-sticky",
            "default": "cssvar.subtract(100dvh, cssvar.use-ulu(\"sticky-offset-top\"), cssvar.use-ulu(\"sticky-offset-bottom\"))",
            "description": "Utility height representing the safe scrollable area between all sticky layout boundaries."
          }
        ],
        "group": [
          "root"
        ],
        "access": "public",
        "file": {
          "path": "_root.scss",
          "name": "_root.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "root",
        "path": "/sass/base/root/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 30,
          "end": 31
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 33,
            "end": 35
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "group": [
          "root"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_root.scss",
          "name": "_root.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "root",
        "path": "/sass/base/root/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 37,
          "end": 38
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"base root [config]\");\n",
          "line": {
            "start": 40,
            "end": 42
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "group": [
          "root"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_root.scss",
          "name": "_root.scss"
        }
      },
      {
        "id": "variable-cssvars",
        "title": "$cssvars",
        "groupName": "root",
        "path": "/sass/base/root/#variable-cssvars",
        "description": "Global root variables (CSS Custom Properties)\n",
        "commentRange": {
          "start": 44,
          "end": 45
        },
        "context": {
          "type": "variable",
          "name": "cssvars",
          "value": "()",
          "scope": "default",
          "line": {
            "start": 47,
            "end": 47
          }
        },
        "type": "Map",
        "group": [
          "root"
        ],
        "access": "public",
        "file": {
          "path": "_root.scss",
          "name": "_root.scss"
        },
        "usedBy": [
          {
            "description": "Set global root variables\n- Supports mapping values to breakpoints. Values can be literal or a configuration map with `value` and `breakpoints` keys.\n",
            "context": {
              "type": "mixin",
              "name": "set-cssvars",
              "code": "\n  $cssvars: utils.map-merge($cssvars, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 67,
                "end": 69
              }
            }
          },
          {
            "description": "Set global root variables\n- Supports mapping values to breakpoints. Values can be literal or a configuration map with `value` and `breakpoints` keys.\n",
            "context": {
              "type": "mixin",
              "name": "set-cssvars",
              "code": "\n  $cssvars: utils.map-merge($cssvars, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 67,
                "end": 69
              }
            }
          },
          {
            "description": "Declare custom properties for ulu (without selector)\n",
            "context": {
              "type": "mixin",
              "name": "declare",
              "code": "\n  @include custom-properties();\n  @include cssvar.declare-breakpoint();\n  @include cssvar.declare-all($cssvars);\n",
              "line": {
                "start": 92,
                "end": 96
              }
            }
          }
        ]
      },
      {
        "id": "mixin-set-cssvars",
        "title": "set-cssvars()",
        "groupName": "root",
        "path": "/sass/base/root/#mixin-set-cssvars",
        "description": "Set global root variables\n- Supports mapping values to breakpoints. Values can be literal or a configuration map with `value` and `breakpoints` keys.\n",
        "commentRange": {
          "start": 49,
          "end": 65
        },
        "context": {
          "type": "mixin",
          "name": "set-cssvars",
          "code": "\n  $cssvars: utils.map-merge($cssvars, $changes, $merge-mode) !global;\n",
          "line": {
            "start": 67,
            "end": 69
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.base-root-set-cssvars((\n  \"base-color\": red,\n  \"responsive-size\": (\n    \"value\": 1rem,\n    \"breakpoints\": (\n      \"medium\": (\n        \"direction\": \"up\",\n        \"value\": 2rem\n      )\n    )\n  )\n));",
            "description": "Example usage with breakpoints"
          }
        ],
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          },
          {
            "type": "String",
            "name": "merge-mode",
            "description": "Merge mode see utils.map-merge() [null|\"deep\"|\"overwrite\"]"
          }
        ],
        "group": [
          "root"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "cssvars"
          },
          {
            "type": "variable",
            "name": "cssvars"
          }
        ],
        "file": {
          "path": "_root.scss",
          "name": "_root.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "root",
        "path": "/sass/base/root/#mixin-styles",
        "description": "Output custom properties in :root for base stylesheet\n",
        "commentRange": {
          "start": 71,
          "end": 73
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  @include utils.file-header('base', 'root');\n  // Core/default css-vars\n  :root {\n    @include declare();\n  }\n  html {\n    scroll-padding-top: cssvar.use-ulu(\"sticky-offset-top\");\n  }\n",
          "line": {
            "start": 75,
            "end": 84
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.base-root-styles();"
          }
        ],
        "group": [
          "root"
        ],
        "access": "public",
        "require": [
          {
            "type": "mixin",
            "name": "declare"
          }
        ],
        "file": {
          "path": "_root.scss",
          "name": "_root.scss"
        }
      },
      {
        "id": "mixin-declare",
        "title": "declare()",
        "groupName": "root",
        "path": "/sass/base/root/#mixin-declare",
        "description": "Declare custom properties for ulu (without selector)\n",
        "commentRange": {
          "start": 86,
          "end": 90
        },
        "context": {
          "type": "mixin",
          "name": "declare",
          "code": "\n  @include custom-properties();\n  @include cssvar.declare-breakpoint();\n  @include cssvar.declare-all($cssvars);\n",
          "line": {
            "start": 92,
            "end": 96
          }
        },
        "example": [
          {
            "type": "scss",
            "code": ".cms-backend {\n  @include ulu.base-root-declare();\n}"
          }
        ],
        "group": [
          "root"
        ],
        "access": "public",
        "require": [
          {
            "type": "mixin",
            "name": "custom-properties"
          },
          {
            "type": "variable",
            "name": "cssvars"
          }
        ],
        "file": {
          "path": "_root.scss",
          "name": "_root.scss"
        },
        "usedBy": [
          {
            "description": "Output custom properties in :root for base stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('base', 'root');\n  // Core/default css-vars\n  :root {\n    @include declare();\n  }\n  html {\n    scroll-padding-top: cssvar.use-ulu(\"sticky-offset-top\");\n  }\n",
              "line": {
                "start": 75,
                "end": 84
              }
            }
          }
        ]
      },
      {
        "id": "mixin-custom-properties",
        "title": "custom-properties()",
        "groupName": "root",
        "path": "/sass/base/root/#mixin-custom-properties",
        "description": "Output custom properties for ulu\n",
        "commentRange": {
          "start": 98,
          "end": 98
        },
        "context": {
          "type": "mixin",
          "name": "custom-properties",
          "code": "\n  $prefix: \"ulu\";\n  // Just looping through $config for now (since all are root properties)\n  // This may need to be adjusted if config is used for something else\n  @include cssvar.declare-all($config, $prefix);\n  @include cssvar.declare(\"scrollbar-width\", 0px, $prefix); // Set by JS\n\n  @each $name, $props in layout.$widths {\n    @include cssvar.declare(\"width-#{ $name }\", $props, $prefix);\n  }\n\n  @each $name, $props in layout.$max-widths {\n    @include cssvar.declare(\"max-width-#{ $name }\", $props, $prefix);\n  }\n",
          "line": {
            "start": 100,
            "end": 114
          }
        },
        "group": [
          "root"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_root.scss",
          "name": "_root.scss"
        },
        "usedBy": [
          {
            "description": "Declare custom properties for ulu (without selector)\n",
            "context": {
              "type": "mixin",
              "name": "declare",
              "code": "\n  @include custom-properties();\n  @include cssvar.declare-breakpoint();\n  @include cssvar.declare-all($cssvars);\n",
              "line": {
                "start": 92,
                "end": 96
              }
            }
          }
        ]
      }
    ],
    "themes": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "themes",
        "path": "/sass/core/themes/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 16,
          "end": 20
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"default\" : \"light\",\n  \"color-schemes\" : (),\n  \"inverses\" : ()\n)",
          "scope": "default",
          "line": {
            "start": 21,
            "end": 25
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "String",
            "name": "default",
            "default": "\"light\"",
            "description": "The theme key output to :root"
          },
          {
            "type": "Map",
            "name": "color-schemes",
            "default": "()",
            "description": "Maps theme names to their corresponding valid CSS color-scheme value (e.g. (\"high-contrast\": \"dark\")). Note: If a theme name is literally \"light\" or \"dark\", it does not need to be mapped here."
          },
          {
            "type": "Map",
            "name": "inverses",
            "default": "()",
            "description": "Maps theme names to their opposite theme name (e.g. (\"light\": \"dark\", \"dark\": \"light\")). Used to output the .theme-inverse utility."
          }
        ],
        "group": [
          "themes"
        ],
        "access": "public",
        "file": {
          "path": "_themes.scss",
          "name": "_themes.scss"
        }
      },
      {
        "id": "variable-tokens",
        "title": "$tokens",
        "groupName": "themes",
        "path": "/sass/core/themes/#variable-tokens",
        "description": "The themes map\n- Format: `(\"property-name\": (\"light\": value, \"dark\": value))`\n",
        "commentRange": {
          "start": 27,
          "end": 29
        },
        "context": {
          "type": "variable",
          "name": "tokens",
          "value": "()",
          "scope": "default",
          "line": {
            "start": 31,
            "end": 31
          }
        },
        "type": "Map",
        "group": [
          "themes"
        ],
        "access": "public",
        "file": {
          "path": "_themes.scss",
          "name": "_themes.scss"
        },
        "usedBy": [
          {
            "description": "Set the theme variations\n",
            "context": {
              "type": "mixin",
              "name": "set-tokens",
              "code": "\n  $tokens: utils.map-merge($tokens, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 53,
                "end": 55
              }
            }
          },
          {
            "description": "Set the theme variations\n",
            "context": {
              "type": "mixin",
              "name": "set-tokens",
              "code": "\n  $tokens: utils.map-merge($tokens, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 53,
                "end": 55
              }
            }
          },
          {
            "description": "Helper function to get all unique theme keys (e.g., 'light', 'dark') from the $themes map\n",
            "context": {
              "type": "function",
              "name": "get-keys",
              "code": "\n  $keys: ();\n  @each $prop, $theme-map in $tokens {\n    @if meta.type-of($theme-map) == 'map' {\n      @each $key, $val in $theme-map {\n        @if not list.index($keys, $key) {\n          $keys: list.append($keys, $key);\n        }\n      }\n    }\n  }\n  @return $keys;\n",
              "line": {
                "start": 96,
                "end": 108
              }
            }
          },
          {
            "description": "Outputs css vars for a specific type from a theme map\n",
            "context": {
              "type": "mixin",
              "name": "declare",
              "code": "\n  @each $name, $definition in $tokens {\n    $value: map.get($definition, $key);\n    @if ($value != null) {\n      @include cssvar.declare($name, $value, $prefix);\n    }\n  }\n",
              "line": {
                "start": 125,
                "end": 132
              }
            }
          }
        ]
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "themes",
        "path": "/sass/core/themes/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 33,
          "end": 36
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 38,
            "end": 40
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.themes-set(( \"default\" : \"dark\" ));"
          }
        ],
        "group": [
          "themes"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_themes.scss",
          "name": "_themes.scss"
        }
      },
      {
        "id": "mixin-set-tokens",
        "title": "set-tokens()",
        "groupName": "themes",
        "path": "/sass/core/themes/#mixin-set-tokens",
        "description": "Set the theme variations\n",
        "commentRange": {
          "start": 42,
          "end": 51
        },
        "context": {
          "type": "mixin",
          "name": "set-tokens",
          "code": "\n  $tokens: utils.map-merge($tokens, $changes, $merge-mode) !global;\n",
          "line": {
            "start": 53,
            "end": 55
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of theme variations to merge"
          },
          {
            "type": "String",
            "name": "merge-mode",
            "description": "Merge mode see utils.map-merge() [null|\"deep\"|\"overwrite\"]"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.themes-set-tokens((\n  \"color-background\": (\n    \"light\": white,\n    \"dark\": black\n  )\n));"
          }
        ],
        "group": [
          "themes"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "map-merge"
          },
          {
            "type": "variable",
            "name": "tokens"
          },
          {
            "type": "variable",
            "name": "tokens"
          }
        ],
        "file": {
          "path": "_themes.scss",
          "name": "_themes.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "themes",
        "path": "/sass/core/themes/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 57,
          "end": 63
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"themes [config]\");\n",
          "line": {
            "start": 65,
            "end": 67
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": ".test {\n  content: ulu.themes-get(\"default\");\n}",
            "description": "Example usage",
            "modifier": "compile"
          }
        ],
        "return": {
          "type": "*",
          "description": "Resolved value"
        },
        "group": [
          "themes"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "require-map-get"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_themes.scss",
          "name": "_themes.scss"
        }
      },
      {
        "id": "function-get-color-scheme",
        "title": "get-color-scheme()",
        "groupName": "themes",
        "path": "/sass/core/themes/#function-get-color-scheme",
        "description": "Helper function to safely get the color scheme\n",
        "commentRange": {
          "start": 69,
          "end": 75
        },
        "context": {
          "type": "function",
          "name": "get-color-scheme",
          "code": "\n  $schemes: get(\"color-schemes\");\n  $mapped: map.get($schemes, $theme-name);\n\n  @if ($mapped) {\n    @return $mapped;\n  }\n\n  @if ($theme-name == \"light\" or $theme-name == \"dark\") {\n    @return $theme-name;\n  }\n\n  @warn \"ULU Themes: No valid color-scheme mapped for theme '#{$theme-name}'. Please add it using `themes.set(( \\\"color-schemes\\\" : ( \\\"#{$theme-name}\\\": \\\"light|dark\\\" ) ))`. The `color-scheme` property will not be output for this theme.\";\n  @return null;\n",
          "line": {
            "start": 77,
            "end": 91
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "theme-name",
            "description": "The name of the theme to lookup"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": ".test {\n  content: ulu.themes-get-color-scheme(\"dark\");\n}",
            "description": "Example usage",
            "modifier": "compile"
          }
        ],
        "return": {
          "type": "String|Null",
          "description": "The CSS color-scheme value or null"
        },
        "group": [
          "themes"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_themes.scss",
          "name": "_themes.scss"
        }
      },
      {
        "id": "function-get-keys",
        "title": "get-keys()",
        "groupName": "themes",
        "path": "/sass/core/themes/#function-get-keys",
        "description": "Helper function to get all unique theme keys (e.g., 'light', 'dark') from the $themes map\n",
        "commentRange": {
          "start": 93,
          "end": 94
        },
        "context": {
          "type": "function",
          "name": "get-keys",
          "code": "\n  $keys: ();\n  @each $prop, $theme-map in $tokens {\n    @if meta.type-of($theme-map) == 'map' {\n      @each $key, $val in $theme-map {\n        @if not list.index($keys, $key) {\n          $keys: list.append($keys, $key);\n        }\n      }\n    }\n  }\n  @return $keys;\n",
          "line": {
            "start": 96,
            "end": 108
          }
        },
        "return": {
          "type": "List",
          "description": "A list of all unique theme string keys"
        },
        "group": [
          "themes"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "tokens"
          }
        ],
        "file": {
          "path": "_themes.scss",
          "name": "_themes.scss"
        }
      },
      {
        "id": "mixin-declare",
        "title": "declare()",
        "groupName": "themes",
        "path": "/sass/core/themes/#mixin-declare",
        "description": "Outputs css vars for a specific type from a theme map\n",
        "commentRange": {
          "start": 110,
          "end": 123
        },
        "context": {
          "type": "mixin",
          "name": "declare",
          "code": "\n  @each $name, $definition in $tokens {\n    $value: map.get($definition, $key);\n    @if ($value != null) {\n      @include cssvar.declare($name, $value, $prefix);\n    }\n  }\n",
          "line": {
            "start": 125,
            "end": 132
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "key",
            "description": "The key used to retrieve values from the map."
          },
          {
            "type": "Map",
            "name": "tokens",
            "default": "$tokens",
            "description": "The map containing the values. Defaults to the internal $tokens map."
          },
          {
            "type": "String",
            "name": "prefix",
            "description": "The optional prefix for CSS variables."
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.themes-set-tokens((\n  \"color-background\": (\n    \"light\": white,\n    \"dark\": black\n  )\n));\n:root {\n  @include ulu.themes-declare(\"light\");\n}",
            "description": "Example usage",
            "modifier": "compile"
          }
        ],
        "group": [
          "themes"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "variable",
            "name": "tokens"
          }
        ],
        "file": {
          "path": "_themes.scss",
          "name": "_themes.scss"
        }
      }
    ],
    "accordion": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "accordion",
        "path": "/sass/components/accordion/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 25,
          "end": 58
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"background-color\":               \"background\",\n  \"background-color-open\":          white,\n  \"border-color\":                   \"rule-light\",\n  \"border-radius\":                  true,\n  \"border-width\":                   1px,\n  \"box-shadow\":                     none,\n  \"margin\":                         (1.5em 0),\n  \"margin-between\":                 0,\n  \"padding-x\":                      1.25em,\n  \"padding-y\":                      1.25em,\n  \"icon-background-color\":          transparent,\n  \"icon-background-color-hover\":    transparent,\n  \"icon-border-radius\":             50%,\n  \"icon-color\":                     \"link\",\n  \"icon-color-hover\":               \"link-hover\",\n  \"icon-font-size\":                 1em,\n  \"icon-margin\":                    1em,\n  \"icon-size\":                      auto,\n  \"icon-stroke-width\":              0.15em,\n  \"summary-background-color\":       #f6f6f6,\n  \"summary-color\":                  null,\n  \"summary-background-color-hover\": null,\n  \"summary-color-hover\":            null,\n  \"summary-line-height\":            null,\n  \"summary-padding-y\":              1em,\n  \"summary-type-size\":              false,\n  \"summary-font-weight\":            bold,\n  \"summary-border-enabled\":         true,\n  \"summary-border-color\":           \"rule-light\",\n  \"summary-border-width\":           1px,\n  \"transparent-content-padding\":    (1em 0),\n  \"borderless-margin-between\":      0.5em,\n  \"active-selector\":                \".is-active\"\n)",
          "scope": "default",
          "line": {
            "start": 60,
            "end": 94
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Color",
            "name": "background-color",
            "default": "background",
            "description": "This is the background color of the accordion before it is expanded."
          },
          {
            "type": "Color",
            "name": "background-color-open",
            "default": "white",
            "description": "This is the background color of the accordion when it is expanded. This will change the background color of the accordion's summary as well as the details."
          },
          {
            "type": "String",
            "name": "border-color",
            "default": "\"rule-light\"",
            "description": "The color of the accordion border."
          },
          {
            "type": "Boolean|Number",
            "name": "border-radius",
            "default": "true",
            "description": "This applies a rounding of edges for the accordion. If there are multiple accordions in a stack, this will only apply to the top of the first accordion and the bottom of the last accordion."
          },
          {
            "type": "Dimension",
            "name": "border-width",
            "default": "1px",
            "description": "The width of the borders of the accordions."
          },
          {
            "type": "CssValue",
            "name": "box-shadow",
            "default": "none",
            "description": "Adds a box shadow to accordion container."
          },
          {
            "type": "Dimension",
            "name": "margin",
            "default": "(1.5em 0)",
            "description": "This is the margin above and below the accordion. Multiple Accordions will stack. See margin-between below."
          },
          {
            "type": "Dimension",
            "name": "margin-between",
            "default": "0",
            "description": "This adds a margin between adjacent accordions. By default, accordions do not have any net margin between each other."
          },
          {
            "type": "Dimension",
            "name": "padding-x",
            "default": "1.5em",
            "description": "Singular value for the left and right padding."
          },
          {
            "type": "Dimension",
            "name": "padding-y",
            "default": "1.5em",
            "description": "Singular value for the top and bottom padding."
          },
          {
            "type": "Color",
            "name": "icon-background-color",
            "default": "transparent",
            "description": "The background color of the icon."
          },
          {
            "type": "Color",
            "name": "icon-background-color-hover",
            "default": "transparent",
            "description": "The background color of the icon when hovered or focused."
          },
          {
            "type": "Number",
            "name": "icon-border-radius",
            "default": "50%",
            "description": "The border-radius of the icon."
          },
          {
            "type": "String",
            "name": "icon-color",
            "default": "link",
            "description": "Color of the icon. This uses color.scss, so the value of this option should be a color variable from color.scss."
          },
          {
            "type": "String",
            "name": "icon-color-hover",
            "default": "link-hover",
            "description": "Color of the icon when hovered or focused on. This uses color.scss, so the value of this options should be a color variable from color.scss."
          },
          {
            "type": "Dimension",
            "name": "icon-font-size",
            "default": "1em",
            "description": "The font-size of the icon."
          },
          {
            "type": "Dimension",
            "name": "icon-margin",
            "default": "1em",
            "description": "The margin to the left of the icon."
          },
          {
            "type": "Dimension",
            "name": "icon-size",
            "default": "auto",
            "description": "The size of the icon. Used as the base in the flex property."
          },
          {
            "type": "Dimension",
            "name": "icon-stroke-width",
            "default": "0.15em",
            "description": "The stroke width of the icon."
          },
          {
            "type": "Color",
            "name": "summary-background-color",
            "default": "#f6f6f6",
            "description": "The background color for the summary (toggle button) of the accordion."
          },
          {
            "type": "Color",
            "name": "summary-background-color-hover",
            "default": "null",
            "description": "The background color for the summary (toggle button) of the accordion when hovered."
          },
          {
            "type": "Color",
            "name": "summary-color",
            "default": "null",
            "description": "The color of the text in the accordion summary."
          },
          {
            "type": "Color",
            "name": "summary-color-hover",
            "default": "null",
            "description": "The color of the text in the accordion summary when hovering or focusing on it."
          },
          {
            "type": "Dimension",
            "name": "summary-line-height",
            "default": "null",
            "description": "Adjusts the line height of the summary element."
          },
          {
            "type": "Dimension",
            "name": "summary-padding-y",
            "default": "1em",
            "description": "The vertical padding of the summary."
          },
          {
            "type": "String|Boolean",
            "name": "summary-type-size",
            "default": "\"large\"",
            "description": "The typography size of the text in the accordion summary. Can be a boolean to disable."
          },
          {
            "type": "Boolean",
            "name": "summary-border-enabled",
            "default": "true",
            "description": "Whether the summary has a border when the accordion is open."
          },
          {
            "type": "Color",
            "name": "summary-border-color",
            "default": "rule-light",
            "description": "The color of the summary border."
          },
          {
            "type": "Dimension",
            "name": "summary-border-width",
            "default": "1px",
            "description": "The width of the summary border."
          },
          {
            "type": "Dimension",
            "name": "transparent-content-padding",
            "default": "(0.25em 0)",
            "description": "The padding of the content area for transparent accordions."
          },
          {
            "type": "Dimension",
            "name": "borderless-margin-between",
            "default": "0.5em",
            "description": "Margin between accordions when using no-border modifier."
          },
          {
            "type": "String",
            "name": "active-selector",
            "default": "'.is-active'",
            "description": "The selector used for the active state of a non-<details> accordion."
          }
        ],
        "group": [
          "accordion"
        ],
        "access": "public",
        "file": {
          "path": "_accordion.scss",
          "name": "_accordion.scss"
        },
        "usedBy": [
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 101,
                "end": 103
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 101,
                "end": 103
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  $value: utils.require-map-get($config, $name, \"accordion [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
              "line": {
                "start": 110,
                "end": 113
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 60,
                "end": 62
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 60,
                "end": 62
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"component-adaptive-spacing [config]\");\n",
              "line": {
                "start": 77,
                "end": 79
              }
            }
          },
          {
            "description": "Outputs adaptive spacing component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefixMargin: selector.class(\"adaptive-margin\");\n  $prefixPadding: selector.class(\"adaptive-padding\");\n  $hasMargin: map.get($config, \"outputMargin\");\n  $hasPadding: map.get($config, \"outputPadding\");\n  \n  @each $name, $breakpoints in $sizes {\n    $sizePrefixMargin: \"#{ $prefixMargin }-#{ $name }\";\n    $sizePrefixPadding: \"#{ $prefixPadding }-#{ $name }\";\n    @each $breakpoint, $props in $breakpoints {\n      $direction: map.get($props, \"direction\");\n      $value: map.get($props, \"size\");\n      // If no direction it is the default\n      @if $direction == null {\n        @if $hasMargin {\n          @include -classes-for-type($sizePrefixMargin, \"margin\", $value);\n        }\n        @if $hasPadding {\n          @include -classes-for-type($sizePrefixPadding, \"padding\", $value);\n        }\n      } @else {\n        @include breakpoint.from($breakpoint, $direction) {\n          @if $hasMargin {\n            @include -classes-for-type($sizePrefixMargin, \"margin\", $value);\n          }\n          @if $hasPadding {\n            @include -classes-for-type($sizePrefixPadding, \"padding\", $value);\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 85,
                "end": 117
              }
            }
          },
          {
            "description": "Outputs adaptive spacing component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefixMargin: selector.class(\"adaptive-margin\");\n  $prefixPadding: selector.class(\"adaptive-padding\");\n  $hasMargin: map.get($config, \"outputMargin\");\n  $hasPadding: map.get($config, \"outputPadding\");\n  \n  @each $name, $breakpoints in $sizes {\n    $sizePrefixMargin: \"#{ $prefixMargin }-#{ $name }\";\n    $sizePrefixPadding: \"#{ $prefixPadding }-#{ $name }\";\n    @each $breakpoint, $props in $breakpoints {\n      $direction: map.get($props, \"direction\");\n      $value: map.get($props, \"size\");\n      // If no direction it is the default\n      @if $direction == null {\n        @if $hasMargin {\n          @include -classes-for-type($sizePrefixMargin, \"margin\", $value);\n        }\n        @if $hasPadding {\n          @include -classes-for-type($sizePrefixPadding, \"padding\", $value);\n        }\n      } @else {\n        @include breakpoint.from($breakpoint, $direction) {\n          @if $hasMargin {\n            @include -classes-for-type($sizePrefixMargin, \"margin\", $value);\n          }\n          @if $hasPadding {\n            @include -classes-for-type($sizePrefixPadding, \"padding\", $value);\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 85,
                "end": 117
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 69,
                "end": 71
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 69,
                "end": 71
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  $value: utils.require-map-get($config, $name, \"badge [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
              "line": {
                "start": 78,
                "end": 81
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 30,
                "end": 32
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 30,
                "end": 32
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"badge-stack [config]\");\n",
              "line": {
                "start": 39,
                "end": 41
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 50,
                "end": 52
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 50,
                "end": 52
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  $value: utils.require-map-get($config, $name, \"basic-hero [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
              "line": {
                "start": 59,
                "end": 62
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 53,
                "end": 55
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 53,
                "end": 55
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  $value: utils.require-map-get($config, $name, \"breadcrumb [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
              "line": {
                "start": 62,
                "end": 65
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 31,
                "end": 33
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 31,
                "end": 33
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  $value: utils.require-map-get($config, $name, \"component-button [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
              "line": {
                "start": 40,
                "end": 43
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 31,
                "end": 33
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 31,
                "end": 33
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"button-group [config]\");\n",
              "line": {
                "start": 40,
                "end": 42
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 107,
                "end": 109
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 107,
                "end": 109
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  $value: utils.require-map-get($config, $name, \"button-verbose [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
              "line": {
                "start": 116,
                "end": 119
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 82,
                "end": 84
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 82,
                "end": 84
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  $value: utils.require-map-get($config, $name, \"callout [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
              "line": {
                "start": 91,
                "end": 94
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 76,
                "end": 78
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 76,
                "end": 78
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  $value: utils.require-map-get($config, $name, \"captioned-figure [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
              "line": {
                "start": 85,
                "end": 88
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 177,
                "end": 179
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 177,
                "end": 179
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"card [config]\");\n",
              "line": {
                "start": 186,
                "end": 188
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 31,
                "end": 33
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 31,
                "end": 33
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"card-grid [config]\");\n",
              "line": {
                "start": 40,
                "end": 42
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 50,
                "end": 52
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 50,
                "end": 52
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"counter-list [config]\");\n",
              "line": {
                "start": 59,
                "end": 61
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 68,
                "end": 70
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 68,
                "end": 70
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"css-icon [config]\");\n",
              "line": {
                "start": 77,
                "end": 79
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 78,
                "end": 80
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 78,
                "end": 80
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"data-grid [config]\");\n",
              "line": {
                "start": 87,
                "end": 89
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 86,
                "end": 88
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 86,
                "end": 88
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  $value: utils.require-map-get($config, $name, \"data-list [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
              "line": {
                "start": 92,
                "end": 95
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 96,
                "end": 98
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 96,
                "end": 98
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  $value: utils.require-map-get($config, $name, \"data-table [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
              "line": {
                "start": 105,
                "end": 108
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 69,
                "end": 71
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 69,
                "end": 71
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  $value: utils.require-map-get($config, $name, \"definition-list [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
              "line": {
                "start": 78,
                "end": 81
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 76,
                "end": 78
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 76,
                "end": 78
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"flipcard [config]\");\n",
              "line": {
                "start": 93,
                "end": 95
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 29,
                "end": 31
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 29,
                "end": 31
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"flipcard-grid [config]\");\n",
              "line": {
                "start": 38,
                "end": 40
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 203,
                "end": 205
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 203,
                "end": 205
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  $value: utils.require-map-get($config, $name, \"component-form-theme [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
              "line": {
                "start": 212,
                "end": 215
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 56,
                "end": 58
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 56,
                "end": 58
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  $value: utils.require-map-get($config, $name, \"graphic-text-group [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
              "line": {
                "start": 65,
                "end": 68
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 52,
                "end": 54
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 52,
                "end": 54
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  $value: utils.require-map-get($config, $name, \"headline-label [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
              "line": {
                "start": 61,
                "end": 64
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 48,
                "end": 50
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 48,
                "end": 50
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"hero [config]\");\n",
              "line": {
                "start": 57,
                "end": 59
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 30,
                "end": 32
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 30,
                "end": 32
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"image-grid [config]\");\n",
              "line": {
                "start": 39,
                "end": 41
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 46,
                "end": 48
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 46,
                "end": 48
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"input-group [config]\");\n",
              "line": {
                "start": 55,
                "end": 57
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 31,
                "end": 33
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 31,
                "end": 33
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"list-inline [config]\");\n",
              "line": {
                "start": 40,
                "end": 42
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 47,
                "end": 49
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 47,
                "end": 49
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  $value: utils.require-map-get($config, $name, \"list-lines [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
              "line": {
                "start": 56,
                "end": 59
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 156,
                "end": 158
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 156,
                "end": 158
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  $value: utils.require-map-get($config, $name, \"menu-stack [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
              "line": {
                "start": 165,
                "end": 168
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 147,
                "end": 149
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 147,
                "end": 149
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  $value: utils.require-map-get($config, $name, \"component-modal [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
              "line": {
                "start": 156,
                "end": 159
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 60,
                "end": 62
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 60,
                "end": 62
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"card [config]\");\n",
              "line": {
                "start": 69,
                "end": 71
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 49,
                "end": 51
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 49,
                "end": 51
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"overlay-section [config]\");\n",
              "line": {
                "start": 58,
                "end": 60
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 78,
                "end": 80
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 78,
                "end": 80
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"card [config]\");\n",
              "line": {
                "start": 87,
                "end": 90
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 140,
                "end": 142
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 140,
                "end": 142
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  $value: utils.require-map-get($config, $name, \"panel [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
              "line": {
                "start": 148,
                "end": 151
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 73,
                "end": 75
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 73,
                "end": 75
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  $value: utils.require-map-get($config, $name, \"placeholder [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
              "line": {
                "start": 82,
                "end": 85
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 102,
                "end": 104
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 102,
                "end": 104
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  $value: utils.require-map-get($config, $name, \"component-popover [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
              "line": {
                "start": 111,
                "end": 114
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 107,
                "end": 109
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 107,
                "end": 109
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  $value: utils.require-map-get($config, $name, \"progress-bar [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
              "line": {
                "start": 125,
                "end": 128
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 61,
                "end": 63
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 61,
                "end": 63
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"progress-circle [config]\");\n",
              "line": {
                "start": 67,
                "end": 69
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 58,
                "end": 60
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 58,
                "end": 60
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  $value: utils.require-map-get($config, $name, \"pull-quote [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
              "line": {
                "start": 67,
                "end": 70
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 54,
                "end": 56
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 54,
                "end": 56
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  $value: utils.require-map-get($config, $name, \"rail [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
              "line": {
                "start": 63,
                "end": 66
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 32,
                "end": 34
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 32,
                "end": 34
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"ratio-box [config]\");\n",
              "line": {
                "start": 41,
                "end": 43
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 27,
                "end": 29
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 27,
                "end": 29
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"rule [config]\");\n",
              "line": {
                "start": 36,
                "end": 38
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 31,
                "end": 33
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 31,
                "end": 33
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"rule-inline [config]\");\n",
              "line": {
                "start": 40,
                "end": 42
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 66,
                "end": 68
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 66,
                "end": 68
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"scroll-slider [config]\");\n",
              "line": {
                "start": 75,
                "end": 77
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 63,
                "end": 65
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 63,
                "end": 65
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  $value: utils.require-map-get($config, $name, \"skeleton [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
              "line": {
                "start": 72,
                "end": 75
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 47,
                "end": 49
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 47,
                "end": 49
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  $value: utils.require-map-get($config, $name, \"button-verbose [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
              "line": {
                "start": 56,
                "end": 59
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 61,
                "end": 63
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 61,
                "end": 63
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, 'slider [config]');\n",
              "line": {
                "start": 70,
                "end": 72
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 33,
                "end": 35
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 33,
                "end": 35
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"spoke-spinner [config]\");\n",
              "line": {
                "start": 50,
                "end": 52
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 70,
                "end": 72
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 70,
                "end": 72
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  $value: utils.require-map-get($config, $name, \"sticky-list [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
              "line": {
                "start": 87,
                "end": 90
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 28,
                "end": 30
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 28,
                "end": 30
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"table-scroller [config]\");\n",
              "line": {
                "start": 37,
                "end": 39
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 103,
                "end": 105
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 103,
                "end": 105
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  $value: utils.require-map-get($config, $name, \"component-tabs [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
              "line": {
                "start": 112,
                "end": 115
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 94,
                "end": 96
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 94,
                "end": 96
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  $value: utils.require-map-get($config, $name, \"tag [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
              "line": {
                "start": 119,
                "end": 122
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 28,
                "end": 30
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 28,
                "end": 30
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"tagged [config]\");\n",
              "line": {
                "start": 37,
                "end": 39
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 68,
                "end": 70
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 68,
                "end": 70
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  $value: utils.require-map-get($config, $name, \"component-tile-button [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
              "line": {
                "start": 77,
                "end": 80
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 76,
                "end": 78
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 76,
                "end": 78
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"component-tile-grid [config]\");\n",
              "line": {
                "start": 101,
                "end": 103
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 34,
                "end": 36
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 34,
                "end": 36
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"tile-grid-overlay [config]\");\n",
              "line": {
                "start": 43,
                "end": 45
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 28,
                "end": 30
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 28,
                "end": 30
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"vignette [config]\");\n",
              "line": {
                "start": 37,
                "end": 39
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 41,
                "end": 43
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 41,
                "end": 43
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"component-wysiwyg [config]\");\n",
              "line": {
                "start": 50,
                "end": 52
              }
            }
          }
        ]
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "accordion",
        "path": "/sass/components/accordion/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 96,
          "end": 99
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 101,
            "end": 103
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-accordion-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "accordion"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_accordion.scss",
          "name": "_accordion.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "accordion",
        "path": "/sass/components/accordion/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 105,
          "end": 108
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  $value: utils.require-map-get($config, $name, \"accordion [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
          "line": {
            "start": 110,
            "end": 113
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-accordion-get(\"property\");"
          }
        ],
        "group": [
          "accordion"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_accordion.scss",
          "name": "_accordion.scss"
        },
        "usedBy": [
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 278
              }
            }
          },
          {
            "description": "Outputs adaptive spacing component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefixMargin: selector.class(\"adaptive-margin\");\n  $prefixPadding: selector.class(\"adaptive-padding\");\n  $hasMargin: map.get($config, \"outputMargin\");\n  $hasPadding: map.get($config, \"outputPadding\");\n  \n  @each $name, $breakpoints in $sizes {\n    $sizePrefixMargin: \"#{ $prefixMargin }-#{ $name }\";\n    $sizePrefixPadding: \"#{ $prefixPadding }-#{ $name }\";\n    @each $breakpoint, $props in $breakpoints {\n      $direction: map.get($props, \"direction\");\n      $value: map.get($props, \"size\");\n      // If no direction it is the default\n      @if $direction == null {\n        @if $hasMargin {\n          @include -classes-for-type($sizePrefixMargin, \"margin\", $value);\n        }\n        @if $hasPadding {\n          @include -classes-for-type($sizePrefixPadding, \"padding\", $value);\n        }\n      } @else {\n        @include breakpoint.from($breakpoint, $direction) {\n          @if $hasMargin {\n            @include -classes-for-type($sizePrefixMargin, \"margin\", $value);\n          }\n          @if $hasPadding {\n            @include -classes-for-type($sizePrefixPadding, \"padding\", $value);\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 85,
                "end": 117
              }
            }
          },
          {
            "description": "Outputs adaptive spacing component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefixMargin: selector.class(\"adaptive-margin\");\n  $prefixPadding: selector.class(\"adaptive-padding\");\n  $hasMargin: map.get($config, \"outputMargin\");\n  $hasPadding: map.get($config, \"outputPadding\");\n  \n  @each $name, $breakpoints in $sizes {\n    $sizePrefixMargin: \"#{ $prefixMargin }-#{ $name }\";\n    $sizePrefixPadding: \"#{ $prefixPadding }-#{ $name }\";\n    @each $breakpoint, $props in $breakpoints {\n      $direction: map.get($props, \"direction\");\n      $value: map.get($props, \"size\");\n      // If no direction it is the default\n      @if $direction == null {\n        @if $hasMargin {\n          @include -classes-for-type($sizePrefixMargin, \"margin\", $value);\n        }\n        @if $hasPadding {\n          @include -classes-for-type($sizePrefixPadding, \"padding\", $value);\n        }\n      } @else {\n        @include breakpoint.from($breakpoint, $direction) {\n          @if $hasMargin {\n            @include -classes-for-type($sizePrefixMargin, \"margin\", $value);\n          }\n          @if $hasPadding {\n            @include -classes-for-type($sizePrefixPadding, \"padding\", $value);\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 85,
                "end": 117
              }
            }
          },
          {
            "description": "Outputs adaptive spacing component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefixMargin: selector.class(\"adaptive-margin\");\n  $prefixPadding: selector.class(\"adaptive-padding\");\n  $hasMargin: map.get($config, \"outputMargin\");\n  $hasPadding: map.get($config, \"outputPadding\");\n  \n  @each $name, $breakpoints in $sizes {\n    $sizePrefixMargin: \"#{ $prefixMargin }-#{ $name }\";\n    $sizePrefixPadding: \"#{ $prefixPadding }-#{ $name }\";\n    @each $breakpoint, $props in $breakpoints {\n      $direction: map.get($props, \"direction\");\n      $value: map.get($props, \"size\");\n      // If no direction it is the default\n      @if $direction == null {\n        @if $hasMargin {\n          @include -classes-for-type($sizePrefixMargin, \"margin\", $value);\n        }\n        @if $hasPadding {\n          @include -classes-for-type($sizePrefixPadding, \"padding\", $value);\n        }\n      } @else {\n        @include breakpoint.from($breakpoint, $direction) {\n          @if $hasMargin {\n            @include -classes-for-type($sizePrefixMargin, \"margin\", $value);\n          }\n          @if $hasPadding {\n            @include -classes-for-type($sizePrefixPadding, \"padding\", $value);\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 85,
                "end": 117
              }
            }
          },
          {
            "description": "Outputs adaptive spacing component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefixMargin: selector.class(\"adaptive-margin\");\n  $prefixPadding: selector.class(\"adaptive-padding\");\n  $hasMargin: map.get($config, \"outputMargin\");\n  $hasPadding: map.get($config, \"outputPadding\");\n  \n  @each $name, $breakpoints in $sizes {\n    $sizePrefixMargin: \"#{ $prefixMargin }-#{ $name }\";\n    $sizePrefixPadding: \"#{ $prefixPadding }-#{ $name }\";\n    @each $breakpoint, $props in $breakpoints {\n      $direction: map.get($props, \"direction\");\n      $value: map.get($props, \"size\");\n      // If no direction it is the default\n      @if $direction == null {\n        @if $hasMargin {\n          @include -classes-for-type($sizePrefixMargin, \"margin\", $value);\n        }\n        @if $hasPadding {\n          @include -classes-for-type($sizePrefixPadding, \"padding\", $value);\n        }\n      } @else {\n        @include breakpoint.from($breakpoint, $direction) {\n          @if $hasMargin {\n            @include -classes-for-type($sizePrefixMargin, \"margin\", $value);\n          }\n          @if $hasPadding {\n            @include -classes-for-type($sizePrefixPadding, \"padding\", $value);\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 85,
                "end": 117
              }
            }
          },
          {
            "description": "Output badge component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"badge\");\n  // Badge content can be text, image, icon, or background-image\n  #{ $prefix } {\n    display: block;\n    width: get(\"width\");\n    max-width: 100%;\n    flex: 0 0 get(\"width\");\n    font-size: get(\"font-size\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n  }\n  #{ $prefix }__inner {\n    display: block;\n    padding-bottom: 100%;\n    width: 100%;\n    position: relative;\n    overflow: hidden;\n    background-repeat: no-repeat;\n    background-size: cover;\n    background-position: center center;\n    text-align: center;\n    border-radius: get(\"border-radius\");\n    transition-property: transform, color, box-shadow, background-color;\n    transition-duration: get(\"transition-duration\");\n    transition-timing-function: ease-in-out;\n    box-shadow: get(\"box-shadow\");\n    // In case this is used as a link or router-link\n    &,\n    &:hover,\n    &:focus,\n    &:visited {\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n    }\n  }\n  #{ $prefix }--clickable,\n  button#{ $prefix },\n  a#{ $prefix } {\n    &:hover,\n    &:focus {\n      #{ $prefix }__inner {\n        color: color.get(get(\"color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n        box-shadow: get(\"box-shadow-hover\");\n        transform: scale(get(\"hover-scale\"));\n      }\n    }\n  }\n  #{ $prefix }__inner > * {\n    display: block;\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n  }\n  #{ $prefix }__inner > img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    margin: 0 !important;\n  }\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: map.get($props, \"width\");\n      font-size: map.get($props, \"font-size\");\n      flex-basis: map.get($props, \"width\");\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 169
              }
            }
          },
          {
            "description": "Output badge component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"badge\");\n  // Badge content can be text, image, icon, or background-image\n  #{ $prefix } {\n    display: block;\n    width: get(\"width\");\n    max-width: 100%;\n    flex: 0 0 get(\"width\");\n    font-size: get(\"font-size\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n  }\n  #{ $prefix }__inner {\n    display: block;\n    padding-bottom: 100%;\n    width: 100%;\n    position: relative;\n    overflow: hidden;\n    background-repeat: no-repeat;\n    background-size: cover;\n    background-position: center center;\n    text-align: center;\n    border-radius: get(\"border-radius\");\n    transition-property: transform, color, box-shadow, background-color;\n    transition-duration: get(\"transition-duration\");\n    transition-timing-function: ease-in-out;\n    box-shadow: get(\"box-shadow\");\n    // In case this is used as a link or router-link\n    &,\n    &:hover,\n    &:focus,\n    &:visited {\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n    }\n  }\n  #{ $prefix }--clickable,\n  button#{ $prefix },\n  a#{ $prefix } {\n    &:hover,\n    &:focus {\n      #{ $prefix }__inner {\n        color: color.get(get(\"color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n        box-shadow: get(\"box-shadow-hover\");\n        transform: scale(get(\"hover-scale\"));\n      }\n    }\n  }\n  #{ $prefix }__inner > * {\n    display: block;\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n  }\n  #{ $prefix }__inner > img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    margin: 0 !important;\n  }\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: map.get($props, \"width\");\n      font-size: map.get($props, \"font-size\");\n      flex-basis: map.get($props, \"width\");\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 169
              }
            }
          },
          {
            "description": "Output badge component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"badge\");\n  // Badge content can be text, image, icon, or background-image\n  #{ $prefix } {\n    display: block;\n    width: get(\"width\");\n    max-width: 100%;\n    flex: 0 0 get(\"width\");\n    font-size: get(\"font-size\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n  }\n  #{ $prefix }__inner {\n    display: block;\n    padding-bottom: 100%;\n    width: 100%;\n    position: relative;\n    overflow: hidden;\n    background-repeat: no-repeat;\n    background-size: cover;\n    background-position: center center;\n    text-align: center;\n    border-radius: get(\"border-radius\");\n    transition-property: transform, color, box-shadow, background-color;\n    transition-duration: get(\"transition-duration\");\n    transition-timing-function: ease-in-out;\n    box-shadow: get(\"box-shadow\");\n    // In case this is used as a link or router-link\n    &,\n    &:hover,\n    &:focus,\n    &:visited {\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n    }\n  }\n  #{ $prefix }--clickable,\n  button#{ $prefix },\n  a#{ $prefix } {\n    &:hover,\n    &:focus {\n      #{ $prefix }__inner {\n        color: color.get(get(\"color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n        box-shadow: get(\"box-shadow-hover\");\n        transform: scale(get(\"hover-scale\"));\n      }\n    }\n  }\n  #{ $prefix }__inner > * {\n    display: block;\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n  }\n  #{ $prefix }__inner > img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    margin: 0 !important;\n  }\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: map.get($props, \"width\");\n      font-size: map.get($props, \"font-size\");\n      flex-basis: map.get($props, \"width\");\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 169
              }
            }
          },
          {
            "description": "Output badge component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"badge\");\n  // Badge content can be text, image, icon, or background-image\n  #{ $prefix } {\n    display: block;\n    width: get(\"width\");\n    max-width: 100%;\n    flex: 0 0 get(\"width\");\n    font-size: get(\"font-size\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n  }\n  #{ $prefix }__inner {\n    display: block;\n    padding-bottom: 100%;\n    width: 100%;\n    position: relative;\n    overflow: hidden;\n    background-repeat: no-repeat;\n    background-size: cover;\n    background-position: center center;\n    text-align: center;\n    border-radius: get(\"border-radius\");\n    transition-property: transform, color, box-shadow, background-color;\n    transition-duration: get(\"transition-duration\");\n    transition-timing-function: ease-in-out;\n    box-shadow: get(\"box-shadow\");\n    // In case this is used as a link or router-link\n    &,\n    &:hover,\n    &:focus,\n    &:visited {\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n    }\n  }\n  #{ $prefix }--clickable,\n  button#{ $prefix },\n  a#{ $prefix } {\n    &:hover,\n    &:focus {\n      #{ $prefix }__inner {\n        color: color.get(get(\"color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n        box-shadow: get(\"box-shadow-hover\");\n        transform: scale(get(\"hover-scale\"));\n      }\n    }\n  }\n  #{ $prefix }__inner > * {\n    display: block;\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n  }\n  #{ $prefix }__inner > img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    margin: 0 !important;\n  }\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: map.get($props, \"width\");\n      font-size: map.get($props, \"font-size\");\n      flex-basis: map.get($props, \"width\");\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 169
              }
            }
          },
          {
            "description": "Output badge component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"badge\");\n  // Badge content can be text, image, icon, or background-image\n  #{ $prefix } {\n    display: block;\n    width: get(\"width\");\n    max-width: 100%;\n    flex: 0 0 get(\"width\");\n    font-size: get(\"font-size\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n  }\n  #{ $prefix }__inner {\n    display: block;\n    padding-bottom: 100%;\n    width: 100%;\n    position: relative;\n    overflow: hidden;\n    background-repeat: no-repeat;\n    background-size: cover;\n    background-position: center center;\n    text-align: center;\n    border-radius: get(\"border-radius\");\n    transition-property: transform, color, box-shadow, background-color;\n    transition-duration: get(\"transition-duration\");\n    transition-timing-function: ease-in-out;\n    box-shadow: get(\"box-shadow\");\n    // In case this is used as a link or router-link\n    &,\n    &:hover,\n    &:focus,\n    &:visited {\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n    }\n  }\n  #{ $prefix }--clickable,\n  button#{ $prefix },\n  a#{ $prefix } {\n    &:hover,\n    &:focus {\n      #{ $prefix }__inner {\n        color: color.get(get(\"color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n        box-shadow: get(\"box-shadow-hover\");\n        transform: scale(get(\"hover-scale\"));\n      }\n    }\n  }\n  #{ $prefix }__inner > * {\n    display: block;\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n  }\n  #{ $prefix }__inner > img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    margin: 0 !important;\n  }\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: map.get($props, \"width\");\n      font-size: map.get($props, \"font-size\");\n      flex-basis: map.get($props, \"width\");\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 169
              }
            }
          },
          {
            "description": "Output badge component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"badge\");\n  // Badge content can be text, image, icon, or background-image\n  #{ $prefix } {\n    display: block;\n    width: get(\"width\");\n    max-width: 100%;\n    flex: 0 0 get(\"width\");\n    font-size: get(\"font-size\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n  }\n  #{ $prefix }__inner {\n    display: block;\n    padding-bottom: 100%;\n    width: 100%;\n    position: relative;\n    overflow: hidden;\n    background-repeat: no-repeat;\n    background-size: cover;\n    background-position: center center;\n    text-align: center;\n    border-radius: get(\"border-radius\");\n    transition-property: transform, color, box-shadow, background-color;\n    transition-duration: get(\"transition-duration\");\n    transition-timing-function: ease-in-out;\n    box-shadow: get(\"box-shadow\");\n    // In case this is used as a link or router-link\n    &,\n    &:hover,\n    &:focus,\n    &:visited {\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n    }\n  }\n  #{ $prefix }--clickable,\n  button#{ $prefix },\n  a#{ $prefix } {\n    &:hover,\n    &:focus {\n      #{ $prefix }__inner {\n        color: color.get(get(\"color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n        box-shadow: get(\"box-shadow-hover\");\n        transform: scale(get(\"hover-scale\"));\n      }\n    }\n  }\n  #{ $prefix }__inner > * {\n    display: block;\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n  }\n  #{ $prefix }__inner > img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    margin: 0 !important;\n  }\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: map.get($props, \"width\");\n      font-size: map.get($props, \"font-size\");\n      flex-basis: map.get($props, \"width\");\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 169
              }
            }
          },
          {
            "description": "Output badge component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"badge\");\n  // Badge content can be text, image, icon, or background-image\n  #{ $prefix } {\n    display: block;\n    width: get(\"width\");\n    max-width: 100%;\n    flex: 0 0 get(\"width\");\n    font-size: get(\"font-size\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n  }\n  #{ $prefix }__inner {\n    display: block;\n    padding-bottom: 100%;\n    width: 100%;\n    position: relative;\n    overflow: hidden;\n    background-repeat: no-repeat;\n    background-size: cover;\n    background-position: center center;\n    text-align: center;\n    border-radius: get(\"border-radius\");\n    transition-property: transform, color, box-shadow, background-color;\n    transition-duration: get(\"transition-duration\");\n    transition-timing-function: ease-in-out;\n    box-shadow: get(\"box-shadow\");\n    // In case this is used as a link or router-link\n    &,\n    &:hover,\n    &:focus,\n    &:visited {\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n    }\n  }\n  #{ $prefix }--clickable,\n  button#{ $prefix },\n  a#{ $prefix } {\n    &:hover,\n    &:focus {\n      #{ $prefix }__inner {\n        color: color.get(get(\"color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n        box-shadow: get(\"box-shadow-hover\");\n        transform: scale(get(\"hover-scale\"));\n      }\n    }\n  }\n  #{ $prefix }__inner > * {\n    display: block;\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n  }\n  #{ $prefix }__inner > img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    margin: 0 !important;\n  }\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: map.get($props, \"width\");\n      font-size: map.get($props, \"font-size\");\n      flex-basis: map.get($props, \"width\");\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 169
              }
            }
          },
          {
            "description": "Output badge component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"badge\");\n  // Badge content can be text, image, icon, or background-image\n  #{ $prefix } {\n    display: block;\n    width: get(\"width\");\n    max-width: 100%;\n    flex: 0 0 get(\"width\");\n    font-size: get(\"font-size\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n  }\n  #{ $prefix }__inner {\n    display: block;\n    padding-bottom: 100%;\n    width: 100%;\n    position: relative;\n    overflow: hidden;\n    background-repeat: no-repeat;\n    background-size: cover;\n    background-position: center center;\n    text-align: center;\n    border-radius: get(\"border-radius\");\n    transition-property: transform, color, box-shadow, background-color;\n    transition-duration: get(\"transition-duration\");\n    transition-timing-function: ease-in-out;\n    box-shadow: get(\"box-shadow\");\n    // In case this is used as a link or router-link\n    &,\n    &:hover,\n    &:focus,\n    &:visited {\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n    }\n  }\n  #{ $prefix }--clickable,\n  button#{ $prefix },\n  a#{ $prefix } {\n    &:hover,\n    &:focus {\n      #{ $prefix }__inner {\n        color: color.get(get(\"color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n        box-shadow: get(\"box-shadow-hover\");\n        transform: scale(get(\"hover-scale\"));\n      }\n    }\n  }\n  #{ $prefix }__inner > * {\n    display: block;\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n  }\n  #{ $prefix }__inner > img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    margin: 0 !important;\n  }\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: map.get($props, \"width\");\n      font-size: map.get($props, \"font-size\");\n      flex-basis: map.get($props, \"width\");\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 169
              }
            }
          },
          {
            "description": "Output badge component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"badge\");\n  // Badge content can be text, image, icon, or background-image\n  #{ $prefix } {\n    display: block;\n    width: get(\"width\");\n    max-width: 100%;\n    flex: 0 0 get(\"width\");\n    font-size: get(\"font-size\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n  }\n  #{ $prefix }__inner {\n    display: block;\n    padding-bottom: 100%;\n    width: 100%;\n    position: relative;\n    overflow: hidden;\n    background-repeat: no-repeat;\n    background-size: cover;\n    background-position: center center;\n    text-align: center;\n    border-radius: get(\"border-radius\");\n    transition-property: transform, color, box-shadow, background-color;\n    transition-duration: get(\"transition-duration\");\n    transition-timing-function: ease-in-out;\n    box-shadow: get(\"box-shadow\");\n    // In case this is used as a link or router-link\n    &,\n    &:hover,\n    &:focus,\n    &:visited {\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n    }\n  }\n  #{ $prefix }--clickable,\n  button#{ $prefix },\n  a#{ $prefix } {\n    &:hover,\n    &:focus {\n      #{ $prefix }__inner {\n        color: color.get(get(\"color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n        box-shadow: get(\"box-shadow-hover\");\n        transform: scale(get(\"hover-scale\"));\n      }\n    }\n  }\n  #{ $prefix }__inner > * {\n    display: block;\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n  }\n  #{ $prefix }__inner > img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    margin: 0 !important;\n  }\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: map.get($props, \"width\");\n      font-size: map.get($props, \"font-size\");\n      flex-basis: map.get($props, \"width\");\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 169
              }
            }
          },
          {
            "description": "Output badge component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"badge\");\n  // Badge content can be text, image, icon, or background-image\n  #{ $prefix } {\n    display: block;\n    width: get(\"width\");\n    max-width: 100%;\n    flex: 0 0 get(\"width\");\n    font-size: get(\"font-size\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n  }\n  #{ $prefix }__inner {\n    display: block;\n    padding-bottom: 100%;\n    width: 100%;\n    position: relative;\n    overflow: hidden;\n    background-repeat: no-repeat;\n    background-size: cover;\n    background-position: center center;\n    text-align: center;\n    border-radius: get(\"border-radius\");\n    transition-property: transform, color, box-shadow, background-color;\n    transition-duration: get(\"transition-duration\");\n    transition-timing-function: ease-in-out;\n    box-shadow: get(\"box-shadow\");\n    // In case this is used as a link or router-link\n    &,\n    &:hover,\n    &:focus,\n    &:visited {\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n    }\n  }\n  #{ $prefix }--clickable,\n  button#{ $prefix },\n  a#{ $prefix } {\n    &:hover,\n    &:focus {\n      #{ $prefix }__inner {\n        color: color.get(get(\"color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n        box-shadow: get(\"box-shadow-hover\");\n        transform: scale(get(\"hover-scale\"));\n      }\n    }\n  }\n  #{ $prefix }__inner > * {\n    display: block;\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n  }\n  #{ $prefix }__inner > img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    margin: 0 !important;\n  }\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: map.get($props, \"width\");\n      font-size: map.get($props, \"font-size\");\n      flex-basis: map.get($props, \"width\");\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 169
              }
            }
          },
          {
            "description": "Output badge component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"badge\");\n  // Badge content can be text, image, icon, or background-image\n  #{ $prefix } {\n    display: block;\n    width: get(\"width\");\n    max-width: 100%;\n    flex: 0 0 get(\"width\");\n    font-size: get(\"font-size\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n  }\n  #{ $prefix }__inner {\n    display: block;\n    padding-bottom: 100%;\n    width: 100%;\n    position: relative;\n    overflow: hidden;\n    background-repeat: no-repeat;\n    background-size: cover;\n    background-position: center center;\n    text-align: center;\n    border-radius: get(\"border-radius\");\n    transition-property: transform, color, box-shadow, background-color;\n    transition-duration: get(\"transition-duration\");\n    transition-timing-function: ease-in-out;\n    box-shadow: get(\"box-shadow\");\n    // In case this is used as a link or router-link\n    &,\n    &:hover,\n    &:focus,\n    &:visited {\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n    }\n  }\n  #{ $prefix }--clickable,\n  button#{ $prefix },\n  a#{ $prefix } {\n    &:hover,\n    &:focus {\n      #{ $prefix }__inner {\n        color: color.get(get(\"color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n        box-shadow: get(\"box-shadow-hover\");\n        transform: scale(get(\"hover-scale\"));\n      }\n    }\n  }\n  #{ $prefix }__inner > * {\n    display: block;\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n  }\n  #{ $prefix }__inner > img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    margin: 0 !important;\n  }\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: map.get($props, \"width\");\n      font-size: map.get($props, \"font-size\");\n      flex-basis: map.get($props, \"width\");\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 169
              }
            }
          },
          {
            "description": "Output badge component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"badge\");\n  // Badge content can be text, image, icon, or background-image\n  #{ $prefix } {\n    display: block;\n    width: get(\"width\");\n    max-width: 100%;\n    flex: 0 0 get(\"width\");\n    font-size: get(\"font-size\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n  }\n  #{ $prefix }__inner {\n    display: block;\n    padding-bottom: 100%;\n    width: 100%;\n    position: relative;\n    overflow: hidden;\n    background-repeat: no-repeat;\n    background-size: cover;\n    background-position: center center;\n    text-align: center;\n    border-radius: get(\"border-radius\");\n    transition-property: transform, color, box-shadow, background-color;\n    transition-duration: get(\"transition-duration\");\n    transition-timing-function: ease-in-out;\n    box-shadow: get(\"box-shadow\");\n    // In case this is used as a link or router-link\n    &,\n    &:hover,\n    &:focus,\n    &:visited {\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n    }\n  }\n  #{ $prefix }--clickable,\n  button#{ $prefix },\n  a#{ $prefix } {\n    &:hover,\n    &:focus {\n      #{ $prefix }__inner {\n        color: color.get(get(\"color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n        box-shadow: get(\"box-shadow-hover\");\n        transform: scale(get(\"hover-scale\"));\n      }\n    }\n  }\n  #{ $prefix }__inner > * {\n    display: block;\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n  }\n  #{ $prefix }__inner > img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    margin: 0 !important;\n  }\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: map.get($props, \"width\");\n      font-size: map.get($props, \"font-size\");\n      flex-basis: map.get($props, \"width\");\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 169
              }
            }
          },
          {
            "description": "Output badge component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"badge\");\n  // Badge content can be text, image, icon, or background-image\n  #{ $prefix } {\n    display: block;\n    width: get(\"width\");\n    max-width: 100%;\n    flex: 0 0 get(\"width\");\n    font-size: get(\"font-size\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n  }\n  #{ $prefix }__inner {\n    display: block;\n    padding-bottom: 100%;\n    width: 100%;\n    position: relative;\n    overflow: hidden;\n    background-repeat: no-repeat;\n    background-size: cover;\n    background-position: center center;\n    text-align: center;\n    border-radius: get(\"border-radius\");\n    transition-property: transform, color, box-shadow, background-color;\n    transition-duration: get(\"transition-duration\");\n    transition-timing-function: ease-in-out;\n    box-shadow: get(\"box-shadow\");\n    // In case this is used as a link or router-link\n    &,\n    &:hover,\n    &:focus,\n    &:visited {\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n    }\n  }\n  #{ $prefix }--clickable,\n  button#{ $prefix },\n  a#{ $prefix } {\n    &:hover,\n    &:focus {\n      #{ $prefix }__inner {\n        color: color.get(get(\"color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n        box-shadow: get(\"box-shadow-hover\");\n        transform: scale(get(\"hover-scale\"));\n      }\n    }\n  }\n  #{ $prefix }__inner > * {\n    display: block;\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n  }\n  #{ $prefix }__inner > img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    margin: 0 !important;\n  }\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: map.get($props, \"width\");\n      font-size: map.get($props, \"font-size\");\n      flex-basis: map.get($props, \"width\");\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 169
              }
            }
          },
          {
            "description": "Output badge component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"badge\");\n  // Badge content can be text, image, icon, or background-image\n  #{ $prefix } {\n    display: block;\n    width: get(\"width\");\n    max-width: 100%;\n    flex: 0 0 get(\"width\");\n    font-size: get(\"font-size\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n  }\n  #{ $prefix }__inner {\n    display: block;\n    padding-bottom: 100%;\n    width: 100%;\n    position: relative;\n    overflow: hidden;\n    background-repeat: no-repeat;\n    background-size: cover;\n    background-position: center center;\n    text-align: center;\n    border-radius: get(\"border-radius\");\n    transition-property: transform, color, box-shadow, background-color;\n    transition-duration: get(\"transition-duration\");\n    transition-timing-function: ease-in-out;\n    box-shadow: get(\"box-shadow\");\n    // In case this is used as a link or router-link\n    &,\n    &:hover,\n    &:focus,\n    &:visited {\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n    }\n  }\n  #{ $prefix }--clickable,\n  button#{ $prefix },\n  a#{ $prefix } {\n    &:hover,\n    &:focus {\n      #{ $prefix }__inner {\n        color: color.get(get(\"color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n        box-shadow: get(\"box-shadow-hover\");\n        transform: scale(get(\"hover-scale\"));\n      }\n    }\n  }\n  #{ $prefix }__inner > * {\n    display: block;\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n  }\n  #{ $prefix }__inner > img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    margin: 0 !important;\n  }\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: map.get($props, \"width\");\n      font-size: map.get($props, \"font-size\");\n      flex-basis: map.get($props, \"width\");\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 169
              }
            }
          },
          {
            "description": "Output badge component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"badge\");\n  // Badge content can be text, image, icon, or background-image\n  #{ $prefix } {\n    display: block;\n    width: get(\"width\");\n    max-width: 100%;\n    flex: 0 0 get(\"width\");\n    font-size: get(\"font-size\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n  }\n  #{ $prefix }__inner {\n    display: block;\n    padding-bottom: 100%;\n    width: 100%;\n    position: relative;\n    overflow: hidden;\n    background-repeat: no-repeat;\n    background-size: cover;\n    background-position: center center;\n    text-align: center;\n    border-radius: get(\"border-radius\");\n    transition-property: transform, color, box-shadow, background-color;\n    transition-duration: get(\"transition-duration\");\n    transition-timing-function: ease-in-out;\n    box-shadow: get(\"box-shadow\");\n    // In case this is used as a link or router-link\n    &,\n    &:hover,\n    &:focus,\n    &:visited {\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n    }\n  }\n  #{ $prefix }--clickable,\n  button#{ $prefix },\n  a#{ $prefix } {\n    &:hover,\n    &:focus {\n      #{ $prefix }__inner {\n        color: color.get(get(\"color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n        box-shadow: get(\"box-shadow-hover\");\n        transform: scale(get(\"hover-scale\"));\n      }\n    }\n  }\n  #{ $prefix }__inner > * {\n    display: block;\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n  }\n  #{ $prefix }__inner > img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    margin: 0 !important;\n  }\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: map.get($props, \"width\");\n      font-size: map.get($props, \"font-size\");\n      flex-basis: map.get($props, \"width\");\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 169
              }
            }
          },
          {
            "description": "Output badge component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"badge\");\n  // Badge content can be text, image, icon, or background-image\n  #{ $prefix } {\n    display: block;\n    width: get(\"width\");\n    max-width: 100%;\n    flex: 0 0 get(\"width\");\n    font-size: get(\"font-size\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n  }\n  #{ $prefix }__inner {\n    display: block;\n    padding-bottom: 100%;\n    width: 100%;\n    position: relative;\n    overflow: hidden;\n    background-repeat: no-repeat;\n    background-size: cover;\n    background-position: center center;\n    text-align: center;\n    border-radius: get(\"border-radius\");\n    transition-property: transform, color, box-shadow, background-color;\n    transition-duration: get(\"transition-duration\");\n    transition-timing-function: ease-in-out;\n    box-shadow: get(\"box-shadow\");\n    // In case this is used as a link or router-link\n    &,\n    &:hover,\n    &:focus,\n    &:visited {\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n    }\n  }\n  #{ $prefix }--clickable,\n  button#{ $prefix },\n  a#{ $prefix } {\n    &:hover,\n    &:focus {\n      #{ $prefix }__inner {\n        color: color.get(get(\"color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n        box-shadow: get(\"box-shadow-hover\");\n        transform: scale(get(\"hover-scale\"));\n      }\n    }\n  }\n  #{ $prefix }__inner > * {\n    display: block;\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n  }\n  #{ $prefix }__inner > img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    margin: 0 !important;\n  }\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: map.get($props, \"width\");\n      font-size: map.get($props, \"font-size\");\n      flex-basis: map.get($props, \"width\");\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 169
              }
            }
          },
          {
            "description": "Output badge component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"badge\");\n  // Badge content can be text, image, icon, or background-image\n  #{ $prefix } {\n    display: block;\n    width: get(\"width\");\n    max-width: 100%;\n    flex: 0 0 get(\"width\");\n    font-size: get(\"font-size\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n  }\n  #{ $prefix }__inner {\n    display: block;\n    padding-bottom: 100%;\n    width: 100%;\n    position: relative;\n    overflow: hidden;\n    background-repeat: no-repeat;\n    background-size: cover;\n    background-position: center center;\n    text-align: center;\n    border-radius: get(\"border-radius\");\n    transition-property: transform, color, box-shadow, background-color;\n    transition-duration: get(\"transition-duration\");\n    transition-timing-function: ease-in-out;\n    box-shadow: get(\"box-shadow\");\n    // In case this is used as a link or router-link\n    &,\n    &:hover,\n    &:focus,\n    &:visited {\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n    }\n  }\n  #{ $prefix }--clickable,\n  button#{ $prefix },\n  a#{ $prefix } {\n    &:hover,\n    &:focus {\n      #{ $prefix }__inner {\n        color: color.get(get(\"color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n        box-shadow: get(\"box-shadow-hover\");\n        transform: scale(get(\"hover-scale\"));\n      }\n    }\n  }\n  #{ $prefix }__inner > * {\n    display: block;\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n  }\n  #{ $prefix }__inner > img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    margin: 0 !important;\n  }\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: map.get($props, \"width\");\n      font-size: map.get($props, \"font-size\");\n      flex-basis: map.get($props, \"width\");\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 169
              }
            }
          },
          {
            "description": "Output badge component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"badge\");\n  // Badge content can be text, image, icon, or background-image\n  #{ $prefix } {\n    display: block;\n    width: get(\"width\");\n    max-width: 100%;\n    flex: 0 0 get(\"width\");\n    font-size: get(\"font-size\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n  }\n  #{ $prefix }__inner {\n    display: block;\n    padding-bottom: 100%;\n    width: 100%;\n    position: relative;\n    overflow: hidden;\n    background-repeat: no-repeat;\n    background-size: cover;\n    background-position: center center;\n    text-align: center;\n    border-radius: get(\"border-radius\");\n    transition-property: transform, color, box-shadow, background-color;\n    transition-duration: get(\"transition-duration\");\n    transition-timing-function: ease-in-out;\n    box-shadow: get(\"box-shadow\");\n    // In case this is used as a link or router-link\n    &,\n    &:hover,\n    &:focus,\n    &:visited {\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n    }\n  }\n  #{ $prefix }--clickable,\n  button#{ $prefix },\n  a#{ $prefix } {\n    &:hover,\n    &:focus {\n      #{ $prefix }__inner {\n        color: color.get(get(\"color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n        box-shadow: get(\"box-shadow-hover\");\n        transform: scale(get(\"hover-scale\"));\n      }\n    }\n  }\n  #{ $prefix }__inner > * {\n    display: block;\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n  }\n  #{ $prefix }__inner > img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    margin: 0 !important;\n  }\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: map.get($props, \"width\");\n      font-size: map.get($props, \"font-size\");\n      flex-basis: map.get($props, \"width\");\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 169
              }
            }
          },
          {
            "description": "Output badge component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"badge\");\n  // Badge content can be text, image, icon, or background-image\n  #{ $prefix } {\n    display: block;\n    width: get(\"width\");\n    max-width: 100%;\n    flex: 0 0 get(\"width\");\n    font-size: get(\"font-size\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n  }\n  #{ $prefix }__inner {\n    display: block;\n    padding-bottom: 100%;\n    width: 100%;\n    position: relative;\n    overflow: hidden;\n    background-repeat: no-repeat;\n    background-size: cover;\n    background-position: center center;\n    text-align: center;\n    border-radius: get(\"border-radius\");\n    transition-property: transform, color, box-shadow, background-color;\n    transition-duration: get(\"transition-duration\");\n    transition-timing-function: ease-in-out;\n    box-shadow: get(\"box-shadow\");\n    // In case this is used as a link or router-link\n    &,\n    &:hover,\n    &:focus,\n    &:visited {\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n    }\n  }\n  #{ $prefix }--clickable,\n  button#{ $prefix },\n  a#{ $prefix } {\n    &:hover,\n    &:focus {\n      #{ $prefix }__inner {\n        color: color.get(get(\"color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n        box-shadow: get(\"box-shadow-hover\");\n        transform: scale(get(\"hover-scale\"));\n      }\n    }\n  }\n  #{ $prefix }__inner > * {\n    display: block;\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n  }\n  #{ $prefix }__inner > img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    margin: 0 !important;\n  }\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: map.get($props, \"width\");\n      font-size: map.get($props, \"font-size\");\n      flex-basis: map.get($props, \"width\");\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 169
              }
            }
          },
          {
            "description": "Output badge component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"badge\");\n  // Badge content can be text, image, icon, or background-image\n  #{ $prefix } {\n    display: block;\n    width: get(\"width\");\n    max-width: 100%;\n    flex: 0 0 get(\"width\");\n    font-size: get(\"font-size\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n  }\n  #{ $prefix }__inner {\n    display: block;\n    padding-bottom: 100%;\n    width: 100%;\n    position: relative;\n    overflow: hidden;\n    background-repeat: no-repeat;\n    background-size: cover;\n    background-position: center center;\n    text-align: center;\n    border-radius: get(\"border-radius\");\n    transition-property: transform, color, box-shadow, background-color;\n    transition-duration: get(\"transition-duration\");\n    transition-timing-function: ease-in-out;\n    box-shadow: get(\"box-shadow\");\n    // In case this is used as a link or router-link\n    &,\n    &:hover,\n    &:focus,\n    &:visited {\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n    }\n  }\n  #{ $prefix }--clickable,\n  button#{ $prefix },\n  a#{ $prefix } {\n    &:hover,\n    &:focus {\n      #{ $prefix }__inner {\n        color: color.get(get(\"color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n        box-shadow: get(\"box-shadow-hover\");\n        transform: scale(get(\"hover-scale\"));\n      }\n    }\n  }\n  #{ $prefix }__inner > * {\n    display: block;\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n  }\n  #{ $prefix }__inner > img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    margin: 0 !important;\n  }\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: map.get($props, \"width\");\n      font-size: map.get($props, \"font-size\");\n      flex-basis: map.get($props, \"width\");\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 169
              }
            }
          },
          {
            "description": "Output badge component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"badge\");\n  // Badge content can be text, image, icon, or background-image\n  #{ $prefix } {\n    display: block;\n    width: get(\"width\");\n    max-width: 100%;\n    flex: 0 0 get(\"width\");\n    font-size: get(\"font-size\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n  }\n  #{ $prefix }__inner {\n    display: block;\n    padding-bottom: 100%;\n    width: 100%;\n    position: relative;\n    overflow: hidden;\n    background-repeat: no-repeat;\n    background-size: cover;\n    background-position: center center;\n    text-align: center;\n    border-radius: get(\"border-radius\");\n    transition-property: transform, color, box-shadow, background-color;\n    transition-duration: get(\"transition-duration\");\n    transition-timing-function: ease-in-out;\n    box-shadow: get(\"box-shadow\");\n    // In case this is used as a link or router-link\n    &,\n    &:hover,\n    &:focus,\n    &:visited {\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n    }\n  }\n  #{ $prefix }--clickable,\n  button#{ $prefix },\n  a#{ $prefix } {\n    &:hover,\n    &:focus {\n      #{ $prefix }__inner {\n        color: color.get(get(\"color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n        box-shadow: get(\"box-shadow-hover\");\n        transform: scale(get(\"hover-scale\"));\n      }\n    }\n  }\n  #{ $prefix }__inner > * {\n    display: block;\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n  }\n  #{ $prefix }__inner > img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    margin: 0 !important;\n  }\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: map.get($props, \"width\");\n      font-size: map.get($props, \"font-size\");\n      flex-basis: map.get($props, \"width\");\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 169
              }
            }
          },
          {
            "description": "Output badge component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"badge\");\n  // Badge content can be text, image, icon, or background-image\n  #{ $prefix } {\n    display: block;\n    width: get(\"width\");\n    max-width: 100%;\n    flex: 0 0 get(\"width\");\n    font-size: get(\"font-size\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n  }\n  #{ $prefix }__inner {\n    display: block;\n    padding-bottom: 100%;\n    width: 100%;\n    position: relative;\n    overflow: hidden;\n    background-repeat: no-repeat;\n    background-size: cover;\n    background-position: center center;\n    text-align: center;\n    border-radius: get(\"border-radius\");\n    transition-property: transform, color, box-shadow, background-color;\n    transition-duration: get(\"transition-duration\");\n    transition-timing-function: ease-in-out;\n    box-shadow: get(\"box-shadow\");\n    // In case this is used as a link or router-link\n    &,\n    &:hover,\n    &:focus,\n    &:visited {\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n    }\n  }\n  #{ $prefix }--clickable,\n  button#{ $prefix },\n  a#{ $prefix } {\n    &:hover,\n    &:focus {\n      #{ $prefix }__inner {\n        color: color.get(get(\"color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n        box-shadow: get(\"box-shadow-hover\");\n        transform: scale(get(\"hover-scale\"));\n      }\n    }\n  }\n  #{ $prefix }__inner > * {\n    display: block;\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n  }\n  #{ $prefix }__inner > img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    margin: 0 !important;\n  }\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: map.get($props, \"width\");\n      font-size: map.get($props, \"font-size\");\n      flex-basis: map.get($props, \"width\");\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 169
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"badge-stack\");\n  $prefix-badge: selector.class(\"badge\");\n\n  #{ $prefix } {\n    width: get(\"width\");\n    display: flex;\n  }\n  #{ $prefix }__item {\n    flex: 0 1 min-content;\n    margin-right: get(\"overlap\");\n\n    #{ $prefix-badge }__inner {\n      // box-shadow: ulu.element-get(\"box-shadow\");\n      position: relative;\n      &:before {\n        content: '';\n        display: block;\n        position: absolute;\n        top: -1px;\n        bottom: -1px;\n        left: -1px;\n        right: -1px;\n        border-radius: badge.get(\"border-radius\");\n        border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      }\n    }\n    #{ $prefix-badge } {\n      &:focus,\n      &:hover {\n        #{ $prefix-badge }__inner {\n          z-index: 2;\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 48,
                "end": 84
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"badge-stack\");\n  $prefix-badge: selector.class(\"badge\");\n\n  #{ $prefix } {\n    width: get(\"width\");\n    display: flex;\n  }\n  #{ $prefix }__item {\n    flex: 0 1 min-content;\n    margin-right: get(\"overlap\");\n\n    #{ $prefix-badge }__inner {\n      // box-shadow: ulu.element-get(\"box-shadow\");\n      position: relative;\n      &:before {\n        content: '';\n        display: block;\n        position: absolute;\n        top: -1px;\n        bottom: -1px;\n        left: -1px;\n        right: -1px;\n        border-radius: badge.get(\"border-radius\");\n        border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      }\n    }\n    #{ $prefix-badge } {\n      &:focus,\n      &:hover {\n        #{ $prefix-badge }__inner {\n          z-index: 2;\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 48,
                "end": 84
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"badge-stack\");\n  $prefix-badge: selector.class(\"badge\");\n\n  #{ $prefix } {\n    width: get(\"width\");\n    display: flex;\n  }\n  #{ $prefix }__item {\n    flex: 0 1 min-content;\n    margin-right: get(\"overlap\");\n\n    #{ $prefix-badge }__inner {\n      // box-shadow: ulu.element-get(\"box-shadow\");\n      position: relative;\n      &:before {\n        content: '';\n        display: block;\n        position: absolute;\n        top: -1px;\n        bottom: -1px;\n        left: -1px;\n        right: -1px;\n        border-radius: badge.get(\"border-radius\");\n        border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      }\n    }\n    #{ $prefix-badge } {\n      &:focus,\n      &:hover {\n        #{ $prefix-badge }__inner {\n          z-index: 2;\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 48,
                "end": 84
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"badge-stack\");\n  $prefix-badge: selector.class(\"badge\");\n\n  #{ $prefix } {\n    width: get(\"width\");\n    display: flex;\n  }\n  #{ $prefix }__item {\n    flex: 0 1 min-content;\n    margin-right: get(\"overlap\");\n\n    #{ $prefix-badge }__inner {\n      // box-shadow: ulu.element-get(\"box-shadow\");\n      position: relative;\n      &:before {\n        content: '';\n        display: block;\n        position: absolute;\n        top: -1px;\n        bottom: -1px;\n        left: -1px;\n        right: -1px;\n        border-radius: badge.get(\"border-radius\");\n        border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      }\n    }\n    #{ $prefix-badge } {\n      &:focus,\n      &:hover {\n        #{ $prefix-badge }__inner {\n          z-index: 2;\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 48,
                "end": 84
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"badge-stack\");\n  $prefix-badge: selector.class(\"badge\");\n\n  #{ $prefix } {\n    width: get(\"width\");\n    display: flex;\n  }\n  #{ $prefix }__item {\n    flex: 0 1 min-content;\n    margin-right: get(\"overlap\");\n\n    #{ $prefix-badge }__inner {\n      // box-shadow: ulu.element-get(\"box-shadow\");\n      position: relative;\n      &:before {\n        content: '';\n        display: block;\n        position: absolute;\n        top: -1px;\n        bottom: -1px;\n        left: -1px;\n        right: -1px;\n        border-radius: badge.get(\"border-radius\");\n        border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      }\n    }\n    #{ $prefix-badge } {\n      &:focus,\n      &:hover {\n        #{ $prefix-badge }__inner {\n          z-index: 2;\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 48,
                "end": 84
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"badge-stack\");\n  $prefix-badge: selector.class(\"badge\");\n\n  #{ $prefix } {\n    width: get(\"width\");\n    display: flex;\n  }\n  #{ $prefix }__item {\n    flex: 0 1 min-content;\n    margin-right: get(\"overlap\");\n\n    #{ $prefix-badge }__inner {\n      // box-shadow: ulu.element-get(\"box-shadow\");\n      position: relative;\n      &:before {\n        content: '';\n        display: block;\n        position: absolute;\n        top: -1px;\n        bottom: -1px;\n        left: -1px;\n        right: -1px;\n        border-radius: badge.get(\"border-radius\");\n        border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      }\n    }\n    #{ $prefix-badge } {\n      &:focus,\n      &:hover {\n        #{ $prefix-badge }__inner {\n          z-index: 2;\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 48,
                "end": 84
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"basic-hero\");\n\n  #{ $prefix } {\n    background-color: color.get(get(\"background-color\")); \n  }\n  #{ $prefix }__content {\n    display: flex;\n    align-items: stretch;\n    flex-wrap: wrap;\n    justify-content: space-between;\n    gap: get(\"gap\"); \n    padding-top: get(\"padding-top\");\n    padding-bottom: get(\"padding-bottom\");\n  }\n  #{ $prefix }__content-main {\n    $min-width: utils.fallback(get(\"main-min-width\"), get(\"main-max-width\"));\n    // Using max/min-width so that we don't need to add selectors to change flex-basis\n    // when centered. Using flex-basis: 0 to allow flexbox to decide the items width\n    // allows it to expand/shrink within. min(100%... Never larger than parent\n    min-width: min(100%, $min-width); \n    max-width: get(\"main-max-width\");\n    flex-shrink: 1;\n    flex-grow: 1;\n    flex-basis: 0;\n  }\n  #{ $prefix }__content-media {\n    display: flex;\n    align-items: center;\n    align-self: get(\"media-vertical-align\");\n    justify-content: center;\n    flex: 0 0 auto; \n    width: min(100%, get(\"media-max-width\"));\n  }\n\n  // Modifiers\n  #{ $prefix }--center {\n    #{ $prefix }__content {\n      flex-direction: column;\n      flex-wrap: nowrap;\n      text-align: center;\n      align-items: center;\n    }\n  }\n",
              "line": {
                "start": 68,
                "end": 112
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"basic-hero\");\n\n  #{ $prefix } {\n    background-color: color.get(get(\"background-color\")); \n  }\n  #{ $prefix }__content {\n    display: flex;\n    align-items: stretch;\n    flex-wrap: wrap;\n    justify-content: space-between;\n    gap: get(\"gap\"); \n    padding-top: get(\"padding-top\");\n    padding-bottom: get(\"padding-bottom\");\n  }\n  #{ $prefix }__content-main {\n    $min-width: utils.fallback(get(\"main-min-width\"), get(\"main-max-width\"));\n    // Using max/min-width so that we don't need to add selectors to change flex-basis\n    // when centered. Using flex-basis: 0 to allow flexbox to decide the items width\n    // allows it to expand/shrink within. min(100%... Never larger than parent\n    min-width: min(100%, $min-width); \n    max-width: get(\"main-max-width\");\n    flex-shrink: 1;\n    flex-grow: 1;\n    flex-basis: 0;\n  }\n  #{ $prefix }__content-media {\n    display: flex;\n    align-items: center;\n    align-self: get(\"media-vertical-align\");\n    justify-content: center;\n    flex: 0 0 auto; \n    width: min(100%, get(\"media-max-width\"));\n  }\n\n  // Modifiers\n  #{ $prefix }--center {\n    #{ $prefix }__content {\n      flex-direction: column;\n      flex-wrap: nowrap;\n      text-align: center;\n      align-items: center;\n    }\n  }\n",
              "line": {
                "start": 68,
                "end": 112
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"basic-hero\");\n\n  #{ $prefix } {\n    background-color: color.get(get(\"background-color\")); \n  }\n  #{ $prefix }__content {\n    display: flex;\n    align-items: stretch;\n    flex-wrap: wrap;\n    justify-content: space-between;\n    gap: get(\"gap\"); \n    padding-top: get(\"padding-top\");\n    padding-bottom: get(\"padding-bottom\");\n  }\n  #{ $prefix }__content-main {\n    $min-width: utils.fallback(get(\"main-min-width\"), get(\"main-max-width\"));\n    // Using max/min-width so that we don't need to add selectors to change flex-basis\n    // when centered. Using flex-basis: 0 to allow flexbox to decide the items width\n    // allows it to expand/shrink within. min(100%... Never larger than parent\n    min-width: min(100%, $min-width); \n    max-width: get(\"main-max-width\");\n    flex-shrink: 1;\n    flex-grow: 1;\n    flex-basis: 0;\n  }\n  #{ $prefix }__content-media {\n    display: flex;\n    align-items: center;\n    align-self: get(\"media-vertical-align\");\n    justify-content: center;\n    flex: 0 0 auto; \n    width: min(100%, get(\"media-max-width\"));\n  }\n\n  // Modifiers\n  #{ $prefix }--center {\n    #{ $prefix }__content {\n      flex-direction: column;\n      flex-wrap: nowrap;\n      text-align: center;\n      align-items: center;\n    }\n  }\n",
              "line": {
                "start": 68,
                "end": 112
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"basic-hero\");\n\n  #{ $prefix } {\n    background-color: color.get(get(\"background-color\")); \n  }\n  #{ $prefix }__content {\n    display: flex;\n    align-items: stretch;\n    flex-wrap: wrap;\n    justify-content: space-between;\n    gap: get(\"gap\"); \n    padding-top: get(\"padding-top\");\n    padding-bottom: get(\"padding-bottom\");\n  }\n  #{ $prefix }__content-main {\n    $min-width: utils.fallback(get(\"main-min-width\"), get(\"main-max-width\"));\n    // Using max/min-width so that we don't need to add selectors to change flex-basis\n    // when centered. Using flex-basis: 0 to allow flexbox to decide the items width\n    // allows it to expand/shrink within. min(100%... Never larger than parent\n    min-width: min(100%, $min-width); \n    max-width: get(\"main-max-width\");\n    flex-shrink: 1;\n    flex-grow: 1;\n    flex-basis: 0;\n  }\n  #{ $prefix }__content-media {\n    display: flex;\n    align-items: center;\n    align-self: get(\"media-vertical-align\");\n    justify-content: center;\n    flex: 0 0 auto; \n    width: min(100%, get(\"media-max-width\"));\n  }\n\n  // Modifiers\n  #{ $prefix }--center {\n    #{ $prefix }__content {\n      flex-direction: column;\n      flex-wrap: nowrap;\n      text-align: center;\n      align-items: center;\n    }\n  }\n",
              "line": {
                "start": 68,
                "end": 112
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"basic-hero\");\n\n  #{ $prefix } {\n    background-color: color.get(get(\"background-color\")); \n  }\n  #{ $prefix }__content {\n    display: flex;\n    align-items: stretch;\n    flex-wrap: wrap;\n    justify-content: space-between;\n    gap: get(\"gap\"); \n    padding-top: get(\"padding-top\");\n    padding-bottom: get(\"padding-bottom\");\n  }\n  #{ $prefix }__content-main {\n    $min-width: utils.fallback(get(\"main-min-width\"), get(\"main-max-width\"));\n    // Using max/min-width so that we don't need to add selectors to change flex-basis\n    // when centered. Using flex-basis: 0 to allow flexbox to decide the items width\n    // allows it to expand/shrink within. min(100%... Never larger than parent\n    min-width: min(100%, $min-width); \n    max-width: get(\"main-max-width\");\n    flex-shrink: 1;\n    flex-grow: 1;\n    flex-basis: 0;\n  }\n  #{ $prefix }__content-media {\n    display: flex;\n    align-items: center;\n    align-self: get(\"media-vertical-align\");\n    justify-content: center;\n    flex: 0 0 auto; \n    width: min(100%, get(\"media-max-width\"));\n  }\n\n  // Modifiers\n  #{ $prefix }--center {\n    #{ $prefix }__content {\n      flex-direction: column;\n      flex-wrap: nowrap;\n      text-align: center;\n      align-items: center;\n    }\n  }\n",
              "line": {
                "start": 68,
                "end": 112
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"basic-hero\");\n\n  #{ $prefix } {\n    background-color: color.get(get(\"background-color\")); \n  }\n  #{ $prefix }__content {\n    display: flex;\n    align-items: stretch;\n    flex-wrap: wrap;\n    justify-content: space-between;\n    gap: get(\"gap\"); \n    padding-top: get(\"padding-top\");\n    padding-bottom: get(\"padding-bottom\");\n  }\n  #{ $prefix }__content-main {\n    $min-width: utils.fallback(get(\"main-min-width\"), get(\"main-max-width\"));\n    // Using max/min-width so that we don't need to add selectors to change flex-basis\n    // when centered. Using flex-basis: 0 to allow flexbox to decide the items width\n    // allows it to expand/shrink within. min(100%... Never larger than parent\n    min-width: min(100%, $min-width); \n    max-width: get(\"main-max-width\");\n    flex-shrink: 1;\n    flex-grow: 1;\n    flex-basis: 0;\n  }\n  #{ $prefix }__content-media {\n    display: flex;\n    align-items: center;\n    align-self: get(\"media-vertical-align\");\n    justify-content: center;\n    flex: 0 0 auto; \n    width: min(100%, get(\"media-max-width\"));\n  }\n\n  // Modifiers\n  #{ $prefix }--center {\n    #{ $prefix }__content {\n      flex-direction: column;\n      flex-wrap: nowrap;\n      text-align: center;\n      align-items: center;\n    }\n  }\n",
              "line": {
                "start": 68,
                "end": 112
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"basic-hero\");\n\n  #{ $prefix } {\n    background-color: color.get(get(\"background-color\")); \n  }\n  #{ $prefix }__content {\n    display: flex;\n    align-items: stretch;\n    flex-wrap: wrap;\n    justify-content: space-between;\n    gap: get(\"gap\"); \n    padding-top: get(\"padding-top\");\n    padding-bottom: get(\"padding-bottom\");\n  }\n  #{ $prefix }__content-main {\n    $min-width: utils.fallback(get(\"main-min-width\"), get(\"main-max-width\"));\n    // Using max/min-width so that we don't need to add selectors to change flex-basis\n    // when centered. Using flex-basis: 0 to allow flexbox to decide the items width\n    // allows it to expand/shrink within. min(100%... Never larger than parent\n    min-width: min(100%, $min-width); \n    max-width: get(\"main-max-width\");\n    flex-shrink: 1;\n    flex-grow: 1;\n    flex-basis: 0;\n  }\n  #{ $prefix }__content-media {\n    display: flex;\n    align-items: center;\n    align-self: get(\"media-vertical-align\");\n    justify-content: center;\n    flex: 0 0 auto; \n    width: min(100%, get(\"media-max-width\"));\n  }\n\n  // Modifiers\n  #{ $prefix }--center {\n    #{ $prefix }__content {\n      flex-direction: column;\n      flex-wrap: nowrap;\n      text-align: center;\n      align-items: center;\n    }\n  }\n",
              "line": {
                "start": 68,
                "end": 112
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"basic-hero\");\n\n  #{ $prefix } {\n    background-color: color.get(get(\"background-color\")); \n  }\n  #{ $prefix }__content {\n    display: flex;\n    align-items: stretch;\n    flex-wrap: wrap;\n    justify-content: space-between;\n    gap: get(\"gap\"); \n    padding-top: get(\"padding-top\");\n    padding-bottom: get(\"padding-bottom\");\n  }\n  #{ $prefix }__content-main {\n    $min-width: utils.fallback(get(\"main-min-width\"), get(\"main-max-width\"));\n    // Using max/min-width so that we don't need to add selectors to change flex-basis\n    // when centered. Using flex-basis: 0 to allow flexbox to decide the items width\n    // allows it to expand/shrink within. min(100%... Never larger than parent\n    min-width: min(100%, $min-width); \n    max-width: get(\"main-max-width\");\n    flex-shrink: 1;\n    flex-grow: 1;\n    flex-basis: 0;\n  }\n  #{ $prefix }__content-media {\n    display: flex;\n    align-items: center;\n    align-self: get(\"media-vertical-align\");\n    justify-content: center;\n    flex: 0 0 auto; \n    width: min(100%, get(\"media-max-width\"));\n  }\n\n  // Modifiers\n  #{ $prefix }--center {\n    #{ $prefix }__content {\n      flex-direction: column;\n      flex-wrap: nowrap;\n      text-align: center;\n      align-items: center;\n    }\n  }\n",
              "line": {
                "start": 68,
                "end": 112
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"basic-hero\");\n\n  #{ $prefix } {\n    background-color: color.get(get(\"background-color\")); \n  }\n  #{ $prefix }__content {\n    display: flex;\n    align-items: stretch;\n    flex-wrap: wrap;\n    justify-content: space-between;\n    gap: get(\"gap\"); \n    padding-top: get(\"padding-top\");\n    padding-bottom: get(\"padding-bottom\");\n  }\n  #{ $prefix }__content-main {\n    $min-width: utils.fallback(get(\"main-min-width\"), get(\"main-max-width\"));\n    // Using max/min-width so that we don't need to add selectors to change flex-basis\n    // when centered. Using flex-basis: 0 to allow flexbox to decide the items width\n    // allows it to expand/shrink within. min(100%... Never larger than parent\n    min-width: min(100%, $min-width); \n    max-width: get(\"main-max-width\");\n    flex-shrink: 1;\n    flex-grow: 1;\n    flex-basis: 0;\n  }\n  #{ $prefix }__content-media {\n    display: flex;\n    align-items: center;\n    align-self: get(\"media-vertical-align\");\n    justify-content: center;\n    flex: 0 0 auto; \n    width: min(100%, get(\"media-max-width\"));\n  }\n\n  // Modifiers\n  #{ $prefix }--center {\n    #{ $prefix }__content {\n      flex-direction: column;\n      flex-wrap: nowrap;\n      text-align: center;\n      align-items: center;\n    }\n  }\n",
              "line": {
                "start": 68,
                "end": 112
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"basic-hero\");\n\n  #{ $prefix } {\n    background-color: color.get(get(\"background-color\")); \n  }\n  #{ $prefix }__content {\n    display: flex;\n    align-items: stretch;\n    flex-wrap: wrap;\n    justify-content: space-between;\n    gap: get(\"gap\"); \n    padding-top: get(\"padding-top\");\n    padding-bottom: get(\"padding-bottom\");\n  }\n  #{ $prefix }__content-main {\n    $min-width: utils.fallback(get(\"main-min-width\"), get(\"main-max-width\"));\n    // Using max/min-width so that we don't need to add selectors to change flex-basis\n    // when centered. Using flex-basis: 0 to allow flexbox to decide the items width\n    // allows it to expand/shrink within. min(100%... Never larger than parent\n    min-width: min(100%, $min-width); \n    max-width: get(\"main-max-width\");\n    flex-shrink: 1;\n    flex-grow: 1;\n    flex-basis: 0;\n  }\n  #{ $prefix }__content-media {\n    display: flex;\n    align-items: center;\n    align-self: get(\"media-vertical-align\");\n    justify-content: center;\n    flex: 0 0 auto; \n    width: min(100%, get(\"media-max-width\"));\n  }\n\n  // Modifiers\n  #{ $prefix }--center {\n    #{ $prefix }__content {\n      flex-direction: column;\n      flex-wrap: nowrap;\n      text-align: center;\n      align-items: center;\n    }\n  }\n",
              "line": {
                "start": 68,
                "end": 112
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"breadcrumb\");\n  \n  #{ $prefix } {\n    color: color.get(get(\"color\"));\n    margin: get(\"margin\");\n    line-height: get(\"line-height\");\n  }\n  #{ $prefix }__list {\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n    gap: get(\"row-gap\") 0;\n  }\n  #{ $prefix }__item {\n    display: flex;\n    align-items: center;\n  }\n  #{ $prefix }__link,\n  #{ $prefix }__current {\n    white-space: nowrap;\n    overflow: hidden;\n    max-width: get(\"item-max-width\");\n    text-overflow: ellipsis;\n  }\n  #{ $prefix }__link {\n    color: inherit;\n    text-decoration: none;\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n    }\n  }\n  #{ $prefix }__separator {\n    margin: get(\"separator-margin\");\n    color: color.get(get(\"separator-color\"));\n    opacity: get(\"separator-opacity\");\n  }\n",
              "line": {
                "start": 72,
                "end": 110
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"breadcrumb\");\n  \n  #{ $prefix } {\n    color: color.get(get(\"color\"));\n    margin: get(\"margin\");\n    line-height: get(\"line-height\");\n  }\n  #{ $prefix }__list {\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n    gap: get(\"row-gap\") 0;\n  }\n  #{ $prefix }__item {\n    display: flex;\n    align-items: center;\n  }\n  #{ $prefix }__link,\n  #{ $prefix }__current {\n    white-space: nowrap;\n    overflow: hidden;\n    max-width: get(\"item-max-width\");\n    text-overflow: ellipsis;\n  }\n  #{ $prefix }__link {\n    color: inherit;\n    text-decoration: none;\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n    }\n  }\n  #{ $prefix }__separator {\n    margin: get(\"separator-margin\");\n    color: color.get(get(\"separator-color\"));\n    opacity: get(\"separator-opacity\");\n  }\n",
              "line": {
                "start": 72,
                "end": 110
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"breadcrumb\");\n  \n  #{ $prefix } {\n    color: color.get(get(\"color\"));\n    margin: get(\"margin\");\n    line-height: get(\"line-height\");\n  }\n  #{ $prefix }__list {\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n    gap: get(\"row-gap\") 0;\n  }\n  #{ $prefix }__item {\n    display: flex;\n    align-items: center;\n  }\n  #{ $prefix }__link,\n  #{ $prefix }__current {\n    white-space: nowrap;\n    overflow: hidden;\n    max-width: get(\"item-max-width\");\n    text-overflow: ellipsis;\n  }\n  #{ $prefix }__link {\n    color: inherit;\n    text-decoration: none;\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n    }\n  }\n  #{ $prefix }__separator {\n    margin: get(\"separator-margin\");\n    color: color.get(get(\"separator-color\"));\n    opacity: get(\"separator-opacity\");\n  }\n",
              "line": {
                "start": 72,
                "end": 110
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"breadcrumb\");\n  \n  #{ $prefix } {\n    color: color.get(get(\"color\"));\n    margin: get(\"margin\");\n    line-height: get(\"line-height\");\n  }\n  #{ $prefix }__list {\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n    gap: get(\"row-gap\") 0;\n  }\n  #{ $prefix }__item {\n    display: flex;\n    align-items: center;\n  }\n  #{ $prefix }__link,\n  #{ $prefix }__current {\n    white-space: nowrap;\n    overflow: hidden;\n    max-width: get(\"item-max-width\");\n    text-overflow: ellipsis;\n  }\n  #{ $prefix }__link {\n    color: inherit;\n    text-decoration: none;\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n    }\n  }\n  #{ $prefix }__separator {\n    margin: get(\"separator-margin\");\n    color: color.get(get(\"separator-color\"));\n    opacity: get(\"separator-opacity\");\n  }\n",
              "line": {
                "start": 72,
                "end": 110
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"breadcrumb\");\n  \n  #{ $prefix } {\n    color: color.get(get(\"color\"));\n    margin: get(\"margin\");\n    line-height: get(\"line-height\");\n  }\n  #{ $prefix }__list {\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n    gap: get(\"row-gap\") 0;\n  }\n  #{ $prefix }__item {\n    display: flex;\n    align-items: center;\n  }\n  #{ $prefix }__link,\n  #{ $prefix }__current {\n    white-space: nowrap;\n    overflow: hidden;\n    max-width: get(\"item-max-width\");\n    text-overflow: ellipsis;\n  }\n  #{ $prefix }__link {\n    color: inherit;\n    text-decoration: none;\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n    }\n  }\n  #{ $prefix }__separator {\n    margin: get(\"separator-margin\");\n    color: color.get(get(\"separator-color\"));\n    opacity: get(\"separator-opacity\");\n  }\n",
              "line": {
                "start": 72,
                "end": 110
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"breadcrumb\");\n  \n  #{ $prefix } {\n    color: color.get(get(\"color\"));\n    margin: get(\"margin\");\n    line-height: get(\"line-height\");\n  }\n  #{ $prefix }__list {\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n    gap: get(\"row-gap\") 0;\n  }\n  #{ $prefix }__item {\n    display: flex;\n    align-items: center;\n  }\n  #{ $prefix }__link,\n  #{ $prefix }__current {\n    white-space: nowrap;\n    overflow: hidden;\n    max-width: get(\"item-max-width\");\n    text-overflow: ellipsis;\n  }\n  #{ $prefix }__link {\n    color: inherit;\n    text-decoration: none;\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n    }\n  }\n  #{ $prefix }__separator {\n    margin: get(\"separator-margin\");\n    color: color.get(get(\"separator-color\"));\n    opacity: get(\"separator-opacity\");\n  }\n",
              "line": {
                "start": 72,
                "end": 110
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"breadcrumb\");\n  \n  #{ $prefix } {\n    color: color.get(get(\"color\"));\n    margin: get(\"margin\");\n    line-height: get(\"line-height\");\n  }\n  #{ $prefix }__list {\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n    gap: get(\"row-gap\") 0;\n  }\n  #{ $prefix }__item {\n    display: flex;\n    align-items: center;\n  }\n  #{ $prefix }__link,\n  #{ $prefix }__current {\n    white-space: nowrap;\n    overflow: hidden;\n    max-width: get(\"item-max-width\");\n    text-overflow: ellipsis;\n  }\n  #{ $prefix }__link {\n    color: inherit;\n    text-decoration: none;\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n    }\n  }\n  #{ $prefix }__separator {\n    margin: get(\"separator-margin\");\n    color: color.get(get(\"separator-color\"));\n    opacity: get(\"separator-opacity\");\n  }\n",
              "line": {
                "start": 72,
                "end": 110
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"breadcrumb\");\n  \n  #{ $prefix } {\n    color: color.get(get(\"color\"));\n    margin: get(\"margin\");\n    line-height: get(\"line-height\");\n  }\n  #{ $prefix }__list {\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n    gap: get(\"row-gap\") 0;\n  }\n  #{ $prefix }__item {\n    display: flex;\n    align-items: center;\n  }\n  #{ $prefix }__link,\n  #{ $prefix }__current {\n    white-space: nowrap;\n    overflow: hidden;\n    max-width: get(\"item-max-width\");\n    text-overflow: ellipsis;\n  }\n  #{ $prefix }__link {\n    color: inherit;\n    text-decoration: none;\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n    }\n  }\n  #{ $prefix }__separator {\n    margin: get(\"separator-margin\");\n    color: color.get(get(\"separator-color\"));\n    opacity: get(\"separator-opacity\");\n  }\n",
              "line": {
                "start": 72,
                "end": 110
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"breadcrumb\");\n  \n  #{ $prefix } {\n    color: color.get(get(\"color\"));\n    margin: get(\"margin\");\n    line-height: get(\"line-height\");\n  }\n  #{ $prefix }__list {\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n    gap: get(\"row-gap\") 0;\n  }\n  #{ $prefix }__item {\n    display: flex;\n    align-items: center;\n  }\n  #{ $prefix }__link,\n  #{ $prefix }__current {\n    white-space: nowrap;\n    overflow: hidden;\n    max-width: get(\"item-max-width\");\n    text-overflow: ellipsis;\n  }\n  #{ $prefix }__link {\n    color: inherit;\n    text-decoration: none;\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n    }\n  }\n  #{ $prefix }__separator {\n    margin: get(\"separator-margin\");\n    color: color.get(get(\"separator-color\"));\n    opacity: get(\"separator-opacity\");\n  }\n",
              "line": {
                "start": 72,
                "end": 110
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"breadcrumb\");\n  \n  #{ $prefix } {\n    color: color.get(get(\"color\"));\n    margin: get(\"margin\");\n    line-height: get(\"line-height\");\n  }\n  #{ $prefix }__list {\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n    gap: get(\"row-gap\") 0;\n  }\n  #{ $prefix }__item {\n    display: flex;\n    align-items: center;\n  }\n  #{ $prefix }__link,\n  #{ $prefix }__current {\n    white-space: nowrap;\n    overflow: hidden;\n    max-width: get(\"item-max-width\");\n    text-overflow: ellipsis;\n  }\n  #{ $prefix }__link {\n    color: inherit;\n    text-decoration: none;\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n    }\n  }\n  #{ $prefix }__separator {\n    margin: get(\"separator-margin\");\n    color: color.get(get(\"separator-color\"));\n    opacity: get(\"separator-opacity\");\n  }\n",
              "line": {
                "start": 72,
                "end": 110
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"breadcrumb\");\n  \n  #{ $prefix } {\n    color: color.get(get(\"color\"));\n    margin: get(\"margin\");\n    line-height: get(\"line-height\");\n  }\n  #{ $prefix }__list {\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n    gap: get(\"row-gap\") 0;\n  }\n  #{ $prefix }__item {\n    display: flex;\n    align-items: center;\n  }\n  #{ $prefix }__link,\n  #{ $prefix }__current {\n    white-space: nowrap;\n    overflow: hidden;\n    max-width: get(\"item-max-width\");\n    text-overflow: ellipsis;\n  }\n  #{ $prefix }__link {\n    color: inherit;\n    text-decoration: none;\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n    }\n  }\n  #{ $prefix }__separator {\n    margin: get(\"separator-margin\");\n    color: color.get(get(\"separator-color\"));\n    opacity: get(\"separator-opacity\");\n  }\n",
              "line": {
                "start": 72,
                "end": 110
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"breadcrumb\");\n  \n  #{ $prefix } {\n    color: color.get(get(\"color\"));\n    margin: get(\"margin\");\n    line-height: get(\"line-height\");\n  }\n  #{ $prefix }__list {\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n    gap: get(\"row-gap\") 0;\n  }\n  #{ $prefix }__item {\n    display: flex;\n    align-items: center;\n  }\n  #{ $prefix }__link,\n  #{ $prefix }__current {\n    white-space: nowrap;\n    overflow: hidden;\n    max-width: get(\"item-max-width\");\n    text-overflow: ellipsis;\n  }\n  #{ $prefix }__link {\n    color: inherit;\n    text-decoration: none;\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n    }\n  }\n  #{ $prefix }__separator {\n    margin: get(\"separator-margin\");\n    color: color.get(get(\"separator-color\"));\n    opacity: get(\"separator-opacity\");\n  }\n",
              "line": {
                "start": 72,
                "end": 110
              }
            }
          },
          {
            "description": "Output button component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'button');\n\n  $prefix: selector.class(\"button\");\n  // $printContextual: get(\"contextual-classes\");\n  // $classContextual: \"#{ selector.class(\"button-inside\") } ;\n  $icon-selector: \"#{ $prefix }--icon\";\n  $printDescendant: \"#{ $prefix }--icon\";\n\n  #{ $prefix } {\n    @include button.default();\n  }\n  #{ $prefix }--fit {\n    min-width: 0;\n  }\n  #{ $prefix }--left {\n    justify-content: flex-start;\n    text-align: left;\n  }\n  \n  @each $size, $values in button.$sizes {\n    #{ $prefix }--#{$size} {\n      @include button.size($size);\n    }\n  }\n  \n  @each $style, $values in button.$styles {\n    #{ $prefix }--#{$style} {\n      @include button.style($style);\n    }\n  }\n  \n  #{ $icon-selector } {\n    \n    min-width: 0;\n    max-width: none;\n    border-radius: button.get(\"icon-border-radius\");\n    font-size: button.get(\"icon-font-size\");\n    width: button.get(\"icon-size\");\n    height: button.get(\"icon-size\");\n    padding: 0 !important;\n\n    #{ $prefix }__icon {\n      transform: translateY(get(\"icon-centered-vertical-offset\"));\n      margin: 0;\n    }\n  }\n\n  @each $size, $values in button.$sizes {\n    $icon-size: map.get($values, \"icon-size\");\n    $icon-font-size: map.get($values, \"icon-font-size\");\n    @if ($icon-size or $icon-font-size) {\n      #{ $prefix }--#{$size}#{ $icon-selector } {\n        width: $icon-size;\n        height: $icon-size;\n        font-size: $icon-font-size;\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 110
              }
            }
          },
          {
            "description": "Output button component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'button');\n\n  $prefix: selector.class(\"button\");\n  // $printContextual: get(\"contextual-classes\");\n  // $classContextual: \"#{ selector.class(\"button-inside\") } ;\n  $icon-selector: \"#{ $prefix }--icon\";\n  $printDescendant: \"#{ $prefix }--icon\";\n\n  #{ $prefix } {\n    @include button.default();\n  }\n  #{ $prefix }--fit {\n    min-width: 0;\n  }\n  #{ $prefix }--left {\n    justify-content: flex-start;\n    text-align: left;\n  }\n  \n  @each $size, $values in button.$sizes {\n    #{ $prefix }--#{$size} {\n      @include button.size($size);\n    }\n  }\n  \n  @each $style, $values in button.$styles {\n    #{ $prefix }--#{$style} {\n      @include button.style($style);\n    }\n  }\n  \n  #{ $icon-selector } {\n    \n    min-width: 0;\n    max-width: none;\n    border-radius: button.get(\"icon-border-radius\");\n    font-size: button.get(\"icon-font-size\");\n    width: button.get(\"icon-size\");\n    height: button.get(\"icon-size\");\n    padding: 0 !important;\n\n    #{ $prefix }__icon {\n      transform: translateY(get(\"icon-centered-vertical-offset\"));\n      margin: 0;\n    }\n  }\n\n  @each $size, $values in button.$sizes {\n    $icon-size: map.get($values, \"icon-size\");\n    $icon-font-size: map.get($values, \"icon-font-size\");\n    @if ($icon-size or $icon-font-size) {\n      #{ $prefix }--#{$size}#{ $icon-selector } {\n        width: $icon-size;\n        height: $icon-size;\n        font-size: $icon-font-size;\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 110
              }
            }
          },
          {
            "description": "Output button component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'button');\n\n  $prefix: selector.class(\"button\");\n  // $printContextual: get(\"contextual-classes\");\n  // $classContextual: \"#{ selector.class(\"button-inside\") } ;\n  $icon-selector: \"#{ $prefix }--icon\";\n  $printDescendant: \"#{ $prefix }--icon\";\n\n  #{ $prefix } {\n    @include button.default();\n  }\n  #{ $prefix }--fit {\n    min-width: 0;\n  }\n  #{ $prefix }--left {\n    justify-content: flex-start;\n    text-align: left;\n  }\n  \n  @each $size, $values in button.$sizes {\n    #{ $prefix }--#{$size} {\n      @include button.size($size);\n    }\n  }\n  \n  @each $style, $values in button.$styles {\n    #{ $prefix }--#{$style} {\n      @include button.style($style);\n    }\n  }\n  \n  #{ $icon-selector } {\n    \n    min-width: 0;\n    max-width: none;\n    border-radius: button.get(\"icon-border-radius\");\n    font-size: button.get(\"icon-font-size\");\n    width: button.get(\"icon-size\");\n    height: button.get(\"icon-size\");\n    padding: 0 !important;\n\n    #{ $prefix }__icon {\n      transform: translateY(get(\"icon-centered-vertical-offset\"));\n      margin: 0;\n    }\n  }\n\n  @each $size, $values in button.$sizes {\n    $icon-size: map.get($values, \"icon-size\");\n    $icon-font-size: map.get($values, \"icon-font-size\");\n    @if ($icon-size or $icon-font-size) {\n      #{ $prefix }--#{$size}#{ $icon-selector } {\n        width: $icon-size;\n        height: $icon-size;\n        font-size: $icon-font-size;\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 110
              }
            }
          },
          {
            "description": "Output button component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'button');\n\n  $prefix: selector.class(\"button\");\n  // $printContextual: get(\"contextual-classes\");\n  // $classContextual: \"#{ selector.class(\"button-inside\") } ;\n  $icon-selector: \"#{ $prefix }--icon\";\n  $printDescendant: \"#{ $prefix }--icon\";\n\n  #{ $prefix } {\n    @include button.default();\n  }\n  #{ $prefix }--fit {\n    min-width: 0;\n  }\n  #{ $prefix }--left {\n    justify-content: flex-start;\n    text-align: left;\n  }\n  \n  @each $size, $values in button.$sizes {\n    #{ $prefix }--#{$size} {\n      @include button.size($size);\n    }\n  }\n  \n  @each $style, $values in button.$styles {\n    #{ $prefix }--#{$style} {\n      @include button.style($style);\n    }\n  }\n  \n  #{ $icon-selector } {\n    \n    min-width: 0;\n    max-width: none;\n    border-radius: button.get(\"icon-border-radius\");\n    font-size: button.get(\"icon-font-size\");\n    width: button.get(\"icon-size\");\n    height: button.get(\"icon-size\");\n    padding: 0 !important;\n\n    #{ $prefix }__icon {\n      transform: translateY(get(\"icon-centered-vertical-offset\"));\n      margin: 0;\n    }\n  }\n\n  @each $size, $values in button.$sizes {\n    $icon-size: map.get($values, \"icon-size\");\n    $icon-font-size: map.get($values, \"icon-font-size\");\n    @if ($icon-size or $icon-font-size) {\n      #{ $prefix }--#{$size}#{ $icon-selector } {\n        width: $icon-size;\n        height: $icon-size;\n        font-size: $icon-font-size;\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 110
              }
            }
          },
          {
            "description": "Output button component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'button');\n\n  $prefix: selector.class(\"button\");\n  // $printContextual: get(\"contextual-classes\");\n  // $classContextual: \"#{ selector.class(\"button-inside\") } ;\n  $icon-selector: \"#{ $prefix }--icon\";\n  $printDescendant: \"#{ $prefix }--icon\";\n\n  #{ $prefix } {\n    @include button.default();\n  }\n  #{ $prefix }--fit {\n    min-width: 0;\n  }\n  #{ $prefix }--left {\n    justify-content: flex-start;\n    text-align: left;\n  }\n  \n  @each $size, $values in button.$sizes {\n    #{ $prefix }--#{$size} {\n      @include button.size($size);\n    }\n  }\n  \n  @each $style, $values in button.$styles {\n    #{ $prefix }--#{$style} {\n      @include button.style($style);\n    }\n  }\n  \n  #{ $icon-selector } {\n    \n    min-width: 0;\n    max-width: none;\n    border-radius: button.get(\"icon-border-radius\");\n    font-size: button.get(\"icon-font-size\");\n    width: button.get(\"icon-size\");\n    height: button.get(\"icon-size\");\n    padding: 0 !important;\n\n    #{ $prefix }__icon {\n      transform: translateY(get(\"icon-centered-vertical-offset\"));\n      margin: 0;\n    }\n  }\n\n  @each $size, $values in button.$sizes {\n    $icon-size: map.get($values, \"icon-size\");\n    $icon-font-size: map.get($values, \"icon-font-size\");\n    @if ($icon-size or $icon-font-size) {\n      #{ $prefix }--#{$size}#{ $icon-selector } {\n        width: $icon-size;\n        height: $icon-size;\n        font-size: $icon-font-size;\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 110
              }
            }
          },
          {
            "description": "Output button component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'button');\n\n  $prefix: selector.class(\"button\");\n  // $printContextual: get(\"contextual-classes\");\n  // $classContextual: \"#{ selector.class(\"button-inside\") } ;\n  $icon-selector: \"#{ $prefix }--icon\";\n  $printDescendant: \"#{ $prefix }--icon\";\n\n  #{ $prefix } {\n    @include button.default();\n  }\n  #{ $prefix }--fit {\n    min-width: 0;\n  }\n  #{ $prefix }--left {\n    justify-content: flex-start;\n    text-align: left;\n  }\n  \n  @each $size, $values in button.$sizes {\n    #{ $prefix }--#{$size} {\n      @include button.size($size);\n    }\n  }\n  \n  @each $style, $values in button.$styles {\n    #{ $prefix }--#{$style} {\n      @include button.style($style);\n    }\n  }\n  \n  #{ $icon-selector } {\n    \n    min-width: 0;\n    max-width: none;\n    border-radius: button.get(\"icon-border-radius\");\n    font-size: button.get(\"icon-font-size\");\n    width: button.get(\"icon-size\");\n    height: button.get(\"icon-size\");\n    padding: 0 !important;\n\n    #{ $prefix }__icon {\n      transform: translateY(get(\"icon-centered-vertical-offset\"));\n      margin: 0;\n    }\n  }\n\n  @each $size, $values in button.$sizes {\n    $icon-size: map.get($values, \"icon-size\");\n    $icon-font-size: map.get($values, \"icon-font-size\");\n    @if ($icon-size or $icon-font-size) {\n      #{ $prefix }--#{$size}#{ $icon-selector } {\n        width: $icon-size;\n        height: $icon-size;\n        font-size: $icon-font-size;\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 110
              }
            }
          },
          {
            "description": "Output button component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'button');\n\n  $prefix: selector.class(\"button\");\n  // $printContextual: get(\"contextual-classes\");\n  // $classContextual: \"#{ selector.class(\"button-inside\") } ;\n  $icon-selector: \"#{ $prefix }--icon\";\n  $printDescendant: \"#{ $prefix }--icon\";\n\n  #{ $prefix } {\n    @include button.default();\n  }\n  #{ $prefix }--fit {\n    min-width: 0;\n  }\n  #{ $prefix }--left {\n    justify-content: flex-start;\n    text-align: left;\n  }\n  \n  @each $size, $values in button.$sizes {\n    #{ $prefix }--#{$size} {\n      @include button.size($size);\n    }\n  }\n  \n  @each $style, $values in button.$styles {\n    #{ $prefix }--#{$style} {\n      @include button.style($style);\n    }\n  }\n  \n  #{ $icon-selector } {\n    \n    min-width: 0;\n    max-width: none;\n    border-radius: button.get(\"icon-border-radius\");\n    font-size: button.get(\"icon-font-size\");\n    width: button.get(\"icon-size\");\n    height: button.get(\"icon-size\");\n    padding: 0 !important;\n\n    #{ $prefix }__icon {\n      transform: translateY(get(\"icon-centered-vertical-offset\"));\n      margin: 0;\n    }\n  }\n\n  @each $size, $values in button.$sizes {\n    $icon-size: map.get($values, \"icon-size\");\n    $icon-font-size: map.get($values, \"icon-font-size\");\n    @if ($icon-size or $icon-font-size) {\n      #{ $prefix }--#{$size}#{ $icon-selector } {\n        width: $icon-size;\n        height: $icon-size;\n        font-size: $icon-font-size;\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 110
              }
            }
          },
          {
            "description": "Output button component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'button');\n\n  $prefix: selector.class(\"button\");\n  // $printContextual: get(\"contextual-classes\");\n  // $classContextual: \"#{ selector.class(\"button-inside\") } ;\n  $icon-selector: \"#{ $prefix }--icon\";\n  $printDescendant: \"#{ $prefix }--icon\";\n\n  #{ $prefix } {\n    @include button.default();\n  }\n  #{ $prefix }--fit {\n    min-width: 0;\n  }\n  #{ $prefix }--left {\n    justify-content: flex-start;\n    text-align: left;\n  }\n  \n  @each $size, $values in button.$sizes {\n    #{ $prefix }--#{$size} {\n      @include button.size($size);\n    }\n  }\n  \n  @each $style, $values in button.$styles {\n    #{ $prefix }--#{$style} {\n      @include button.style($style);\n    }\n  }\n  \n  #{ $icon-selector } {\n    \n    min-width: 0;\n    max-width: none;\n    border-radius: button.get(\"icon-border-radius\");\n    font-size: button.get(\"icon-font-size\");\n    width: button.get(\"icon-size\");\n    height: button.get(\"icon-size\");\n    padding: 0 !important;\n\n    #{ $prefix }__icon {\n      transform: translateY(get(\"icon-centered-vertical-offset\"));\n      margin: 0;\n    }\n  }\n\n  @each $size, $values in button.$sizes {\n    $icon-size: map.get($values, \"icon-size\");\n    $icon-font-size: map.get($values, \"icon-font-size\");\n    @if ($icon-size or $icon-font-size) {\n      #{ $prefix }--#{$size}#{ $icon-selector } {\n        width: $icon-size;\n        height: $icon-size;\n        font-size: $icon-font-size;\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 110
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-group\");\n  $prefix-button: selector.class(\"button\");\n\n  $button-radius: button.get(\"border-radius\");\n  \n  #{ $prefix } {\n    display: flex;\n    flex-wrap: wrap;\n    gap: get(\"gap\");\n    #{ $prefix-button } {\n      margin: 0;\n    }\n  }\n  #{ $prefix }--joined {\n    flex-wrap: nowrap;\n    overflow-x: auto;\n    gap: get(\"gap-joined\");\n    // border-radius: button.get(\"border-radius\");\n    #{ $prefix-button } {\n      position: relative; // To move to front when hover/active\n      border-radius: 0;\n      min-width: 0;\n      @if (get(\"gap-joined\") == 0) {\n        margin-left: -(button.get(\"border-width\"));\n      }\n      \n      &:first-child {\n        border-top-left-radius: $button-radius;\n        border-bottom-left-radius: $button-radius;\n        margin-left: 0;\n      }\n      &:last-child {\n        border-top-right-radius: $button-radius;\n        border-bottom-right-radius: $button-radius;\n      }\n      #{ button.get(\"active-selector\") } {\n        z-index: 2;\n      }\n      &:hover,\n      &:focus {\n        z-index: 2;\n      }\n      \n    }\n  }\n",
              "line": {
                "start": 49,
                "end": 95
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-group\");\n  $prefix-button: selector.class(\"button\");\n\n  $button-radius: button.get(\"border-radius\");\n  \n  #{ $prefix } {\n    display: flex;\n    flex-wrap: wrap;\n    gap: get(\"gap\");\n    #{ $prefix-button } {\n      margin: 0;\n    }\n  }\n  #{ $prefix }--joined {\n    flex-wrap: nowrap;\n    overflow-x: auto;\n    gap: get(\"gap-joined\");\n    // border-radius: button.get(\"border-radius\");\n    #{ $prefix-button } {\n      position: relative; // To move to front when hover/active\n      border-radius: 0;\n      min-width: 0;\n      @if (get(\"gap-joined\") == 0) {\n        margin-left: -(button.get(\"border-width\"));\n      }\n      \n      &:first-child {\n        border-top-left-radius: $button-radius;\n        border-bottom-left-radius: $button-radius;\n        margin-left: 0;\n      }\n      &:last-child {\n        border-top-right-radius: $button-radius;\n        border-bottom-right-radius: $button-radius;\n      }\n      #{ button.get(\"active-selector\") } {\n        z-index: 2;\n      }\n      &:hover,\n      &:focus {\n        z-index: 2;\n      }\n      \n    }\n  }\n",
              "line": {
                "start": 49,
                "end": 95
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-group\");\n  $prefix-button: selector.class(\"button\");\n\n  $button-radius: button.get(\"border-radius\");\n  \n  #{ $prefix } {\n    display: flex;\n    flex-wrap: wrap;\n    gap: get(\"gap\");\n    #{ $prefix-button } {\n      margin: 0;\n    }\n  }\n  #{ $prefix }--joined {\n    flex-wrap: nowrap;\n    overflow-x: auto;\n    gap: get(\"gap-joined\");\n    // border-radius: button.get(\"border-radius\");\n    #{ $prefix-button } {\n      position: relative; // To move to front when hover/active\n      border-radius: 0;\n      min-width: 0;\n      @if (get(\"gap-joined\") == 0) {\n        margin-left: -(button.get(\"border-width\"));\n      }\n      \n      &:first-child {\n        border-top-left-radius: $button-radius;\n        border-bottom-left-radius: $button-radius;\n        margin-left: 0;\n      }\n      &:last-child {\n        border-top-right-radius: $button-radius;\n        border-bottom-right-radius: $button-radius;\n      }\n      #{ button.get(\"active-selector\") } {\n        z-index: 2;\n      }\n      &:hover,\n      &:focus {\n        z-index: 2;\n      }\n      \n    }\n  }\n",
              "line": {
                "start": 49,
                "end": 95
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-group\");\n  $prefix-button: selector.class(\"button\");\n\n  $button-radius: button.get(\"border-radius\");\n  \n  #{ $prefix } {\n    display: flex;\n    flex-wrap: wrap;\n    gap: get(\"gap\");\n    #{ $prefix-button } {\n      margin: 0;\n    }\n  }\n  #{ $prefix }--joined {\n    flex-wrap: nowrap;\n    overflow-x: auto;\n    gap: get(\"gap-joined\");\n    // border-radius: button.get(\"border-radius\");\n    #{ $prefix-button } {\n      position: relative; // To move to front when hover/active\n      border-radius: 0;\n      min-width: 0;\n      @if (get(\"gap-joined\") == 0) {\n        margin-left: -(button.get(\"border-width\"));\n      }\n      \n      &:first-child {\n        border-top-left-radius: $button-radius;\n        border-bottom-left-radius: $button-radius;\n        margin-left: 0;\n      }\n      &:last-child {\n        border-top-right-radius: $button-radius;\n        border-bottom-right-radius: $button-radius;\n      }\n      #{ button.get(\"active-selector\") } {\n        z-index: 2;\n      }\n      &:hover,\n      &:focus {\n        z-index: 2;\n      }\n      \n    }\n  }\n",
              "line": {
                "start": 49,
                "end": 95
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-group\");\n  $prefix-button: selector.class(\"button\");\n\n  $button-radius: button.get(\"border-radius\");\n  \n  #{ $prefix } {\n    display: flex;\n    flex-wrap: wrap;\n    gap: get(\"gap\");\n    #{ $prefix-button } {\n      margin: 0;\n    }\n  }\n  #{ $prefix }--joined {\n    flex-wrap: nowrap;\n    overflow-x: auto;\n    gap: get(\"gap-joined\");\n    // border-radius: button.get(\"border-radius\");\n    #{ $prefix-button } {\n      position: relative; // To move to front when hover/active\n      border-radius: 0;\n      min-width: 0;\n      @if (get(\"gap-joined\") == 0) {\n        margin-left: -(button.get(\"border-width\"));\n      }\n      \n      &:first-child {\n        border-top-left-radius: $button-radius;\n        border-bottom-left-radius: $button-radius;\n        margin-left: 0;\n      }\n      &:last-child {\n        border-top-right-radius: $button-radius;\n        border-bottom-right-radius: $button-radius;\n      }\n      #{ button.get(\"active-selector\") } {\n        z-index: 2;\n      }\n      &:hover,\n      &:focus {\n        z-index: 2;\n      }\n      \n    }\n  }\n",
              "line": {
                "start": 49,
                "end": 95
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-group\");\n  $prefix-button: selector.class(\"button\");\n\n  $button-radius: button.get(\"border-radius\");\n  \n  #{ $prefix } {\n    display: flex;\n    flex-wrap: wrap;\n    gap: get(\"gap\");\n    #{ $prefix-button } {\n      margin: 0;\n    }\n  }\n  #{ $prefix }--joined {\n    flex-wrap: nowrap;\n    overflow-x: auto;\n    gap: get(\"gap-joined\");\n    // border-radius: button.get(\"border-radius\");\n    #{ $prefix-button } {\n      position: relative; // To move to front when hover/active\n      border-radius: 0;\n      min-width: 0;\n      @if (get(\"gap-joined\") == 0) {\n        margin-left: -(button.get(\"border-width\"));\n      }\n      \n      &:first-child {\n        border-top-left-radius: $button-radius;\n        border-bottom-left-radius: $button-radius;\n        margin-left: 0;\n      }\n      &:last-child {\n        border-top-right-radius: $button-radius;\n        border-bottom-right-radius: $button-radius;\n      }\n      #{ button.get(\"active-selector\") } {\n        z-index: 2;\n      }\n      &:hover,\n      &:focus {\n        z-index: 2;\n      }\n      \n    }\n  }\n",
              "line": {
                "start": 49,
                "end": 95
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-group\");\n  $prefix-button: selector.class(\"button\");\n\n  $button-radius: button.get(\"border-radius\");\n  \n  #{ $prefix } {\n    display: flex;\n    flex-wrap: wrap;\n    gap: get(\"gap\");\n    #{ $prefix-button } {\n      margin: 0;\n    }\n  }\n  #{ $prefix }--joined {\n    flex-wrap: nowrap;\n    overflow-x: auto;\n    gap: get(\"gap-joined\");\n    // border-radius: button.get(\"border-radius\");\n    #{ $prefix-button } {\n      position: relative; // To move to front when hover/active\n      border-radius: 0;\n      min-width: 0;\n      @if (get(\"gap-joined\") == 0) {\n        margin-left: -(button.get(\"border-width\"));\n      }\n      \n      &:first-child {\n        border-top-left-radius: $button-radius;\n        border-bottom-left-radius: $button-radius;\n        margin-left: 0;\n      }\n      &:last-child {\n        border-top-right-radius: $button-radius;\n        border-bottom-right-radius: $button-radius;\n      }\n      #{ button.get(\"active-selector\") } {\n        z-index: 2;\n      }\n      &:hover,\n      &:focus {\n        z-index: 2;\n      }\n      \n    }\n  }\n",
              "line": {
                "start": 49,
                "end": 95
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
              "line": {
                "start": 131,
                "end": 221
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"callout\");  \n  $padding: get(\"padding\");\n  $padding-info: utils.get-spacing($padding);\n  $cap-options: get(\"cap-options\");\n  $cap-size: map.get($cap-options, \"size\");\n  $cap-side: get(\"cap-side\");\n\n  #{ $prefix } {\n    position: relative; // For cap\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin\");\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    & >:first-child {\n      margin-top: 0;\n    }\n\n    // If we have left cap on default we reuse this for all\n    // Else we will print it out manually for each unique style\n    @if (not get(\"caps-disabled\")) {   \n      $cap-defaults: (\n        \"offset\" : get(\"border-width\"),\n        \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), null),\n        // \"padding-adjust\" : map.get($padding-info, $cap-side)\n      );\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, $cap-options)\n      );\n    }\n      \n    // If the left cap is disabled we still include it's CSS but we hide it\n    // so that other styles of callouts can use it\n    @if (not get(\"cap\")) {\n      &::before {\n        content: none;\n      }\n    // Since this is hidden and reused we need to not use padding adjust unless it\n    // was visible\n    } @else if ($cap-size) {\n      padding-#{ $cap-side }: calc(map.get($padding-info, $cap-side) + $cap-size);\n    }\n  }\n\n  @include -output-style-modifiers();\n",
              "line": {
                "start": 109,
                "end": 157
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"callout\");  \n  $padding: get(\"padding\");\n  $padding-info: utils.get-spacing($padding);\n  $cap-options: get(\"cap-options\");\n  $cap-size: map.get($cap-options, \"size\");\n  $cap-side: get(\"cap-side\");\n\n  #{ $prefix } {\n    position: relative; // For cap\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin\");\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    & >:first-child {\n      margin-top: 0;\n    }\n\n    // If we have left cap on default we reuse this for all\n    // Else we will print it out manually for each unique style\n    @if (not get(\"caps-disabled\")) {   \n      $cap-defaults: (\n        \"offset\" : get(\"border-width\"),\n        \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), null),\n        // \"padding-adjust\" : map.get($padding-info, $cap-side)\n      );\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, $cap-options)\n      );\n    }\n      \n    // If the left cap is disabled we still include it's CSS but we hide it\n    // so that other styles of callouts can use it\n    @if (not get(\"cap\")) {\n      &::before {\n        content: none;\n      }\n    // Since this is hidden and reused we need to not use padding adjust unless it\n    // was visible\n    } @else if ($cap-size) {\n      padding-#{ $cap-side }: calc(map.get($padding-info, $cap-side) + $cap-size);\n    }\n  }\n\n  @include -output-style-modifiers();\n",
              "line": {
                "start": 109,
                "end": 157
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"callout\");  \n  $padding: get(\"padding\");\n  $padding-info: utils.get-spacing($padding);\n  $cap-options: get(\"cap-options\");\n  $cap-size: map.get($cap-options, \"size\");\n  $cap-side: get(\"cap-side\");\n\n  #{ $prefix } {\n    position: relative; // For cap\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin\");\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    & >:first-child {\n      margin-top: 0;\n    }\n\n    // If we have left cap on default we reuse this for all\n    // Else we will print it out manually for each unique style\n    @if (not get(\"caps-disabled\")) {   \n      $cap-defaults: (\n        \"offset\" : get(\"border-width\"),\n        \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), null),\n        // \"padding-adjust\" : map.get($padding-info, $cap-side)\n      );\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, $cap-options)\n      );\n    }\n      \n    // If the left cap is disabled we still include it's CSS but we hide it\n    // so that other styles of callouts can use it\n    @if (not get(\"cap\")) {\n      &::before {\n        content: none;\n      }\n    // Since this is hidden and reused we need to not use padding adjust unless it\n    // was visible\n    } @else if ($cap-size) {\n      padding-#{ $cap-side }: calc(map.get($padding-info, $cap-side) + $cap-size);\n    }\n  }\n\n  @include -output-style-modifiers();\n",
              "line": {
                "start": 109,
                "end": 157
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"callout\");  \n  $padding: get(\"padding\");\n  $padding-info: utils.get-spacing($padding);\n  $cap-options: get(\"cap-options\");\n  $cap-size: map.get($cap-options, \"size\");\n  $cap-side: get(\"cap-side\");\n\n  #{ $prefix } {\n    position: relative; // For cap\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin\");\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    & >:first-child {\n      margin-top: 0;\n    }\n\n    // If we have left cap on default we reuse this for all\n    // Else we will print it out manually for each unique style\n    @if (not get(\"caps-disabled\")) {   \n      $cap-defaults: (\n        \"offset\" : get(\"border-width\"),\n        \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), null),\n        // \"padding-adjust\" : map.get($padding-info, $cap-side)\n      );\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, $cap-options)\n      );\n    }\n      \n    // If the left cap is disabled we still include it's CSS but we hide it\n    // so that other styles of callouts can use it\n    @if (not get(\"cap\")) {\n      &::before {\n        content: none;\n      }\n    // Since this is hidden and reused we need to not use padding adjust unless it\n    // was visible\n    } @else if ($cap-size) {\n      padding-#{ $cap-side }: calc(map.get($padding-info, $cap-side) + $cap-size);\n    }\n  }\n\n  @include -output-style-modifiers();\n",
              "line": {
                "start": 109,
                "end": 157
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"callout\");  \n  $padding: get(\"padding\");\n  $padding-info: utils.get-spacing($padding);\n  $cap-options: get(\"cap-options\");\n  $cap-size: map.get($cap-options, \"size\");\n  $cap-side: get(\"cap-side\");\n\n  #{ $prefix } {\n    position: relative; // For cap\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin\");\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    & >:first-child {\n      margin-top: 0;\n    }\n\n    // If we have left cap on default we reuse this for all\n    // Else we will print it out manually for each unique style\n    @if (not get(\"caps-disabled\")) {   \n      $cap-defaults: (\n        \"offset\" : get(\"border-width\"),\n        \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), null),\n        // \"padding-adjust\" : map.get($padding-info, $cap-side)\n      );\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, $cap-options)\n      );\n    }\n      \n    // If the left cap is disabled we still include it's CSS but we hide it\n    // so that other styles of callouts can use it\n    @if (not get(\"cap\")) {\n      &::before {\n        content: none;\n      }\n    // Since this is hidden and reused we need to not use padding adjust unless it\n    // was visible\n    } @else if ($cap-size) {\n      padding-#{ $cap-side }: calc(map.get($padding-info, $cap-side) + $cap-size);\n    }\n  }\n\n  @include -output-style-modifiers();\n",
              "line": {
                "start": 109,
                "end": 157
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"callout\");  \n  $padding: get(\"padding\");\n  $padding-info: utils.get-spacing($padding);\n  $cap-options: get(\"cap-options\");\n  $cap-size: map.get($cap-options, \"size\");\n  $cap-side: get(\"cap-side\");\n\n  #{ $prefix } {\n    position: relative; // For cap\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin\");\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    & >:first-child {\n      margin-top: 0;\n    }\n\n    // If we have left cap on default we reuse this for all\n    // Else we will print it out manually for each unique style\n    @if (not get(\"caps-disabled\")) {   \n      $cap-defaults: (\n        \"offset\" : get(\"border-width\"),\n        \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), null),\n        // \"padding-adjust\" : map.get($padding-info, $cap-side)\n      );\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, $cap-options)\n      );\n    }\n      \n    // If the left cap is disabled we still include it's CSS but we hide it\n    // so that other styles of callouts can use it\n    @if (not get(\"cap\")) {\n      &::before {\n        content: none;\n      }\n    // Since this is hidden and reused we need to not use padding adjust unless it\n    // was visible\n    } @else if ($cap-size) {\n      padding-#{ $cap-side }: calc(map.get($padding-info, $cap-side) + $cap-size);\n    }\n  }\n\n  @include -output-style-modifiers();\n",
              "line": {
                "start": 109,
                "end": 157
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"callout\");  \n  $padding: get(\"padding\");\n  $padding-info: utils.get-spacing($padding);\n  $cap-options: get(\"cap-options\");\n  $cap-size: map.get($cap-options, \"size\");\n  $cap-side: get(\"cap-side\");\n\n  #{ $prefix } {\n    position: relative; // For cap\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin\");\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    & >:first-child {\n      margin-top: 0;\n    }\n\n    // If we have left cap on default we reuse this for all\n    // Else we will print it out manually for each unique style\n    @if (not get(\"caps-disabled\")) {   \n      $cap-defaults: (\n        \"offset\" : get(\"border-width\"),\n        \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), null),\n        // \"padding-adjust\" : map.get($padding-info, $cap-side)\n      );\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, $cap-options)\n      );\n    }\n      \n    // If the left cap is disabled we still include it's CSS but we hide it\n    // so that other styles of callouts can use it\n    @if (not get(\"cap\")) {\n      &::before {\n        content: none;\n      }\n    // Since this is hidden and reused we need to not use padding adjust unless it\n    // was visible\n    } @else if ($cap-size) {\n      padding-#{ $cap-side }: calc(map.get($padding-info, $cap-side) + $cap-size);\n    }\n  }\n\n  @include -output-style-modifiers();\n",
              "line": {
                "start": 109,
                "end": 157
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"callout\");  \n  $padding: get(\"padding\");\n  $padding-info: utils.get-spacing($padding);\n  $cap-options: get(\"cap-options\");\n  $cap-size: map.get($cap-options, \"size\");\n  $cap-side: get(\"cap-side\");\n\n  #{ $prefix } {\n    position: relative; // For cap\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin\");\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    & >:first-child {\n      margin-top: 0;\n    }\n\n    // If we have left cap on default we reuse this for all\n    // Else we will print it out manually for each unique style\n    @if (not get(\"caps-disabled\")) {   \n      $cap-defaults: (\n        \"offset\" : get(\"border-width\"),\n        \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), null),\n        // \"padding-adjust\" : map.get($padding-info, $cap-side)\n      );\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, $cap-options)\n      );\n    }\n      \n    // If the left cap is disabled we still include it's CSS but we hide it\n    // so that other styles of callouts can use it\n    @if (not get(\"cap\")) {\n      &::before {\n        content: none;\n      }\n    // Since this is hidden and reused we need to not use padding adjust unless it\n    // was visible\n    } @else if ($cap-size) {\n      padding-#{ $cap-side }: calc(map.get($padding-info, $cap-side) + $cap-size);\n    }\n  }\n\n  @include -output-style-modifiers();\n",
              "line": {
                "start": 109,
                "end": 157
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"callout\");  \n  $padding: get(\"padding\");\n  $padding-info: utils.get-spacing($padding);\n  $cap-options: get(\"cap-options\");\n  $cap-size: map.get($cap-options, \"size\");\n  $cap-side: get(\"cap-side\");\n\n  #{ $prefix } {\n    position: relative; // For cap\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin\");\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    & >:first-child {\n      margin-top: 0;\n    }\n\n    // If we have left cap on default we reuse this for all\n    // Else we will print it out manually for each unique style\n    @if (not get(\"caps-disabled\")) {   \n      $cap-defaults: (\n        \"offset\" : get(\"border-width\"),\n        \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), null),\n        // \"padding-adjust\" : map.get($padding-info, $cap-side)\n      );\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, $cap-options)\n      );\n    }\n      \n    // If the left cap is disabled we still include it's CSS but we hide it\n    // so that other styles of callouts can use it\n    @if (not get(\"cap\")) {\n      &::before {\n        content: none;\n      }\n    // Since this is hidden and reused we need to not use padding adjust unless it\n    // was visible\n    } @else if ($cap-size) {\n      padding-#{ $cap-side }: calc(map.get($padding-info, $cap-side) + $cap-size);\n    }\n  }\n\n  @include -output-style-modifiers();\n",
              "line": {
                "start": 109,
                "end": 157
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"callout\");  \n  $padding: get(\"padding\");\n  $padding-info: utils.get-spacing($padding);\n  $cap-options: get(\"cap-options\");\n  $cap-size: map.get($cap-options, \"size\");\n  $cap-side: get(\"cap-side\");\n\n  #{ $prefix } {\n    position: relative; // For cap\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin\");\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    & >:first-child {\n      margin-top: 0;\n    }\n\n    // If we have left cap on default we reuse this for all\n    // Else we will print it out manually for each unique style\n    @if (not get(\"caps-disabled\")) {   \n      $cap-defaults: (\n        \"offset\" : get(\"border-width\"),\n        \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), null),\n        // \"padding-adjust\" : map.get($padding-info, $cap-side)\n      );\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, $cap-options)\n      );\n    }\n      \n    // If the left cap is disabled we still include it's CSS but we hide it\n    // so that other styles of callouts can use it\n    @if (not get(\"cap\")) {\n      &::before {\n        content: none;\n      }\n    // Since this is hidden and reused we need to not use padding adjust unless it\n    // was visible\n    } @else if ($cap-size) {\n      padding-#{ $cap-side }: calc(map.get($padding-info, $cap-side) + $cap-size);\n    }\n  }\n\n  @include -output-style-modifiers();\n",
              "line": {
                "start": 109,
                "end": 157
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"callout\");  \n  $padding: get(\"padding\");\n  $padding-info: utils.get-spacing($padding);\n  $cap-options: get(\"cap-options\");\n  $cap-size: map.get($cap-options, \"size\");\n  $cap-side: get(\"cap-side\");\n\n  #{ $prefix } {\n    position: relative; // For cap\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin\");\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    & >:first-child {\n      margin-top: 0;\n    }\n\n    // If we have left cap on default we reuse this for all\n    // Else we will print it out manually for each unique style\n    @if (not get(\"caps-disabled\")) {   \n      $cap-defaults: (\n        \"offset\" : get(\"border-width\"),\n        \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), null),\n        // \"padding-adjust\" : map.get($padding-info, $cap-side)\n      );\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, $cap-options)\n      );\n    }\n      \n    // If the left cap is disabled we still include it's CSS but we hide it\n    // so that other styles of callouts can use it\n    @if (not get(\"cap\")) {\n      &::before {\n        content: none;\n      }\n    // Since this is hidden and reused we need to not use padding adjust unless it\n    // was visible\n    } @else if ($cap-size) {\n      padding-#{ $cap-side }: calc(map.get($padding-info, $cap-side) + $cap-size);\n    }\n  }\n\n  @include -output-style-modifiers();\n",
              "line": {
                "start": 109,
                "end": 157
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"callout\");  \n  $padding: get(\"padding\");\n  $padding-info: utils.get-spacing($padding);\n  $cap-options: get(\"cap-options\");\n  $cap-size: map.get($cap-options, \"size\");\n  $cap-side: get(\"cap-side\");\n\n  #{ $prefix } {\n    position: relative; // For cap\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin\");\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    & >:first-child {\n      margin-top: 0;\n    }\n\n    // If we have left cap on default we reuse this for all\n    // Else we will print it out manually for each unique style\n    @if (not get(\"caps-disabled\")) {   \n      $cap-defaults: (\n        \"offset\" : get(\"border-width\"),\n        \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), null),\n        // \"padding-adjust\" : map.get($padding-info, $cap-side)\n      );\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, $cap-options)\n      );\n    }\n      \n    // If the left cap is disabled we still include it's CSS but we hide it\n    // so that other styles of callouts can use it\n    @if (not get(\"cap\")) {\n      &::before {\n        content: none;\n      }\n    // Since this is hidden and reused we need to not use padding adjust unless it\n    // was visible\n    } @else if ($cap-size) {\n      padding-#{ $cap-side }: calc(map.get($padding-info, $cap-side) + $cap-size);\n    }\n  }\n\n  @include -output-style-modifiers();\n",
              "line": {
                "start": 109,
                "end": 157
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"callout\");  \n  $padding: get(\"padding\");\n  $padding-info: utils.get-spacing($padding);\n  $cap-options: get(\"cap-options\");\n  $cap-size: map.get($cap-options, \"size\");\n  $cap-side: get(\"cap-side\");\n\n  #{ $prefix } {\n    position: relative; // For cap\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin\");\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    & >:first-child {\n      margin-top: 0;\n    }\n\n    // If we have left cap on default we reuse this for all\n    // Else we will print it out manually for each unique style\n    @if (not get(\"caps-disabled\")) {   \n      $cap-defaults: (\n        \"offset\" : get(\"border-width\"),\n        \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), null),\n        // \"padding-adjust\" : map.get($padding-info, $cap-side)\n      );\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, $cap-options)\n      );\n    }\n      \n    // If the left cap is disabled we still include it's CSS but we hide it\n    // so that other styles of callouts can use it\n    @if (not get(\"cap\")) {\n      &::before {\n        content: none;\n      }\n    // Since this is hidden and reused we need to not use padding adjust unless it\n    // was visible\n    } @else if ($cap-size) {\n      padding-#{ $cap-side }: calc(map.get($padding-info, $cap-side) + $cap-size);\n    }\n  }\n\n  @include -output-style-modifiers();\n",
              "line": {
                "start": 109,
                "end": 157
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"callout\");  \n  $padding: get(\"padding\");\n  $padding-info: utils.get-spacing($padding);\n  $cap-options: get(\"cap-options\");\n  $cap-size: map.get($cap-options, \"size\");\n  $cap-side: get(\"cap-side\");\n\n  #{ $prefix } {\n    position: relative; // For cap\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin\");\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    & >:first-child {\n      margin-top: 0;\n    }\n\n    // If we have left cap on default we reuse this for all\n    // Else we will print it out manually for each unique style\n    @if (not get(\"caps-disabled\")) {   \n      $cap-defaults: (\n        \"offset\" : get(\"border-width\"),\n        \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), null),\n        // \"padding-adjust\" : map.get($padding-info, $cap-side)\n      );\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, $cap-options)\n      );\n    }\n      \n    // If the left cap is disabled we still include it's CSS but we hide it\n    // so that other styles of callouts can use it\n    @if (not get(\"cap\")) {\n      &::before {\n        content: none;\n      }\n    // Since this is hidden and reused we need to not use padding adjust unless it\n    // was visible\n    } @else if ($cap-size) {\n      padding-#{ $cap-side }: calc(map.get($padding-info, $cap-side) + $cap-size);\n    }\n  }\n\n  @include -output-style-modifiers();\n",
              "line": {
                "start": 109,
                "end": 157
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"callout\");  \n  $padding: get(\"padding\");\n  $padding-info: utils.get-spacing($padding);\n  $cap-options: get(\"cap-options\");\n  $cap-size: map.get($cap-options, \"size\");\n  $cap-side: get(\"cap-side\");\n\n  #{ $prefix } {\n    position: relative; // For cap\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin\");\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    & >:first-child {\n      margin-top: 0;\n    }\n\n    // If we have left cap on default we reuse this for all\n    // Else we will print it out manually for each unique style\n    @if (not get(\"caps-disabled\")) {   \n      $cap-defaults: (\n        \"offset\" : get(\"border-width\"),\n        \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), null),\n        // \"padding-adjust\" : map.get($padding-info, $cap-side)\n      );\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, $cap-options)\n      );\n    }\n      \n    // If the left cap is disabled we still include it's CSS but we hide it\n    // so that other styles of callouts can use it\n    @if (not get(\"cap\")) {\n      &::before {\n        content: none;\n      }\n    // Since this is hidden and reused we need to not use padding adjust unless it\n    // was visible\n    } @else if ($cap-size) {\n      padding-#{ $cap-side }: calc(map.get($padding-info, $cap-side) + $cap-size);\n    }\n  }\n\n  @include -output-style-modifiers();\n",
              "line": {
                "start": 109,
                "end": 157
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"callout\");  \n  $padding: get(\"padding\");\n  $padding-info: utils.get-spacing($padding);\n  $cap-options: get(\"cap-options\");\n  $cap-size: map.get($cap-options, \"size\");\n  $cap-side: get(\"cap-side\");\n\n  #{ $prefix } {\n    position: relative; // For cap\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin\");\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    & >:first-child {\n      margin-top: 0;\n    }\n\n    // If we have left cap on default we reuse this for all\n    // Else we will print it out manually for each unique style\n    @if (not get(\"caps-disabled\")) {   \n      $cap-defaults: (\n        \"offset\" : get(\"border-width\"),\n        \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), null),\n        // \"padding-adjust\" : map.get($padding-info, $cap-side)\n      );\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, $cap-options)\n      );\n    }\n      \n    // If the left cap is disabled we still include it's CSS but we hide it\n    // so that other styles of callouts can use it\n    @if (not get(\"cap\")) {\n      &::before {\n        content: none;\n      }\n    // Since this is hidden and reused we need to not use padding adjust unless it\n    // was visible\n    } @else if ($cap-size) {\n      padding-#{ $cap-side }: calc(map.get($padding-info, $cap-side) + $cap-size);\n    }\n  }\n\n  @include -output-style-modifiers();\n",
              "line": {
                "start": 109,
                "end": 157
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"callout\");  \n  $padding: get(\"padding\");\n  $padding-info: utils.get-spacing($padding);\n  $cap-options: get(\"cap-options\");\n  $cap-size: map.get($cap-options, \"size\");\n  $cap-side: get(\"cap-side\");\n\n  #{ $prefix } {\n    position: relative; // For cap\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin\");\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    & >:first-child {\n      margin-top: 0;\n    }\n\n    // If we have left cap on default we reuse this for all\n    // Else we will print it out manually for each unique style\n    @if (not get(\"caps-disabled\")) {   \n      $cap-defaults: (\n        \"offset\" : get(\"border-width\"),\n        \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), null),\n        // \"padding-adjust\" : map.get($padding-info, $cap-side)\n      );\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, $cap-options)\n      );\n    }\n      \n    // If the left cap is disabled we still include it's CSS but we hide it\n    // so that other styles of callouts can use it\n    @if (not get(\"cap\")) {\n      &::before {\n        content: none;\n      }\n    // Since this is hidden and reused we need to not use padding adjust unless it\n    // was visible\n    } @else if ($cap-size) {\n      padding-#{ $cap-side }: calc(map.get($padding-info, $cap-side) + $cap-size);\n    }\n  }\n\n  @include -output-style-modifiers();\n",
              "line": {
                "start": 109,
                "end": 157
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"callout\");  \n  $padding: get(\"padding\");\n  $padding-info: utils.get-spacing($padding);\n  $cap-options: get(\"cap-options\");\n  $cap-size: map.get($cap-options, \"size\");\n  $cap-side: get(\"cap-side\");\n\n  #{ $prefix } {\n    position: relative; // For cap\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin\");\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    & >:first-child {\n      margin-top: 0;\n    }\n\n    // If we have left cap on default we reuse this for all\n    // Else we will print it out manually for each unique style\n    @if (not get(\"caps-disabled\")) {   \n      $cap-defaults: (\n        \"offset\" : get(\"border-width\"),\n        \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), null),\n        // \"padding-adjust\" : map.get($padding-info, $cap-side)\n      );\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, $cap-options)\n      );\n    }\n      \n    // If the left cap is disabled we still include it's CSS but we hide it\n    // so that other styles of callouts can use it\n    @if (not get(\"cap\")) {\n      &::before {\n        content: none;\n      }\n    // Since this is hidden and reused we need to not use padding adjust unless it\n    // was visible\n    } @else if ($cap-size) {\n      padding-#{ $cap-side }: calc(map.get($padding-info, $cap-side) + $cap-size);\n    }\n  }\n\n  @include -output-style-modifiers();\n",
              "line": {
                "start": 109,
                "end": 157
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"callout\");  \n  $padding: get(\"padding\");\n  $padding-info: utils.get-spacing($padding);\n  $cap-options: get(\"cap-options\");\n  $cap-size: map.get($cap-options, \"size\");\n  $cap-side: get(\"cap-side\");\n\n  #{ $prefix } {\n    position: relative; // For cap\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin\");\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    & >:first-child {\n      margin-top: 0;\n    }\n\n    // If we have left cap on default we reuse this for all\n    // Else we will print it out manually for each unique style\n    @if (not get(\"caps-disabled\")) {   \n      $cap-defaults: (\n        \"offset\" : get(\"border-width\"),\n        \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), null),\n        // \"padding-adjust\" : map.get($padding-info, $cap-side)\n      );\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, $cap-options)\n      );\n    }\n      \n    // If the left cap is disabled we still include it's CSS but we hide it\n    // so that other styles of callouts can use it\n    @if (not get(\"cap\")) {\n      &::before {\n        content: none;\n      }\n    // Since this is hidden and reused we need to not use padding adjust unless it\n    // was visible\n    } @else if ($cap-size) {\n      padding-#{ $cap-side }: calc(map.get($padding-info, $cap-side) + $cap-size);\n    }\n  }\n\n  @include -output-style-modifiers();\n",
              "line": {
                "start": 109,
                "end": 157
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"captioned-figure\");\n  $set-aligns: get(\"text-alignment-matches\");\n  $aligns-center-only: get(\"text-alignment-matches-center-only\");\n\n  #{ $prefix } {\n    display: block;\n    position: relative;\n    margin-bottom: get(\"margin-bottom\");\n    background-color: color.get(get(\"background-color\"));\n    > img {\n      width: 100%;\n      height: auto;\n      margin: 0;\n    }\n  }\n  a#{ $prefix },\n  button#{ $prefix } {\n    display: block;\n    @if (get(\"box-shadow\")) {\n      &:hover,\n      &:focus {\n        box-shadow: get(\"box-shadow\");\n      }\n    }\n  }\n  #{ $prefix }__caption {\n    position: absolute;\n    color: color.get(get(\"color\"));\n    @include typography.size(get(\"type-size\"), $only-font-size: true);\n    line-height: get(\"line-height\");\n    max-width: get(\"caption-max-width\");\n    background-color: color.get(get(\"caption-background-color\"));\n    padding: get(\"caption-padding\");\n    backdrop-filter: get(\"caption-backdrop-filter\");\n  }\n  #{ $prefix }--traditional {\n    #{ $prefix }__caption {\n      position: static;\n      color: color.get(get(\"traditional-caption-color\"));\n      max-width: get(\"traditional-caption-max-width\");\n      background-color: color.get(get(\"traditional-caption-background-color\"));\n      padding: get(\"traditional-caption-padding\");\n      text-align: get(\"traditional-caption-text-align\");\n      @if (get(\"traditional-caption-text-align\") == right) {\n        margin-left: auto;\n      }\n      @if (get(\"traditional-caption-text-align\") == center) {\n        margin-left: auto;\n        margin-right: auto;\n      }\n    }\n  }\n  #{ $prefix }--left {\n    #{ $prefix }__caption {\n      left: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: left;\n      }\n    }\n  }\n  #{ $prefix }--right {\n    #{ $prefix }__caption {\n      right: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: right;\n      }\n    }\n  }\n  #{ $prefix }--bottom {\n    #{ $prefix }__caption {\n      bottom: 0;\n    }\n  }\n  #{ $prefix }--top {\n    #{ $prefix }__caption {\n      top: 0;\n    }\n  }\n  #{ $prefix }--bottom#{ $prefix }--center,\n  #{ $prefix }--top#{ $prefix }--center {\n    #{ $prefix }__caption {\n      left: 50%;\n      transform: translateX(-50%);\n      @if ($set-aligns or $aligns-center-only) {\n        text-align: center;\n      }\n    }\n  }\n  #{ $prefix }--left#{ $prefix }--center,\n  #{ $prefix }--right#{ $prefix }--center {\n    #{ $prefix }__caption {\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n",
              "line": {
                "start": 94,
                "end": 190
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"captioned-figure\");\n  $set-aligns: get(\"text-alignment-matches\");\n  $aligns-center-only: get(\"text-alignment-matches-center-only\");\n\n  #{ $prefix } {\n    display: block;\n    position: relative;\n    margin-bottom: get(\"margin-bottom\");\n    background-color: color.get(get(\"background-color\"));\n    > img {\n      width: 100%;\n      height: auto;\n      margin: 0;\n    }\n  }\n  a#{ $prefix },\n  button#{ $prefix } {\n    display: block;\n    @if (get(\"box-shadow\")) {\n      &:hover,\n      &:focus {\n        box-shadow: get(\"box-shadow\");\n      }\n    }\n  }\n  #{ $prefix }__caption {\n    position: absolute;\n    color: color.get(get(\"color\"));\n    @include typography.size(get(\"type-size\"), $only-font-size: true);\n    line-height: get(\"line-height\");\n    max-width: get(\"caption-max-width\");\n    background-color: color.get(get(\"caption-background-color\"));\n    padding: get(\"caption-padding\");\n    backdrop-filter: get(\"caption-backdrop-filter\");\n  }\n  #{ $prefix }--traditional {\n    #{ $prefix }__caption {\n      position: static;\n      color: color.get(get(\"traditional-caption-color\"));\n      max-width: get(\"traditional-caption-max-width\");\n      background-color: color.get(get(\"traditional-caption-background-color\"));\n      padding: get(\"traditional-caption-padding\");\n      text-align: get(\"traditional-caption-text-align\");\n      @if (get(\"traditional-caption-text-align\") == right) {\n        margin-left: auto;\n      }\n      @if (get(\"traditional-caption-text-align\") == center) {\n        margin-left: auto;\n        margin-right: auto;\n      }\n    }\n  }\n  #{ $prefix }--left {\n    #{ $prefix }__caption {\n      left: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: left;\n      }\n    }\n  }\n  #{ $prefix }--right {\n    #{ $prefix }__caption {\n      right: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: right;\n      }\n    }\n  }\n  #{ $prefix }--bottom {\n    #{ $prefix }__caption {\n      bottom: 0;\n    }\n  }\n  #{ $prefix }--top {\n    #{ $prefix }__caption {\n      top: 0;\n    }\n  }\n  #{ $prefix }--bottom#{ $prefix }--center,\n  #{ $prefix }--top#{ $prefix }--center {\n    #{ $prefix }__caption {\n      left: 50%;\n      transform: translateX(-50%);\n      @if ($set-aligns or $aligns-center-only) {\n        text-align: center;\n      }\n    }\n  }\n  #{ $prefix }--left#{ $prefix }--center,\n  #{ $prefix }--right#{ $prefix }--center {\n    #{ $prefix }__caption {\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n",
              "line": {
                "start": 94,
                "end": 190
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"captioned-figure\");\n  $set-aligns: get(\"text-alignment-matches\");\n  $aligns-center-only: get(\"text-alignment-matches-center-only\");\n\n  #{ $prefix } {\n    display: block;\n    position: relative;\n    margin-bottom: get(\"margin-bottom\");\n    background-color: color.get(get(\"background-color\"));\n    > img {\n      width: 100%;\n      height: auto;\n      margin: 0;\n    }\n  }\n  a#{ $prefix },\n  button#{ $prefix } {\n    display: block;\n    @if (get(\"box-shadow\")) {\n      &:hover,\n      &:focus {\n        box-shadow: get(\"box-shadow\");\n      }\n    }\n  }\n  #{ $prefix }__caption {\n    position: absolute;\n    color: color.get(get(\"color\"));\n    @include typography.size(get(\"type-size\"), $only-font-size: true);\n    line-height: get(\"line-height\");\n    max-width: get(\"caption-max-width\");\n    background-color: color.get(get(\"caption-background-color\"));\n    padding: get(\"caption-padding\");\n    backdrop-filter: get(\"caption-backdrop-filter\");\n  }\n  #{ $prefix }--traditional {\n    #{ $prefix }__caption {\n      position: static;\n      color: color.get(get(\"traditional-caption-color\"));\n      max-width: get(\"traditional-caption-max-width\");\n      background-color: color.get(get(\"traditional-caption-background-color\"));\n      padding: get(\"traditional-caption-padding\");\n      text-align: get(\"traditional-caption-text-align\");\n      @if (get(\"traditional-caption-text-align\") == right) {\n        margin-left: auto;\n      }\n      @if (get(\"traditional-caption-text-align\") == center) {\n        margin-left: auto;\n        margin-right: auto;\n      }\n    }\n  }\n  #{ $prefix }--left {\n    #{ $prefix }__caption {\n      left: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: left;\n      }\n    }\n  }\n  #{ $prefix }--right {\n    #{ $prefix }__caption {\n      right: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: right;\n      }\n    }\n  }\n  #{ $prefix }--bottom {\n    #{ $prefix }__caption {\n      bottom: 0;\n    }\n  }\n  #{ $prefix }--top {\n    #{ $prefix }__caption {\n      top: 0;\n    }\n  }\n  #{ $prefix }--bottom#{ $prefix }--center,\n  #{ $prefix }--top#{ $prefix }--center {\n    #{ $prefix }__caption {\n      left: 50%;\n      transform: translateX(-50%);\n      @if ($set-aligns or $aligns-center-only) {\n        text-align: center;\n      }\n    }\n  }\n  #{ $prefix }--left#{ $prefix }--center,\n  #{ $prefix }--right#{ $prefix }--center {\n    #{ $prefix }__caption {\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n",
              "line": {
                "start": 94,
                "end": 190
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"captioned-figure\");\n  $set-aligns: get(\"text-alignment-matches\");\n  $aligns-center-only: get(\"text-alignment-matches-center-only\");\n\n  #{ $prefix } {\n    display: block;\n    position: relative;\n    margin-bottom: get(\"margin-bottom\");\n    background-color: color.get(get(\"background-color\"));\n    > img {\n      width: 100%;\n      height: auto;\n      margin: 0;\n    }\n  }\n  a#{ $prefix },\n  button#{ $prefix } {\n    display: block;\n    @if (get(\"box-shadow\")) {\n      &:hover,\n      &:focus {\n        box-shadow: get(\"box-shadow\");\n      }\n    }\n  }\n  #{ $prefix }__caption {\n    position: absolute;\n    color: color.get(get(\"color\"));\n    @include typography.size(get(\"type-size\"), $only-font-size: true);\n    line-height: get(\"line-height\");\n    max-width: get(\"caption-max-width\");\n    background-color: color.get(get(\"caption-background-color\"));\n    padding: get(\"caption-padding\");\n    backdrop-filter: get(\"caption-backdrop-filter\");\n  }\n  #{ $prefix }--traditional {\n    #{ $prefix }__caption {\n      position: static;\n      color: color.get(get(\"traditional-caption-color\"));\n      max-width: get(\"traditional-caption-max-width\");\n      background-color: color.get(get(\"traditional-caption-background-color\"));\n      padding: get(\"traditional-caption-padding\");\n      text-align: get(\"traditional-caption-text-align\");\n      @if (get(\"traditional-caption-text-align\") == right) {\n        margin-left: auto;\n      }\n      @if (get(\"traditional-caption-text-align\") == center) {\n        margin-left: auto;\n        margin-right: auto;\n      }\n    }\n  }\n  #{ $prefix }--left {\n    #{ $prefix }__caption {\n      left: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: left;\n      }\n    }\n  }\n  #{ $prefix }--right {\n    #{ $prefix }__caption {\n      right: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: right;\n      }\n    }\n  }\n  #{ $prefix }--bottom {\n    #{ $prefix }__caption {\n      bottom: 0;\n    }\n  }\n  #{ $prefix }--top {\n    #{ $prefix }__caption {\n      top: 0;\n    }\n  }\n  #{ $prefix }--bottom#{ $prefix }--center,\n  #{ $prefix }--top#{ $prefix }--center {\n    #{ $prefix }__caption {\n      left: 50%;\n      transform: translateX(-50%);\n      @if ($set-aligns or $aligns-center-only) {\n        text-align: center;\n      }\n    }\n  }\n  #{ $prefix }--left#{ $prefix }--center,\n  #{ $prefix }--right#{ $prefix }--center {\n    #{ $prefix }__caption {\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n",
              "line": {
                "start": 94,
                "end": 190
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"captioned-figure\");\n  $set-aligns: get(\"text-alignment-matches\");\n  $aligns-center-only: get(\"text-alignment-matches-center-only\");\n\n  #{ $prefix } {\n    display: block;\n    position: relative;\n    margin-bottom: get(\"margin-bottom\");\n    background-color: color.get(get(\"background-color\"));\n    > img {\n      width: 100%;\n      height: auto;\n      margin: 0;\n    }\n  }\n  a#{ $prefix },\n  button#{ $prefix } {\n    display: block;\n    @if (get(\"box-shadow\")) {\n      &:hover,\n      &:focus {\n        box-shadow: get(\"box-shadow\");\n      }\n    }\n  }\n  #{ $prefix }__caption {\n    position: absolute;\n    color: color.get(get(\"color\"));\n    @include typography.size(get(\"type-size\"), $only-font-size: true);\n    line-height: get(\"line-height\");\n    max-width: get(\"caption-max-width\");\n    background-color: color.get(get(\"caption-background-color\"));\n    padding: get(\"caption-padding\");\n    backdrop-filter: get(\"caption-backdrop-filter\");\n  }\n  #{ $prefix }--traditional {\n    #{ $prefix }__caption {\n      position: static;\n      color: color.get(get(\"traditional-caption-color\"));\n      max-width: get(\"traditional-caption-max-width\");\n      background-color: color.get(get(\"traditional-caption-background-color\"));\n      padding: get(\"traditional-caption-padding\");\n      text-align: get(\"traditional-caption-text-align\");\n      @if (get(\"traditional-caption-text-align\") == right) {\n        margin-left: auto;\n      }\n      @if (get(\"traditional-caption-text-align\") == center) {\n        margin-left: auto;\n        margin-right: auto;\n      }\n    }\n  }\n  #{ $prefix }--left {\n    #{ $prefix }__caption {\n      left: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: left;\n      }\n    }\n  }\n  #{ $prefix }--right {\n    #{ $prefix }__caption {\n      right: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: right;\n      }\n    }\n  }\n  #{ $prefix }--bottom {\n    #{ $prefix }__caption {\n      bottom: 0;\n    }\n  }\n  #{ $prefix }--top {\n    #{ $prefix }__caption {\n      top: 0;\n    }\n  }\n  #{ $prefix }--bottom#{ $prefix }--center,\n  #{ $prefix }--top#{ $prefix }--center {\n    #{ $prefix }__caption {\n      left: 50%;\n      transform: translateX(-50%);\n      @if ($set-aligns or $aligns-center-only) {\n        text-align: center;\n      }\n    }\n  }\n  #{ $prefix }--left#{ $prefix }--center,\n  #{ $prefix }--right#{ $prefix }--center {\n    #{ $prefix }__caption {\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n",
              "line": {
                "start": 94,
                "end": 190
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"captioned-figure\");\n  $set-aligns: get(\"text-alignment-matches\");\n  $aligns-center-only: get(\"text-alignment-matches-center-only\");\n\n  #{ $prefix } {\n    display: block;\n    position: relative;\n    margin-bottom: get(\"margin-bottom\");\n    background-color: color.get(get(\"background-color\"));\n    > img {\n      width: 100%;\n      height: auto;\n      margin: 0;\n    }\n  }\n  a#{ $prefix },\n  button#{ $prefix } {\n    display: block;\n    @if (get(\"box-shadow\")) {\n      &:hover,\n      &:focus {\n        box-shadow: get(\"box-shadow\");\n      }\n    }\n  }\n  #{ $prefix }__caption {\n    position: absolute;\n    color: color.get(get(\"color\"));\n    @include typography.size(get(\"type-size\"), $only-font-size: true);\n    line-height: get(\"line-height\");\n    max-width: get(\"caption-max-width\");\n    background-color: color.get(get(\"caption-background-color\"));\n    padding: get(\"caption-padding\");\n    backdrop-filter: get(\"caption-backdrop-filter\");\n  }\n  #{ $prefix }--traditional {\n    #{ $prefix }__caption {\n      position: static;\n      color: color.get(get(\"traditional-caption-color\"));\n      max-width: get(\"traditional-caption-max-width\");\n      background-color: color.get(get(\"traditional-caption-background-color\"));\n      padding: get(\"traditional-caption-padding\");\n      text-align: get(\"traditional-caption-text-align\");\n      @if (get(\"traditional-caption-text-align\") == right) {\n        margin-left: auto;\n      }\n      @if (get(\"traditional-caption-text-align\") == center) {\n        margin-left: auto;\n        margin-right: auto;\n      }\n    }\n  }\n  #{ $prefix }--left {\n    #{ $prefix }__caption {\n      left: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: left;\n      }\n    }\n  }\n  #{ $prefix }--right {\n    #{ $prefix }__caption {\n      right: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: right;\n      }\n    }\n  }\n  #{ $prefix }--bottom {\n    #{ $prefix }__caption {\n      bottom: 0;\n    }\n  }\n  #{ $prefix }--top {\n    #{ $prefix }__caption {\n      top: 0;\n    }\n  }\n  #{ $prefix }--bottom#{ $prefix }--center,\n  #{ $prefix }--top#{ $prefix }--center {\n    #{ $prefix }__caption {\n      left: 50%;\n      transform: translateX(-50%);\n      @if ($set-aligns or $aligns-center-only) {\n        text-align: center;\n      }\n    }\n  }\n  #{ $prefix }--left#{ $prefix }--center,\n  #{ $prefix }--right#{ $prefix }--center {\n    #{ $prefix }__caption {\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n",
              "line": {
                "start": 94,
                "end": 190
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"captioned-figure\");\n  $set-aligns: get(\"text-alignment-matches\");\n  $aligns-center-only: get(\"text-alignment-matches-center-only\");\n\n  #{ $prefix } {\n    display: block;\n    position: relative;\n    margin-bottom: get(\"margin-bottom\");\n    background-color: color.get(get(\"background-color\"));\n    > img {\n      width: 100%;\n      height: auto;\n      margin: 0;\n    }\n  }\n  a#{ $prefix },\n  button#{ $prefix } {\n    display: block;\n    @if (get(\"box-shadow\")) {\n      &:hover,\n      &:focus {\n        box-shadow: get(\"box-shadow\");\n      }\n    }\n  }\n  #{ $prefix }__caption {\n    position: absolute;\n    color: color.get(get(\"color\"));\n    @include typography.size(get(\"type-size\"), $only-font-size: true);\n    line-height: get(\"line-height\");\n    max-width: get(\"caption-max-width\");\n    background-color: color.get(get(\"caption-background-color\"));\n    padding: get(\"caption-padding\");\n    backdrop-filter: get(\"caption-backdrop-filter\");\n  }\n  #{ $prefix }--traditional {\n    #{ $prefix }__caption {\n      position: static;\n      color: color.get(get(\"traditional-caption-color\"));\n      max-width: get(\"traditional-caption-max-width\");\n      background-color: color.get(get(\"traditional-caption-background-color\"));\n      padding: get(\"traditional-caption-padding\");\n      text-align: get(\"traditional-caption-text-align\");\n      @if (get(\"traditional-caption-text-align\") == right) {\n        margin-left: auto;\n      }\n      @if (get(\"traditional-caption-text-align\") == center) {\n        margin-left: auto;\n        margin-right: auto;\n      }\n    }\n  }\n  #{ $prefix }--left {\n    #{ $prefix }__caption {\n      left: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: left;\n      }\n    }\n  }\n  #{ $prefix }--right {\n    #{ $prefix }__caption {\n      right: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: right;\n      }\n    }\n  }\n  #{ $prefix }--bottom {\n    #{ $prefix }__caption {\n      bottom: 0;\n    }\n  }\n  #{ $prefix }--top {\n    #{ $prefix }__caption {\n      top: 0;\n    }\n  }\n  #{ $prefix }--bottom#{ $prefix }--center,\n  #{ $prefix }--top#{ $prefix }--center {\n    #{ $prefix }__caption {\n      left: 50%;\n      transform: translateX(-50%);\n      @if ($set-aligns or $aligns-center-only) {\n        text-align: center;\n      }\n    }\n  }\n  #{ $prefix }--left#{ $prefix }--center,\n  #{ $prefix }--right#{ $prefix }--center {\n    #{ $prefix }__caption {\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n",
              "line": {
                "start": 94,
                "end": 190
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"captioned-figure\");\n  $set-aligns: get(\"text-alignment-matches\");\n  $aligns-center-only: get(\"text-alignment-matches-center-only\");\n\n  #{ $prefix } {\n    display: block;\n    position: relative;\n    margin-bottom: get(\"margin-bottom\");\n    background-color: color.get(get(\"background-color\"));\n    > img {\n      width: 100%;\n      height: auto;\n      margin: 0;\n    }\n  }\n  a#{ $prefix },\n  button#{ $prefix } {\n    display: block;\n    @if (get(\"box-shadow\")) {\n      &:hover,\n      &:focus {\n        box-shadow: get(\"box-shadow\");\n      }\n    }\n  }\n  #{ $prefix }__caption {\n    position: absolute;\n    color: color.get(get(\"color\"));\n    @include typography.size(get(\"type-size\"), $only-font-size: true);\n    line-height: get(\"line-height\");\n    max-width: get(\"caption-max-width\");\n    background-color: color.get(get(\"caption-background-color\"));\n    padding: get(\"caption-padding\");\n    backdrop-filter: get(\"caption-backdrop-filter\");\n  }\n  #{ $prefix }--traditional {\n    #{ $prefix }__caption {\n      position: static;\n      color: color.get(get(\"traditional-caption-color\"));\n      max-width: get(\"traditional-caption-max-width\");\n      background-color: color.get(get(\"traditional-caption-background-color\"));\n      padding: get(\"traditional-caption-padding\");\n      text-align: get(\"traditional-caption-text-align\");\n      @if (get(\"traditional-caption-text-align\") == right) {\n        margin-left: auto;\n      }\n      @if (get(\"traditional-caption-text-align\") == center) {\n        margin-left: auto;\n        margin-right: auto;\n      }\n    }\n  }\n  #{ $prefix }--left {\n    #{ $prefix }__caption {\n      left: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: left;\n      }\n    }\n  }\n  #{ $prefix }--right {\n    #{ $prefix }__caption {\n      right: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: right;\n      }\n    }\n  }\n  #{ $prefix }--bottom {\n    #{ $prefix }__caption {\n      bottom: 0;\n    }\n  }\n  #{ $prefix }--top {\n    #{ $prefix }__caption {\n      top: 0;\n    }\n  }\n  #{ $prefix }--bottom#{ $prefix }--center,\n  #{ $prefix }--top#{ $prefix }--center {\n    #{ $prefix }__caption {\n      left: 50%;\n      transform: translateX(-50%);\n      @if ($set-aligns or $aligns-center-only) {\n        text-align: center;\n      }\n    }\n  }\n  #{ $prefix }--left#{ $prefix }--center,\n  #{ $prefix }--right#{ $prefix }--center {\n    #{ $prefix }__caption {\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n",
              "line": {
                "start": 94,
                "end": 190
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"captioned-figure\");\n  $set-aligns: get(\"text-alignment-matches\");\n  $aligns-center-only: get(\"text-alignment-matches-center-only\");\n\n  #{ $prefix } {\n    display: block;\n    position: relative;\n    margin-bottom: get(\"margin-bottom\");\n    background-color: color.get(get(\"background-color\"));\n    > img {\n      width: 100%;\n      height: auto;\n      margin: 0;\n    }\n  }\n  a#{ $prefix },\n  button#{ $prefix } {\n    display: block;\n    @if (get(\"box-shadow\")) {\n      &:hover,\n      &:focus {\n        box-shadow: get(\"box-shadow\");\n      }\n    }\n  }\n  #{ $prefix }__caption {\n    position: absolute;\n    color: color.get(get(\"color\"));\n    @include typography.size(get(\"type-size\"), $only-font-size: true);\n    line-height: get(\"line-height\");\n    max-width: get(\"caption-max-width\");\n    background-color: color.get(get(\"caption-background-color\"));\n    padding: get(\"caption-padding\");\n    backdrop-filter: get(\"caption-backdrop-filter\");\n  }\n  #{ $prefix }--traditional {\n    #{ $prefix }__caption {\n      position: static;\n      color: color.get(get(\"traditional-caption-color\"));\n      max-width: get(\"traditional-caption-max-width\");\n      background-color: color.get(get(\"traditional-caption-background-color\"));\n      padding: get(\"traditional-caption-padding\");\n      text-align: get(\"traditional-caption-text-align\");\n      @if (get(\"traditional-caption-text-align\") == right) {\n        margin-left: auto;\n      }\n      @if (get(\"traditional-caption-text-align\") == center) {\n        margin-left: auto;\n        margin-right: auto;\n      }\n    }\n  }\n  #{ $prefix }--left {\n    #{ $prefix }__caption {\n      left: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: left;\n      }\n    }\n  }\n  #{ $prefix }--right {\n    #{ $prefix }__caption {\n      right: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: right;\n      }\n    }\n  }\n  #{ $prefix }--bottom {\n    #{ $prefix }__caption {\n      bottom: 0;\n    }\n  }\n  #{ $prefix }--top {\n    #{ $prefix }__caption {\n      top: 0;\n    }\n  }\n  #{ $prefix }--bottom#{ $prefix }--center,\n  #{ $prefix }--top#{ $prefix }--center {\n    #{ $prefix }__caption {\n      left: 50%;\n      transform: translateX(-50%);\n      @if ($set-aligns or $aligns-center-only) {\n        text-align: center;\n      }\n    }\n  }\n  #{ $prefix }--left#{ $prefix }--center,\n  #{ $prefix }--right#{ $prefix }--center {\n    #{ $prefix }__caption {\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n",
              "line": {
                "start": 94,
                "end": 190
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"captioned-figure\");\n  $set-aligns: get(\"text-alignment-matches\");\n  $aligns-center-only: get(\"text-alignment-matches-center-only\");\n\n  #{ $prefix } {\n    display: block;\n    position: relative;\n    margin-bottom: get(\"margin-bottom\");\n    background-color: color.get(get(\"background-color\"));\n    > img {\n      width: 100%;\n      height: auto;\n      margin: 0;\n    }\n  }\n  a#{ $prefix },\n  button#{ $prefix } {\n    display: block;\n    @if (get(\"box-shadow\")) {\n      &:hover,\n      &:focus {\n        box-shadow: get(\"box-shadow\");\n      }\n    }\n  }\n  #{ $prefix }__caption {\n    position: absolute;\n    color: color.get(get(\"color\"));\n    @include typography.size(get(\"type-size\"), $only-font-size: true);\n    line-height: get(\"line-height\");\n    max-width: get(\"caption-max-width\");\n    background-color: color.get(get(\"caption-background-color\"));\n    padding: get(\"caption-padding\");\n    backdrop-filter: get(\"caption-backdrop-filter\");\n  }\n  #{ $prefix }--traditional {\n    #{ $prefix }__caption {\n      position: static;\n      color: color.get(get(\"traditional-caption-color\"));\n      max-width: get(\"traditional-caption-max-width\");\n      background-color: color.get(get(\"traditional-caption-background-color\"));\n      padding: get(\"traditional-caption-padding\");\n      text-align: get(\"traditional-caption-text-align\");\n      @if (get(\"traditional-caption-text-align\") == right) {\n        margin-left: auto;\n      }\n      @if (get(\"traditional-caption-text-align\") == center) {\n        margin-left: auto;\n        margin-right: auto;\n      }\n    }\n  }\n  #{ $prefix }--left {\n    #{ $prefix }__caption {\n      left: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: left;\n      }\n    }\n  }\n  #{ $prefix }--right {\n    #{ $prefix }__caption {\n      right: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: right;\n      }\n    }\n  }\n  #{ $prefix }--bottom {\n    #{ $prefix }__caption {\n      bottom: 0;\n    }\n  }\n  #{ $prefix }--top {\n    #{ $prefix }__caption {\n      top: 0;\n    }\n  }\n  #{ $prefix }--bottom#{ $prefix }--center,\n  #{ $prefix }--top#{ $prefix }--center {\n    #{ $prefix }__caption {\n      left: 50%;\n      transform: translateX(-50%);\n      @if ($set-aligns or $aligns-center-only) {\n        text-align: center;\n      }\n    }\n  }\n  #{ $prefix }--left#{ $prefix }--center,\n  #{ $prefix }--right#{ $prefix }--center {\n    #{ $prefix }__caption {\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n",
              "line": {
                "start": 94,
                "end": 190
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"captioned-figure\");\n  $set-aligns: get(\"text-alignment-matches\");\n  $aligns-center-only: get(\"text-alignment-matches-center-only\");\n\n  #{ $prefix } {\n    display: block;\n    position: relative;\n    margin-bottom: get(\"margin-bottom\");\n    background-color: color.get(get(\"background-color\"));\n    > img {\n      width: 100%;\n      height: auto;\n      margin: 0;\n    }\n  }\n  a#{ $prefix },\n  button#{ $prefix } {\n    display: block;\n    @if (get(\"box-shadow\")) {\n      &:hover,\n      &:focus {\n        box-shadow: get(\"box-shadow\");\n      }\n    }\n  }\n  #{ $prefix }__caption {\n    position: absolute;\n    color: color.get(get(\"color\"));\n    @include typography.size(get(\"type-size\"), $only-font-size: true);\n    line-height: get(\"line-height\");\n    max-width: get(\"caption-max-width\");\n    background-color: color.get(get(\"caption-background-color\"));\n    padding: get(\"caption-padding\");\n    backdrop-filter: get(\"caption-backdrop-filter\");\n  }\n  #{ $prefix }--traditional {\n    #{ $prefix }__caption {\n      position: static;\n      color: color.get(get(\"traditional-caption-color\"));\n      max-width: get(\"traditional-caption-max-width\");\n      background-color: color.get(get(\"traditional-caption-background-color\"));\n      padding: get(\"traditional-caption-padding\");\n      text-align: get(\"traditional-caption-text-align\");\n      @if (get(\"traditional-caption-text-align\") == right) {\n        margin-left: auto;\n      }\n      @if (get(\"traditional-caption-text-align\") == center) {\n        margin-left: auto;\n        margin-right: auto;\n      }\n    }\n  }\n  #{ $prefix }--left {\n    #{ $prefix }__caption {\n      left: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: left;\n      }\n    }\n  }\n  #{ $prefix }--right {\n    #{ $prefix }__caption {\n      right: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: right;\n      }\n    }\n  }\n  #{ $prefix }--bottom {\n    #{ $prefix }__caption {\n      bottom: 0;\n    }\n  }\n  #{ $prefix }--top {\n    #{ $prefix }__caption {\n      top: 0;\n    }\n  }\n  #{ $prefix }--bottom#{ $prefix }--center,\n  #{ $prefix }--top#{ $prefix }--center {\n    #{ $prefix }__caption {\n      left: 50%;\n      transform: translateX(-50%);\n      @if ($set-aligns or $aligns-center-only) {\n        text-align: center;\n      }\n    }\n  }\n  #{ $prefix }--left#{ $prefix }--center,\n  #{ $prefix }--right#{ $prefix }--center {\n    #{ $prefix }__caption {\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n",
              "line": {
                "start": 94,
                "end": 190
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"captioned-figure\");\n  $set-aligns: get(\"text-alignment-matches\");\n  $aligns-center-only: get(\"text-alignment-matches-center-only\");\n\n  #{ $prefix } {\n    display: block;\n    position: relative;\n    margin-bottom: get(\"margin-bottom\");\n    background-color: color.get(get(\"background-color\"));\n    > img {\n      width: 100%;\n      height: auto;\n      margin: 0;\n    }\n  }\n  a#{ $prefix },\n  button#{ $prefix } {\n    display: block;\n    @if (get(\"box-shadow\")) {\n      &:hover,\n      &:focus {\n        box-shadow: get(\"box-shadow\");\n      }\n    }\n  }\n  #{ $prefix }__caption {\n    position: absolute;\n    color: color.get(get(\"color\"));\n    @include typography.size(get(\"type-size\"), $only-font-size: true);\n    line-height: get(\"line-height\");\n    max-width: get(\"caption-max-width\");\n    background-color: color.get(get(\"caption-background-color\"));\n    padding: get(\"caption-padding\");\n    backdrop-filter: get(\"caption-backdrop-filter\");\n  }\n  #{ $prefix }--traditional {\n    #{ $prefix }__caption {\n      position: static;\n      color: color.get(get(\"traditional-caption-color\"));\n      max-width: get(\"traditional-caption-max-width\");\n      background-color: color.get(get(\"traditional-caption-background-color\"));\n      padding: get(\"traditional-caption-padding\");\n      text-align: get(\"traditional-caption-text-align\");\n      @if (get(\"traditional-caption-text-align\") == right) {\n        margin-left: auto;\n      }\n      @if (get(\"traditional-caption-text-align\") == center) {\n        margin-left: auto;\n        margin-right: auto;\n      }\n    }\n  }\n  #{ $prefix }--left {\n    #{ $prefix }__caption {\n      left: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: left;\n      }\n    }\n  }\n  #{ $prefix }--right {\n    #{ $prefix }__caption {\n      right: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: right;\n      }\n    }\n  }\n  #{ $prefix }--bottom {\n    #{ $prefix }__caption {\n      bottom: 0;\n    }\n  }\n  #{ $prefix }--top {\n    #{ $prefix }__caption {\n      top: 0;\n    }\n  }\n  #{ $prefix }--bottom#{ $prefix }--center,\n  #{ $prefix }--top#{ $prefix }--center {\n    #{ $prefix }__caption {\n      left: 50%;\n      transform: translateX(-50%);\n      @if ($set-aligns or $aligns-center-only) {\n        text-align: center;\n      }\n    }\n  }\n  #{ $prefix }--left#{ $prefix }--center,\n  #{ $prefix }--right#{ $prefix }--center {\n    #{ $prefix }__caption {\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n",
              "line": {
                "start": 94,
                "end": 190
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"captioned-figure\");\n  $set-aligns: get(\"text-alignment-matches\");\n  $aligns-center-only: get(\"text-alignment-matches-center-only\");\n\n  #{ $prefix } {\n    display: block;\n    position: relative;\n    margin-bottom: get(\"margin-bottom\");\n    background-color: color.get(get(\"background-color\"));\n    > img {\n      width: 100%;\n      height: auto;\n      margin: 0;\n    }\n  }\n  a#{ $prefix },\n  button#{ $prefix } {\n    display: block;\n    @if (get(\"box-shadow\")) {\n      &:hover,\n      &:focus {\n        box-shadow: get(\"box-shadow\");\n      }\n    }\n  }\n  #{ $prefix }__caption {\n    position: absolute;\n    color: color.get(get(\"color\"));\n    @include typography.size(get(\"type-size\"), $only-font-size: true);\n    line-height: get(\"line-height\");\n    max-width: get(\"caption-max-width\");\n    background-color: color.get(get(\"caption-background-color\"));\n    padding: get(\"caption-padding\");\n    backdrop-filter: get(\"caption-backdrop-filter\");\n  }\n  #{ $prefix }--traditional {\n    #{ $prefix }__caption {\n      position: static;\n      color: color.get(get(\"traditional-caption-color\"));\n      max-width: get(\"traditional-caption-max-width\");\n      background-color: color.get(get(\"traditional-caption-background-color\"));\n      padding: get(\"traditional-caption-padding\");\n      text-align: get(\"traditional-caption-text-align\");\n      @if (get(\"traditional-caption-text-align\") == right) {\n        margin-left: auto;\n      }\n      @if (get(\"traditional-caption-text-align\") == center) {\n        margin-left: auto;\n        margin-right: auto;\n      }\n    }\n  }\n  #{ $prefix }--left {\n    #{ $prefix }__caption {\n      left: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: left;\n      }\n    }\n  }\n  #{ $prefix }--right {\n    #{ $prefix }__caption {\n      right: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: right;\n      }\n    }\n  }\n  #{ $prefix }--bottom {\n    #{ $prefix }__caption {\n      bottom: 0;\n    }\n  }\n  #{ $prefix }--top {\n    #{ $prefix }__caption {\n      top: 0;\n    }\n  }\n  #{ $prefix }--bottom#{ $prefix }--center,\n  #{ $prefix }--top#{ $prefix }--center {\n    #{ $prefix }__caption {\n      left: 50%;\n      transform: translateX(-50%);\n      @if ($set-aligns or $aligns-center-only) {\n        text-align: center;\n      }\n    }\n  }\n  #{ $prefix }--left#{ $prefix }--center,\n  #{ $prefix }--right#{ $prefix }--center {\n    #{ $prefix }__caption {\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n",
              "line": {
                "start": 94,
                "end": 190
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"captioned-figure\");\n  $set-aligns: get(\"text-alignment-matches\");\n  $aligns-center-only: get(\"text-alignment-matches-center-only\");\n\n  #{ $prefix } {\n    display: block;\n    position: relative;\n    margin-bottom: get(\"margin-bottom\");\n    background-color: color.get(get(\"background-color\"));\n    > img {\n      width: 100%;\n      height: auto;\n      margin: 0;\n    }\n  }\n  a#{ $prefix },\n  button#{ $prefix } {\n    display: block;\n    @if (get(\"box-shadow\")) {\n      &:hover,\n      &:focus {\n        box-shadow: get(\"box-shadow\");\n      }\n    }\n  }\n  #{ $prefix }__caption {\n    position: absolute;\n    color: color.get(get(\"color\"));\n    @include typography.size(get(\"type-size\"), $only-font-size: true);\n    line-height: get(\"line-height\");\n    max-width: get(\"caption-max-width\");\n    background-color: color.get(get(\"caption-background-color\"));\n    padding: get(\"caption-padding\");\n    backdrop-filter: get(\"caption-backdrop-filter\");\n  }\n  #{ $prefix }--traditional {\n    #{ $prefix }__caption {\n      position: static;\n      color: color.get(get(\"traditional-caption-color\"));\n      max-width: get(\"traditional-caption-max-width\");\n      background-color: color.get(get(\"traditional-caption-background-color\"));\n      padding: get(\"traditional-caption-padding\");\n      text-align: get(\"traditional-caption-text-align\");\n      @if (get(\"traditional-caption-text-align\") == right) {\n        margin-left: auto;\n      }\n      @if (get(\"traditional-caption-text-align\") == center) {\n        margin-left: auto;\n        margin-right: auto;\n      }\n    }\n  }\n  #{ $prefix }--left {\n    #{ $prefix }__caption {\n      left: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: left;\n      }\n    }\n  }\n  #{ $prefix }--right {\n    #{ $prefix }__caption {\n      right: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: right;\n      }\n    }\n  }\n  #{ $prefix }--bottom {\n    #{ $prefix }__caption {\n      bottom: 0;\n    }\n  }\n  #{ $prefix }--top {\n    #{ $prefix }__caption {\n      top: 0;\n    }\n  }\n  #{ $prefix }--bottom#{ $prefix }--center,\n  #{ $prefix }--top#{ $prefix }--center {\n    #{ $prefix }__caption {\n      left: 50%;\n      transform: translateX(-50%);\n      @if ($set-aligns or $aligns-center-only) {\n        text-align: center;\n      }\n    }\n  }\n  #{ $prefix }--left#{ $prefix }--center,\n  #{ $prefix }--right#{ $prefix }--center {\n    #{ $prefix }__caption {\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n",
              "line": {
                "start": 94,
                "end": 190
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"captioned-figure\");\n  $set-aligns: get(\"text-alignment-matches\");\n  $aligns-center-only: get(\"text-alignment-matches-center-only\");\n\n  #{ $prefix } {\n    display: block;\n    position: relative;\n    margin-bottom: get(\"margin-bottom\");\n    background-color: color.get(get(\"background-color\"));\n    > img {\n      width: 100%;\n      height: auto;\n      margin: 0;\n    }\n  }\n  a#{ $prefix },\n  button#{ $prefix } {\n    display: block;\n    @if (get(\"box-shadow\")) {\n      &:hover,\n      &:focus {\n        box-shadow: get(\"box-shadow\");\n      }\n    }\n  }\n  #{ $prefix }__caption {\n    position: absolute;\n    color: color.get(get(\"color\"));\n    @include typography.size(get(\"type-size\"), $only-font-size: true);\n    line-height: get(\"line-height\");\n    max-width: get(\"caption-max-width\");\n    background-color: color.get(get(\"caption-background-color\"));\n    padding: get(\"caption-padding\");\n    backdrop-filter: get(\"caption-backdrop-filter\");\n  }\n  #{ $prefix }--traditional {\n    #{ $prefix }__caption {\n      position: static;\n      color: color.get(get(\"traditional-caption-color\"));\n      max-width: get(\"traditional-caption-max-width\");\n      background-color: color.get(get(\"traditional-caption-background-color\"));\n      padding: get(\"traditional-caption-padding\");\n      text-align: get(\"traditional-caption-text-align\");\n      @if (get(\"traditional-caption-text-align\") == right) {\n        margin-left: auto;\n      }\n      @if (get(\"traditional-caption-text-align\") == center) {\n        margin-left: auto;\n        margin-right: auto;\n      }\n    }\n  }\n  #{ $prefix }--left {\n    #{ $prefix }__caption {\n      left: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: left;\n      }\n    }\n  }\n  #{ $prefix }--right {\n    #{ $prefix }__caption {\n      right: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: right;\n      }\n    }\n  }\n  #{ $prefix }--bottom {\n    #{ $prefix }__caption {\n      bottom: 0;\n    }\n  }\n  #{ $prefix }--top {\n    #{ $prefix }__caption {\n      top: 0;\n    }\n  }\n  #{ $prefix }--bottom#{ $prefix }--center,\n  #{ $prefix }--top#{ $prefix }--center {\n    #{ $prefix }__caption {\n      left: 50%;\n      transform: translateX(-50%);\n      @if ($set-aligns or $aligns-center-only) {\n        text-align: center;\n      }\n    }\n  }\n  #{ $prefix }--left#{ $prefix }--center,\n  #{ $prefix }--right#{ $prefix }--center {\n    #{ $prefix }__caption {\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n",
              "line": {
                "start": 94,
                "end": 190
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"captioned-figure\");\n  $set-aligns: get(\"text-alignment-matches\");\n  $aligns-center-only: get(\"text-alignment-matches-center-only\");\n\n  #{ $prefix } {\n    display: block;\n    position: relative;\n    margin-bottom: get(\"margin-bottom\");\n    background-color: color.get(get(\"background-color\"));\n    > img {\n      width: 100%;\n      height: auto;\n      margin: 0;\n    }\n  }\n  a#{ $prefix },\n  button#{ $prefix } {\n    display: block;\n    @if (get(\"box-shadow\")) {\n      &:hover,\n      &:focus {\n        box-shadow: get(\"box-shadow\");\n      }\n    }\n  }\n  #{ $prefix }__caption {\n    position: absolute;\n    color: color.get(get(\"color\"));\n    @include typography.size(get(\"type-size\"), $only-font-size: true);\n    line-height: get(\"line-height\");\n    max-width: get(\"caption-max-width\");\n    background-color: color.get(get(\"caption-background-color\"));\n    padding: get(\"caption-padding\");\n    backdrop-filter: get(\"caption-backdrop-filter\");\n  }\n  #{ $prefix }--traditional {\n    #{ $prefix }__caption {\n      position: static;\n      color: color.get(get(\"traditional-caption-color\"));\n      max-width: get(\"traditional-caption-max-width\");\n      background-color: color.get(get(\"traditional-caption-background-color\"));\n      padding: get(\"traditional-caption-padding\");\n      text-align: get(\"traditional-caption-text-align\");\n      @if (get(\"traditional-caption-text-align\") == right) {\n        margin-left: auto;\n      }\n      @if (get(\"traditional-caption-text-align\") == center) {\n        margin-left: auto;\n        margin-right: auto;\n      }\n    }\n  }\n  #{ $prefix }--left {\n    #{ $prefix }__caption {\n      left: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: left;\n      }\n    }\n  }\n  #{ $prefix }--right {\n    #{ $prefix }__caption {\n      right: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: right;\n      }\n    }\n  }\n  #{ $prefix }--bottom {\n    #{ $prefix }__caption {\n      bottom: 0;\n    }\n  }\n  #{ $prefix }--top {\n    #{ $prefix }__caption {\n      top: 0;\n    }\n  }\n  #{ $prefix }--bottom#{ $prefix }--center,\n  #{ $prefix }--top#{ $prefix }--center {\n    #{ $prefix }__caption {\n      left: 50%;\n      transform: translateX(-50%);\n      @if ($set-aligns or $aligns-center-only) {\n        text-align: center;\n      }\n    }\n  }\n  #{ $prefix }--left#{ $prefix }--center,\n  #{ $prefix }--right#{ $prefix }--center {\n    #{ $prefix }__caption {\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n",
              "line": {
                "start": 94,
                "end": 190
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"captioned-figure\");\n  $set-aligns: get(\"text-alignment-matches\");\n  $aligns-center-only: get(\"text-alignment-matches-center-only\");\n\n  #{ $prefix } {\n    display: block;\n    position: relative;\n    margin-bottom: get(\"margin-bottom\");\n    background-color: color.get(get(\"background-color\"));\n    > img {\n      width: 100%;\n      height: auto;\n      margin: 0;\n    }\n  }\n  a#{ $prefix },\n  button#{ $prefix } {\n    display: block;\n    @if (get(\"box-shadow\")) {\n      &:hover,\n      &:focus {\n        box-shadow: get(\"box-shadow\");\n      }\n    }\n  }\n  #{ $prefix }__caption {\n    position: absolute;\n    color: color.get(get(\"color\"));\n    @include typography.size(get(\"type-size\"), $only-font-size: true);\n    line-height: get(\"line-height\");\n    max-width: get(\"caption-max-width\");\n    background-color: color.get(get(\"caption-background-color\"));\n    padding: get(\"caption-padding\");\n    backdrop-filter: get(\"caption-backdrop-filter\");\n  }\n  #{ $prefix }--traditional {\n    #{ $prefix }__caption {\n      position: static;\n      color: color.get(get(\"traditional-caption-color\"));\n      max-width: get(\"traditional-caption-max-width\");\n      background-color: color.get(get(\"traditional-caption-background-color\"));\n      padding: get(\"traditional-caption-padding\");\n      text-align: get(\"traditional-caption-text-align\");\n      @if (get(\"traditional-caption-text-align\") == right) {\n        margin-left: auto;\n      }\n      @if (get(\"traditional-caption-text-align\") == center) {\n        margin-left: auto;\n        margin-right: auto;\n      }\n    }\n  }\n  #{ $prefix }--left {\n    #{ $prefix }__caption {\n      left: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: left;\n      }\n    }\n  }\n  #{ $prefix }--right {\n    #{ $prefix }__caption {\n      right: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: right;\n      }\n    }\n  }\n  #{ $prefix }--bottom {\n    #{ $prefix }__caption {\n      bottom: 0;\n    }\n  }\n  #{ $prefix }--top {\n    #{ $prefix }__caption {\n      top: 0;\n    }\n  }\n  #{ $prefix }--bottom#{ $prefix }--center,\n  #{ $prefix }--top#{ $prefix }--center {\n    #{ $prefix }__caption {\n      left: 50%;\n      transform: translateX(-50%);\n      @if ($set-aligns or $aligns-center-only) {\n        text-align: center;\n      }\n    }\n  }\n  #{ $prefix }--left#{ $prefix }--center,\n  #{ $prefix }--right#{ $prefix }--center {\n    #{ $prefix }__caption {\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n",
              "line": {
                "start": 94,
                "end": 190
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"captioned-figure\");\n  $set-aligns: get(\"text-alignment-matches\");\n  $aligns-center-only: get(\"text-alignment-matches-center-only\");\n\n  #{ $prefix } {\n    display: block;\n    position: relative;\n    margin-bottom: get(\"margin-bottom\");\n    background-color: color.get(get(\"background-color\"));\n    > img {\n      width: 100%;\n      height: auto;\n      margin: 0;\n    }\n  }\n  a#{ $prefix },\n  button#{ $prefix } {\n    display: block;\n    @if (get(\"box-shadow\")) {\n      &:hover,\n      &:focus {\n        box-shadow: get(\"box-shadow\");\n      }\n    }\n  }\n  #{ $prefix }__caption {\n    position: absolute;\n    color: color.get(get(\"color\"));\n    @include typography.size(get(\"type-size\"), $only-font-size: true);\n    line-height: get(\"line-height\");\n    max-width: get(\"caption-max-width\");\n    background-color: color.get(get(\"caption-background-color\"));\n    padding: get(\"caption-padding\");\n    backdrop-filter: get(\"caption-backdrop-filter\");\n  }\n  #{ $prefix }--traditional {\n    #{ $prefix }__caption {\n      position: static;\n      color: color.get(get(\"traditional-caption-color\"));\n      max-width: get(\"traditional-caption-max-width\");\n      background-color: color.get(get(\"traditional-caption-background-color\"));\n      padding: get(\"traditional-caption-padding\");\n      text-align: get(\"traditional-caption-text-align\");\n      @if (get(\"traditional-caption-text-align\") == right) {\n        margin-left: auto;\n      }\n      @if (get(\"traditional-caption-text-align\") == center) {\n        margin-left: auto;\n        margin-right: auto;\n      }\n    }\n  }\n  #{ $prefix }--left {\n    #{ $prefix }__caption {\n      left: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: left;\n      }\n    }\n  }\n  #{ $prefix }--right {\n    #{ $prefix }__caption {\n      right: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: right;\n      }\n    }\n  }\n  #{ $prefix }--bottom {\n    #{ $prefix }__caption {\n      bottom: 0;\n    }\n  }\n  #{ $prefix }--top {\n    #{ $prefix }__caption {\n      top: 0;\n    }\n  }\n  #{ $prefix }--bottom#{ $prefix }--center,\n  #{ $prefix }--top#{ $prefix }--center {\n    #{ $prefix }__caption {\n      left: 50%;\n      transform: translateX(-50%);\n      @if ($set-aligns or $aligns-center-only) {\n        text-align: center;\n      }\n    }\n  }\n  #{ $prefix }--left#{ $prefix }--center,\n  #{ $prefix }--right#{ $prefix }--center {\n    #{ $prefix }__caption {\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n",
              "line": {
                "start": 94,
                "end": 190
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"captioned-figure\");\n  $set-aligns: get(\"text-alignment-matches\");\n  $aligns-center-only: get(\"text-alignment-matches-center-only\");\n\n  #{ $prefix } {\n    display: block;\n    position: relative;\n    margin-bottom: get(\"margin-bottom\");\n    background-color: color.get(get(\"background-color\"));\n    > img {\n      width: 100%;\n      height: auto;\n      margin: 0;\n    }\n  }\n  a#{ $prefix },\n  button#{ $prefix } {\n    display: block;\n    @if (get(\"box-shadow\")) {\n      &:hover,\n      &:focus {\n        box-shadow: get(\"box-shadow\");\n      }\n    }\n  }\n  #{ $prefix }__caption {\n    position: absolute;\n    color: color.get(get(\"color\"));\n    @include typography.size(get(\"type-size\"), $only-font-size: true);\n    line-height: get(\"line-height\");\n    max-width: get(\"caption-max-width\");\n    background-color: color.get(get(\"caption-background-color\"));\n    padding: get(\"caption-padding\");\n    backdrop-filter: get(\"caption-backdrop-filter\");\n  }\n  #{ $prefix }--traditional {\n    #{ $prefix }__caption {\n      position: static;\n      color: color.get(get(\"traditional-caption-color\"));\n      max-width: get(\"traditional-caption-max-width\");\n      background-color: color.get(get(\"traditional-caption-background-color\"));\n      padding: get(\"traditional-caption-padding\");\n      text-align: get(\"traditional-caption-text-align\");\n      @if (get(\"traditional-caption-text-align\") == right) {\n        margin-left: auto;\n      }\n      @if (get(\"traditional-caption-text-align\") == center) {\n        margin-left: auto;\n        margin-right: auto;\n      }\n    }\n  }\n  #{ $prefix }--left {\n    #{ $prefix }__caption {\n      left: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: left;\n      }\n    }\n  }\n  #{ $prefix }--right {\n    #{ $prefix }__caption {\n      right: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: right;\n      }\n    }\n  }\n  #{ $prefix }--bottom {\n    #{ $prefix }__caption {\n      bottom: 0;\n    }\n  }\n  #{ $prefix }--top {\n    #{ $prefix }__caption {\n      top: 0;\n    }\n  }\n  #{ $prefix }--bottom#{ $prefix }--center,\n  #{ $prefix }--top#{ $prefix }--center {\n    #{ $prefix }__caption {\n      left: 50%;\n      transform: translateX(-50%);\n      @if ($set-aligns or $aligns-center-only) {\n        text-align: center;\n      }\n    }\n  }\n  #{ $prefix }--left#{ $prefix }--center,\n  #{ $prefix }--right#{ $prefix }--center {\n    #{ $prefix }__caption {\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n",
              "line": {
                "start": 94,
                "end": 190
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"captioned-figure\");\n  $set-aligns: get(\"text-alignment-matches\");\n  $aligns-center-only: get(\"text-alignment-matches-center-only\");\n\n  #{ $prefix } {\n    display: block;\n    position: relative;\n    margin-bottom: get(\"margin-bottom\");\n    background-color: color.get(get(\"background-color\"));\n    > img {\n      width: 100%;\n      height: auto;\n      margin: 0;\n    }\n  }\n  a#{ $prefix },\n  button#{ $prefix } {\n    display: block;\n    @if (get(\"box-shadow\")) {\n      &:hover,\n      &:focus {\n        box-shadow: get(\"box-shadow\");\n      }\n    }\n  }\n  #{ $prefix }__caption {\n    position: absolute;\n    color: color.get(get(\"color\"));\n    @include typography.size(get(\"type-size\"), $only-font-size: true);\n    line-height: get(\"line-height\");\n    max-width: get(\"caption-max-width\");\n    background-color: color.get(get(\"caption-background-color\"));\n    padding: get(\"caption-padding\");\n    backdrop-filter: get(\"caption-backdrop-filter\");\n  }\n  #{ $prefix }--traditional {\n    #{ $prefix }__caption {\n      position: static;\n      color: color.get(get(\"traditional-caption-color\"));\n      max-width: get(\"traditional-caption-max-width\");\n      background-color: color.get(get(\"traditional-caption-background-color\"));\n      padding: get(\"traditional-caption-padding\");\n      text-align: get(\"traditional-caption-text-align\");\n      @if (get(\"traditional-caption-text-align\") == right) {\n        margin-left: auto;\n      }\n      @if (get(\"traditional-caption-text-align\") == center) {\n        margin-left: auto;\n        margin-right: auto;\n      }\n    }\n  }\n  #{ $prefix }--left {\n    #{ $prefix }__caption {\n      left: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: left;\n      }\n    }\n  }\n  #{ $prefix }--right {\n    #{ $prefix }__caption {\n      right: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: right;\n      }\n    }\n  }\n  #{ $prefix }--bottom {\n    #{ $prefix }__caption {\n      bottom: 0;\n    }\n  }\n  #{ $prefix }--top {\n    #{ $prefix }__caption {\n      top: 0;\n    }\n  }\n  #{ $prefix }--bottom#{ $prefix }--center,\n  #{ $prefix }--top#{ $prefix }--center {\n    #{ $prefix }__caption {\n      left: 50%;\n      transform: translateX(-50%);\n      @if ($set-aligns or $aligns-center-only) {\n        text-align: center;\n      }\n    }\n  }\n  #{ $prefix }--left#{ $prefix }--center,\n  #{ $prefix }--right#{ $prefix }--center {\n    #{ $prefix }__caption {\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n",
              "line": {
                "start": 94,
                "end": 190
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"captioned-figure\");\n  $set-aligns: get(\"text-alignment-matches\");\n  $aligns-center-only: get(\"text-alignment-matches-center-only\");\n\n  #{ $prefix } {\n    display: block;\n    position: relative;\n    margin-bottom: get(\"margin-bottom\");\n    background-color: color.get(get(\"background-color\"));\n    > img {\n      width: 100%;\n      height: auto;\n      margin: 0;\n    }\n  }\n  a#{ $prefix },\n  button#{ $prefix } {\n    display: block;\n    @if (get(\"box-shadow\")) {\n      &:hover,\n      &:focus {\n        box-shadow: get(\"box-shadow\");\n      }\n    }\n  }\n  #{ $prefix }__caption {\n    position: absolute;\n    color: color.get(get(\"color\"));\n    @include typography.size(get(\"type-size\"), $only-font-size: true);\n    line-height: get(\"line-height\");\n    max-width: get(\"caption-max-width\");\n    background-color: color.get(get(\"caption-background-color\"));\n    padding: get(\"caption-padding\");\n    backdrop-filter: get(\"caption-backdrop-filter\");\n  }\n  #{ $prefix }--traditional {\n    #{ $prefix }__caption {\n      position: static;\n      color: color.get(get(\"traditional-caption-color\"));\n      max-width: get(\"traditional-caption-max-width\");\n      background-color: color.get(get(\"traditional-caption-background-color\"));\n      padding: get(\"traditional-caption-padding\");\n      text-align: get(\"traditional-caption-text-align\");\n      @if (get(\"traditional-caption-text-align\") == right) {\n        margin-left: auto;\n      }\n      @if (get(\"traditional-caption-text-align\") == center) {\n        margin-left: auto;\n        margin-right: auto;\n      }\n    }\n  }\n  #{ $prefix }--left {\n    #{ $prefix }__caption {\n      left: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: left;\n      }\n    }\n  }\n  #{ $prefix }--right {\n    #{ $prefix }__caption {\n      right: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: right;\n      }\n    }\n  }\n  #{ $prefix }--bottom {\n    #{ $prefix }__caption {\n      bottom: 0;\n    }\n  }\n  #{ $prefix }--top {\n    #{ $prefix }__caption {\n      top: 0;\n    }\n  }\n  #{ $prefix }--bottom#{ $prefix }--center,\n  #{ $prefix }--top#{ $prefix }--center {\n    #{ $prefix }__caption {\n      left: 50%;\n      transform: translateX(-50%);\n      @if ($set-aligns or $aligns-center-only) {\n        text-align: center;\n      }\n    }\n  }\n  #{ $prefix }--left#{ $prefix }--center,\n  #{ $prefix }--right#{ $prefix }--center {\n    #{ $prefix }__caption {\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n",
              "line": {
                "start": 94,
                "end": 190
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"captioned-figure\");\n  $set-aligns: get(\"text-alignment-matches\");\n  $aligns-center-only: get(\"text-alignment-matches-center-only\");\n\n  #{ $prefix } {\n    display: block;\n    position: relative;\n    margin-bottom: get(\"margin-bottom\");\n    background-color: color.get(get(\"background-color\"));\n    > img {\n      width: 100%;\n      height: auto;\n      margin: 0;\n    }\n  }\n  a#{ $prefix },\n  button#{ $prefix } {\n    display: block;\n    @if (get(\"box-shadow\")) {\n      &:hover,\n      &:focus {\n        box-shadow: get(\"box-shadow\");\n      }\n    }\n  }\n  #{ $prefix }__caption {\n    position: absolute;\n    color: color.get(get(\"color\"));\n    @include typography.size(get(\"type-size\"), $only-font-size: true);\n    line-height: get(\"line-height\");\n    max-width: get(\"caption-max-width\");\n    background-color: color.get(get(\"caption-background-color\"));\n    padding: get(\"caption-padding\");\n    backdrop-filter: get(\"caption-backdrop-filter\");\n  }\n  #{ $prefix }--traditional {\n    #{ $prefix }__caption {\n      position: static;\n      color: color.get(get(\"traditional-caption-color\"));\n      max-width: get(\"traditional-caption-max-width\");\n      background-color: color.get(get(\"traditional-caption-background-color\"));\n      padding: get(\"traditional-caption-padding\");\n      text-align: get(\"traditional-caption-text-align\");\n      @if (get(\"traditional-caption-text-align\") == right) {\n        margin-left: auto;\n      }\n      @if (get(\"traditional-caption-text-align\") == center) {\n        margin-left: auto;\n        margin-right: auto;\n      }\n    }\n  }\n  #{ $prefix }--left {\n    #{ $prefix }__caption {\n      left: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: left;\n      }\n    }\n  }\n  #{ $prefix }--right {\n    #{ $prefix }__caption {\n      right: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: right;\n      }\n    }\n  }\n  #{ $prefix }--bottom {\n    #{ $prefix }__caption {\n      bottom: 0;\n    }\n  }\n  #{ $prefix }--top {\n    #{ $prefix }__caption {\n      top: 0;\n    }\n  }\n  #{ $prefix }--bottom#{ $prefix }--center,\n  #{ $prefix }--top#{ $prefix }--center {\n    #{ $prefix }__caption {\n      left: 50%;\n      transform: translateX(-50%);\n      @if ($set-aligns or $aligns-center-only) {\n        text-align: center;\n      }\n    }\n  }\n  #{ $prefix }--left#{ $prefix }--center,\n  #{ $prefix }--right#{ $prefix }--center {\n    #{ $prefix }__caption {\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n",
              "line": {
                "start": 94,
                "end": 190
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"captioned-figure\");\n  $set-aligns: get(\"text-alignment-matches\");\n  $aligns-center-only: get(\"text-alignment-matches-center-only\");\n\n  #{ $prefix } {\n    display: block;\n    position: relative;\n    margin-bottom: get(\"margin-bottom\");\n    background-color: color.get(get(\"background-color\"));\n    > img {\n      width: 100%;\n      height: auto;\n      margin: 0;\n    }\n  }\n  a#{ $prefix },\n  button#{ $prefix } {\n    display: block;\n    @if (get(\"box-shadow\")) {\n      &:hover,\n      &:focus {\n        box-shadow: get(\"box-shadow\");\n      }\n    }\n  }\n  #{ $prefix }__caption {\n    position: absolute;\n    color: color.get(get(\"color\"));\n    @include typography.size(get(\"type-size\"), $only-font-size: true);\n    line-height: get(\"line-height\");\n    max-width: get(\"caption-max-width\");\n    background-color: color.get(get(\"caption-background-color\"));\n    padding: get(\"caption-padding\");\n    backdrop-filter: get(\"caption-backdrop-filter\");\n  }\n  #{ $prefix }--traditional {\n    #{ $prefix }__caption {\n      position: static;\n      color: color.get(get(\"traditional-caption-color\"));\n      max-width: get(\"traditional-caption-max-width\");\n      background-color: color.get(get(\"traditional-caption-background-color\"));\n      padding: get(\"traditional-caption-padding\");\n      text-align: get(\"traditional-caption-text-align\");\n      @if (get(\"traditional-caption-text-align\") == right) {\n        margin-left: auto;\n      }\n      @if (get(\"traditional-caption-text-align\") == center) {\n        margin-left: auto;\n        margin-right: auto;\n      }\n    }\n  }\n  #{ $prefix }--left {\n    #{ $prefix }__caption {\n      left: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: left;\n      }\n    }\n  }\n  #{ $prefix }--right {\n    #{ $prefix }__caption {\n      right: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: right;\n      }\n    }\n  }\n  #{ $prefix }--bottom {\n    #{ $prefix }__caption {\n      bottom: 0;\n    }\n  }\n  #{ $prefix }--top {\n    #{ $prefix }__caption {\n      top: 0;\n    }\n  }\n  #{ $prefix }--bottom#{ $prefix }--center,\n  #{ $prefix }--top#{ $prefix }--center {\n    #{ $prefix }__caption {\n      left: 50%;\n      transform: translateX(-50%);\n      @if ($set-aligns or $aligns-center-only) {\n        text-align: center;\n      }\n    }\n  }\n  #{ $prefix }--left#{ $prefix }--center,\n  #{ $prefix }--right#{ $prefix }--center {\n    #{ $prefix }__caption {\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n",
              "line": {
                "start": 94,
                "end": 190
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"captioned-figure\");\n  $set-aligns: get(\"text-alignment-matches\");\n  $aligns-center-only: get(\"text-alignment-matches-center-only\");\n\n  #{ $prefix } {\n    display: block;\n    position: relative;\n    margin-bottom: get(\"margin-bottom\");\n    background-color: color.get(get(\"background-color\"));\n    > img {\n      width: 100%;\n      height: auto;\n      margin: 0;\n    }\n  }\n  a#{ $prefix },\n  button#{ $prefix } {\n    display: block;\n    @if (get(\"box-shadow\")) {\n      &:hover,\n      &:focus {\n        box-shadow: get(\"box-shadow\");\n      }\n    }\n  }\n  #{ $prefix }__caption {\n    position: absolute;\n    color: color.get(get(\"color\"));\n    @include typography.size(get(\"type-size\"), $only-font-size: true);\n    line-height: get(\"line-height\");\n    max-width: get(\"caption-max-width\");\n    background-color: color.get(get(\"caption-background-color\"));\n    padding: get(\"caption-padding\");\n    backdrop-filter: get(\"caption-backdrop-filter\");\n  }\n  #{ $prefix }--traditional {\n    #{ $prefix }__caption {\n      position: static;\n      color: color.get(get(\"traditional-caption-color\"));\n      max-width: get(\"traditional-caption-max-width\");\n      background-color: color.get(get(\"traditional-caption-background-color\"));\n      padding: get(\"traditional-caption-padding\");\n      text-align: get(\"traditional-caption-text-align\");\n      @if (get(\"traditional-caption-text-align\") == right) {\n        margin-left: auto;\n      }\n      @if (get(\"traditional-caption-text-align\") == center) {\n        margin-left: auto;\n        margin-right: auto;\n      }\n    }\n  }\n  #{ $prefix }--left {\n    #{ $prefix }__caption {\n      left: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: left;\n      }\n    }\n  }\n  #{ $prefix }--right {\n    #{ $prefix }__caption {\n      right: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: right;\n      }\n    }\n  }\n  #{ $prefix }--bottom {\n    #{ $prefix }__caption {\n      bottom: 0;\n    }\n  }\n  #{ $prefix }--top {\n    #{ $prefix }__caption {\n      top: 0;\n    }\n  }\n  #{ $prefix }--bottom#{ $prefix }--center,\n  #{ $prefix }--top#{ $prefix }--center {\n    #{ $prefix }__caption {\n      left: 50%;\n      transform: translateX(-50%);\n      @if ($set-aligns or $aligns-center-only) {\n        text-align: center;\n      }\n    }\n  }\n  #{ $prefix }--left#{ $prefix }--center,\n  #{ $prefix }--right#{ $prefix }--center {\n    #{ $prefix }__caption {\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n",
              "line": {
                "start": 94,
                "end": 190
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"captioned-figure\");\n  $set-aligns: get(\"text-alignment-matches\");\n  $aligns-center-only: get(\"text-alignment-matches-center-only\");\n\n  #{ $prefix } {\n    display: block;\n    position: relative;\n    margin-bottom: get(\"margin-bottom\");\n    background-color: color.get(get(\"background-color\"));\n    > img {\n      width: 100%;\n      height: auto;\n      margin: 0;\n    }\n  }\n  a#{ $prefix },\n  button#{ $prefix } {\n    display: block;\n    @if (get(\"box-shadow\")) {\n      &:hover,\n      &:focus {\n        box-shadow: get(\"box-shadow\");\n      }\n    }\n  }\n  #{ $prefix }__caption {\n    position: absolute;\n    color: color.get(get(\"color\"));\n    @include typography.size(get(\"type-size\"), $only-font-size: true);\n    line-height: get(\"line-height\");\n    max-width: get(\"caption-max-width\");\n    background-color: color.get(get(\"caption-background-color\"));\n    padding: get(\"caption-padding\");\n    backdrop-filter: get(\"caption-backdrop-filter\");\n  }\n  #{ $prefix }--traditional {\n    #{ $prefix }__caption {\n      position: static;\n      color: color.get(get(\"traditional-caption-color\"));\n      max-width: get(\"traditional-caption-max-width\");\n      background-color: color.get(get(\"traditional-caption-background-color\"));\n      padding: get(\"traditional-caption-padding\");\n      text-align: get(\"traditional-caption-text-align\");\n      @if (get(\"traditional-caption-text-align\") == right) {\n        margin-left: auto;\n      }\n      @if (get(\"traditional-caption-text-align\") == center) {\n        margin-left: auto;\n        margin-right: auto;\n      }\n    }\n  }\n  #{ $prefix }--left {\n    #{ $prefix }__caption {\n      left: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: left;\n      }\n    }\n  }\n  #{ $prefix }--right {\n    #{ $prefix }__caption {\n      right: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: right;\n      }\n    }\n  }\n  #{ $prefix }--bottom {\n    #{ $prefix }__caption {\n      bottom: 0;\n    }\n  }\n  #{ $prefix }--top {\n    #{ $prefix }__caption {\n      top: 0;\n    }\n  }\n  #{ $prefix }--bottom#{ $prefix }--center,\n  #{ $prefix }--top#{ $prefix }--center {\n    #{ $prefix }__caption {\n      left: 50%;\n      transform: translateX(-50%);\n      @if ($set-aligns or $aligns-center-only) {\n        text-align: center;\n      }\n    }\n  }\n  #{ $prefix }--left#{ $prefix }--center,\n  #{ $prefix }--right#{ $prefix }--center {\n    #{ $prefix }__caption {\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n",
              "line": {
                "start": 94,
                "end": 190
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Applies styles to cards that are designated as 'clickable'. This can be for the resting state or for interaction states like hover and focus.\n",
            "context": {
              "type": "mixin",
              "name": "when-clickable",
              "code": "\n  $prefix: selector.class(\"card\");\n  $selectors: (\n    #{ $prefix }#{ get(\"clickable-card-selector\") },\n    a#{ $prefix },\n    button#{ $prefix },\n    #{ $prefix }--clickable\n  );\n\n  @if $extra-selector {\n    $selectors: list.append($selectors, $extra-selector, $separator: comma);\n  }\n\n  #{$selectors} {\n    @if ($hover) {\n      #{ get(\"clickable-card-interact-selector\") } {\n        @content;\n      }\n    } @else {\n      @content;\n    }\n  }\n",
              "line": {
                "start": 657,
                "end": 679
              }
            }
          },
          {
            "description": "Applies styles to cards that are designated as 'clickable'. This can be for the resting state or for interaction states like hover and focus.\n",
            "context": {
              "type": "mixin",
              "name": "when-clickable",
              "code": "\n  $prefix: selector.class(\"card\");\n  $selectors: (\n    #{ $prefix }#{ get(\"clickable-card-selector\") },\n    a#{ $prefix },\n    button#{ $prefix },\n    #{ $prefix }--clickable\n  );\n\n  @if $extra-selector {\n    $selectors: list.append($selectors, $extra-selector, $separator: comma);\n  }\n\n  #{$selectors} {\n    @if ($hover) {\n      #{ get(\"clickable-card-interact-selector\") } {\n        @content;\n      }\n    } @else {\n      @content;\n    }\n  }\n",
              "line": {
                "start": 657,
                "end": 679
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card-grid\");\n  $prefix-card: selector.class(\"card\");\n  \n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: repeat(auto-fill, minmax(min(100%, get(\"min-width\")), 1fr));\n    grid-auto-rows: 1fr;\n    gap: get(\"gap\");\n    margin: get(\"gap\") 0;\n    #{ $prefix-card } {\n      margin: 0;\n      &:not(#{ $prefix-card }--overlay) {\n        height: 100%;\n      }\n    }\n  }\n  #{ $prefix }--compact {\n    grid-template-columns: repeat(auto-fill, minmax(min(100%, get(\"compact-min-width\")), 1fr));\n    gap: get(\"compact-gap\");\n  }\n  #{ $prefix }--one-column {\n    grid-template-columns: 1fr;\n  }\n  #{ $prefix }--rows-fit {\n    grid-auto-rows: auto;\n  }\n",
              "line": {
                "start": 48,
                "end": 75
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card-grid\");\n  $prefix-card: selector.class(\"card\");\n  \n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: repeat(auto-fill, minmax(min(100%, get(\"min-width\")), 1fr));\n    grid-auto-rows: 1fr;\n    gap: get(\"gap\");\n    margin: get(\"gap\") 0;\n    #{ $prefix-card } {\n      margin: 0;\n      &:not(#{ $prefix-card }--overlay) {\n        height: 100%;\n      }\n    }\n  }\n  #{ $prefix }--compact {\n    grid-template-columns: repeat(auto-fill, minmax(min(100%, get(\"compact-min-width\")), 1fr));\n    gap: get(\"compact-gap\");\n  }\n  #{ $prefix }--one-column {\n    grid-template-columns: 1fr;\n  }\n  #{ $prefix }--rows-fit {\n    grid-auto-rows: auto;\n  }\n",
              "line": {
                "start": 48,
                "end": 75
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card-grid\");\n  $prefix-card: selector.class(\"card\");\n  \n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: repeat(auto-fill, minmax(min(100%, get(\"min-width\")), 1fr));\n    grid-auto-rows: 1fr;\n    gap: get(\"gap\");\n    margin: get(\"gap\") 0;\n    #{ $prefix-card } {\n      margin: 0;\n      &:not(#{ $prefix-card }--overlay) {\n        height: 100%;\n      }\n    }\n  }\n  #{ $prefix }--compact {\n    grid-template-columns: repeat(auto-fill, minmax(min(100%, get(\"compact-min-width\")), 1fr));\n    gap: get(\"compact-gap\");\n  }\n  #{ $prefix }--one-column {\n    grid-template-columns: 1fr;\n  }\n  #{ $prefix }--rows-fit {\n    grid-auto-rows: auto;\n  }\n",
              "line": {
                "start": 48,
                "end": 75
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card-grid\");\n  $prefix-card: selector.class(\"card\");\n  \n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: repeat(auto-fill, minmax(min(100%, get(\"min-width\")), 1fr));\n    grid-auto-rows: 1fr;\n    gap: get(\"gap\");\n    margin: get(\"gap\") 0;\n    #{ $prefix-card } {\n      margin: 0;\n      &:not(#{ $prefix-card }--overlay) {\n        height: 100%;\n      }\n    }\n  }\n  #{ $prefix }--compact {\n    grid-template-columns: repeat(auto-fill, minmax(min(100%, get(\"compact-min-width\")), 1fr));\n    gap: get(\"compact-gap\");\n  }\n  #{ $prefix }--one-column {\n    grid-template-columns: 1fr;\n  }\n  #{ $prefix }--rows-fit {\n    grid-auto-rows: auto;\n  }\n",
              "line": {
                "start": 48,
                "end": 75
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card-grid\");\n  $prefix-card: selector.class(\"card\");\n  \n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: repeat(auto-fill, minmax(min(100%, get(\"min-width\")), 1fr));\n    grid-auto-rows: 1fr;\n    gap: get(\"gap\");\n    margin: get(\"gap\") 0;\n    #{ $prefix-card } {\n      margin: 0;\n      &:not(#{ $prefix-card }--overlay) {\n        height: 100%;\n      }\n    }\n  }\n  #{ $prefix }--compact {\n    grid-template-columns: repeat(auto-fill, minmax(min(100%, get(\"compact-min-width\")), 1fr));\n    gap: get(\"compact-gap\");\n  }\n  #{ $prefix }--one-column {\n    grid-template-columns: 1fr;\n  }\n  #{ $prefix }--rows-fit {\n    grid-auto-rows: auto;\n  }\n",
              "line": {
                "start": 48,
                "end": 75
              }
            }
          },
          {
            "description": "Output counter-list component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"counter-list\");\n  $prefix-item: sassSelector.parse(\"#{ $prefix }__item\");\n  $extra-selector: get(\"extra-selector\");\n\n  $selector: $prefix;\n  $selector-item: sassSelector.parse(\"#{ $prefix } > li, #{ $prefix-item }\");\n\n  @if ($extra-selector) {\n    $selector: sassSelector.parse(\"#{ $prefix }, #{ $extra-selector }\");\n    $selector-item: sassSelector.parse(\"#{ $selector-item }, #{ $extra-selector } > li\");\n  }\n\n  #{ $selector } {\n    margin: get(\"margin\");\n    counter-reset: ulu-counter-list;\n  }\n\n  #{ $selector-item } {\n    $width: get(\"counter-width\");\n    $height: utils.fallback(get(\"counter-height\"), $width);\n\n    display: flex;\n    gap: get(\"counter-gap\");\n    align-items: get(\"align-items\");\n    margin: get(\"item-margin\");\n    min-height: $height;\n    &::before {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: $width;\n      height: $height;\n      flex: 0 0 $width;\n      counter-increment: ulu-counter-list;\n      content: counter(ulu-counter-list, get(\"counter-style\"));\n      font-size: get(\"counter-font-size\");\n      font-family: get(\"counter-font-family\");\n      font-weight: get(\"counter-font-weight\");\n      color: color.get(get(\"counter-color\"));\n      background-color: color.get(get(\"counter-background-color\"));\n      border-radius: get(\"counter-border-radius\");\n    }\n\n    // Keeping this could be useful\n    // but we need to think about how its setup\n    // - Probably should be a modifier (choice)\n    // - May need either option for how align-items is set (flex-start vs center)\n    // - This could be useful when used in grid\n    // - May need to be pervasive and not linked to a breakpoint (alternate style)\n    // - It's also just useful to know you could override the layout like this \n    //   to get useful variations (maybe we don't need to include it but users \n    //   can do specific)\n    // @if ( get(\"counter-mobile-toggle\") ) {\n    //   @include breakpoint.max(\"small\") {\n    //     padding-left: 0;\n    //     padding-top: calc(get(\"counter-width\") + get(\"counter-gap-mobile\"));\n    //     flex-direction: column;\n    //     align-items: center;\n    //   }\n    // }\n  }\n\n  // Modifiers\n  #{ $prefix }--alphabetical {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, upper-alpha);\n    }\n  }\n  #{ $prefix }--numeric {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, numeric);\n    }\n  }\n  #{ $prefix }--no-reset {\n    counter-reset: none;\n  }\n",
              "line": {
                "start": 72,
                "end": 151
              }
            }
          },
          {
            "description": "Output counter-list component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"counter-list\");\n  $prefix-item: sassSelector.parse(\"#{ $prefix }__item\");\n  $extra-selector: get(\"extra-selector\");\n\n  $selector: $prefix;\n  $selector-item: sassSelector.parse(\"#{ $prefix } > li, #{ $prefix-item }\");\n\n  @if ($extra-selector) {\n    $selector: sassSelector.parse(\"#{ $prefix }, #{ $extra-selector }\");\n    $selector-item: sassSelector.parse(\"#{ $selector-item }, #{ $extra-selector } > li\");\n  }\n\n  #{ $selector } {\n    margin: get(\"margin\");\n    counter-reset: ulu-counter-list;\n  }\n\n  #{ $selector-item } {\n    $width: get(\"counter-width\");\n    $height: utils.fallback(get(\"counter-height\"), $width);\n\n    display: flex;\n    gap: get(\"counter-gap\");\n    align-items: get(\"align-items\");\n    margin: get(\"item-margin\");\n    min-height: $height;\n    &::before {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: $width;\n      height: $height;\n      flex: 0 0 $width;\n      counter-increment: ulu-counter-list;\n      content: counter(ulu-counter-list, get(\"counter-style\"));\n      font-size: get(\"counter-font-size\");\n      font-family: get(\"counter-font-family\");\n      font-weight: get(\"counter-font-weight\");\n      color: color.get(get(\"counter-color\"));\n      background-color: color.get(get(\"counter-background-color\"));\n      border-radius: get(\"counter-border-radius\");\n    }\n\n    // Keeping this could be useful\n    // but we need to think about how its setup\n    // - Probably should be a modifier (choice)\n    // - May need either option for how align-items is set (flex-start vs center)\n    // - This could be useful when used in grid\n    // - May need to be pervasive and not linked to a breakpoint (alternate style)\n    // - It's also just useful to know you could override the layout like this \n    //   to get useful variations (maybe we don't need to include it but users \n    //   can do specific)\n    // @if ( get(\"counter-mobile-toggle\") ) {\n    //   @include breakpoint.max(\"small\") {\n    //     padding-left: 0;\n    //     padding-top: calc(get(\"counter-width\") + get(\"counter-gap-mobile\"));\n    //     flex-direction: column;\n    //     align-items: center;\n    //   }\n    // }\n  }\n\n  // Modifiers\n  #{ $prefix }--alphabetical {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, upper-alpha);\n    }\n  }\n  #{ $prefix }--numeric {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, numeric);\n    }\n  }\n  #{ $prefix }--no-reset {\n    counter-reset: none;\n  }\n",
              "line": {
                "start": 72,
                "end": 151
              }
            }
          },
          {
            "description": "Output counter-list component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"counter-list\");\n  $prefix-item: sassSelector.parse(\"#{ $prefix }__item\");\n  $extra-selector: get(\"extra-selector\");\n\n  $selector: $prefix;\n  $selector-item: sassSelector.parse(\"#{ $prefix } > li, #{ $prefix-item }\");\n\n  @if ($extra-selector) {\n    $selector: sassSelector.parse(\"#{ $prefix }, #{ $extra-selector }\");\n    $selector-item: sassSelector.parse(\"#{ $selector-item }, #{ $extra-selector } > li\");\n  }\n\n  #{ $selector } {\n    margin: get(\"margin\");\n    counter-reset: ulu-counter-list;\n  }\n\n  #{ $selector-item } {\n    $width: get(\"counter-width\");\n    $height: utils.fallback(get(\"counter-height\"), $width);\n\n    display: flex;\n    gap: get(\"counter-gap\");\n    align-items: get(\"align-items\");\n    margin: get(\"item-margin\");\n    min-height: $height;\n    &::before {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: $width;\n      height: $height;\n      flex: 0 0 $width;\n      counter-increment: ulu-counter-list;\n      content: counter(ulu-counter-list, get(\"counter-style\"));\n      font-size: get(\"counter-font-size\");\n      font-family: get(\"counter-font-family\");\n      font-weight: get(\"counter-font-weight\");\n      color: color.get(get(\"counter-color\"));\n      background-color: color.get(get(\"counter-background-color\"));\n      border-radius: get(\"counter-border-radius\");\n    }\n\n    // Keeping this could be useful\n    // but we need to think about how its setup\n    // - Probably should be a modifier (choice)\n    // - May need either option for how align-items is set (flex-start vs center)\n    // - This could be useful when used in grid\n    // - May need to be pervasive and not linked to a breakpoint (alternate style)\n    // - It's also just useful to know you could override the layout like this \n    //   to get useful variations (maybe we don't need to include it but users \n    //   can do specific)\n    // @if ( get(\"counter-mobile-toggle\") ) {\n    //   @include breakpoint.max(\"small\") {\n    //     padding-left: 0;\n    //     padding-top: calc(get(\"counter-width\") + get(\"counter-gap-mobile\"));\n    //     flex-direction: column;\n    //     align-items: center;\n    //   }\n    // }\n  }\n\n  // Modifiers\n  #{ $prefix }--alphabetical {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, upper-alpha);\n    }\n  }\n  #{ $prefix }--numeric {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, numeric);\n    }\n  }\n  #{ $prefix }--no-reset {\n    counter-reset: none;\n  }\n",
              "line": {
                "start": 72,
                "end": 151
              }
            }
          },
          {
            "description": "Output counter-list component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"counter-list\");\n  $prefix-item: sassSelector.parse(\"#{ $prefix }__item\");\n  $extra-selector: get(\"extra-selector\");\n\n  $selector: $prefix;\n  $selector-item: sassSelector.parse(\"#{ $prefix } > li, #{ $prefix-item }\");\n\n  @if ($extra-selector) {\n    $selector: sassSelector.parse(\"#{ $prefix }, #{ $extra-selector }\");\n    $selector-item: sassSelector.parse(\"#{ $selector-item }, #{ $extra-selector } > li\");\n  }\n\n  #{ $selector } {\n    margin: get(\"margin\");\n    counter-reset: ulu-counter-list;\n  }\n\n  #{ $selector-item } {\n    $width: get(\"counter-width\");\n    $height: utils.fallback(get(\"counter-height\"), $width);\n\n    display: flex;\n    gap: get(\"counter-gap\");\n    align-items: get(\"align-items\");\n    margin: get(\"item-margin\");\n    min-height: $height;\n    &::before {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: $width;\n      height: $height;\n      flex: 0 0 $width;\n      counter-increment: ulu-counter-list;\n      content: counter(ulu-counter-list, get(\"counter-style\"));\n      font-size: get(\"counter-font-size\");\n      font-family: get(\"counter-font-family\");\n      font-weight: get(\"counter-font-weight\");\n      color: color.get(get(\"counter-color\"));\n      background-color: color.get(get(\"counter-background-color\"));\n      border-radius: get(\"counter-border-radius\");\n    }\n\n    // Keeping this could be useful\n    // but we need to think about how its setup\n    // - Probably should be a modifier (choice)\n    // - May need either option for how align-items is set (flex-start vs center)\n    // - This could be useful when used in grid\n    // - May need to be pervasive and not linked to a breakpoint (alternate style)\n    // - It's also just useful to know you could override the layout like this \n    //   to get useful variations (maybe we don't need to include it but users \n    //   can do specific)\n    // @if ( get(\"counter-mobile-toggle\") ) {\n    //   @include breakpoint.max(\"small\") {\n    //     padding-left: 0;\n    //     padding-top: calc(get(\"counter-width\") + get(\"counter-gap-mobile\"));\n    //     flex-direction: column;\n    //     align-items: center;\n    //   }\n    // }\n  }\n\n  // Modifiers\n  #{ $prefix }--alphabetical {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, upper-alpha);\n    }\n  }\n  #{ $prefix }--numeric {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, numeric);\n    }\n  }\n  #{ $prefix }--no-reset {\n    counter-reset: none;\n  }\n",
              "line": {
                "start": 72,
                "end": 151
              }
            }
          },
          {
            "description": "Output counter-list component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"counter-list\");\n  $prefix-item: sassSelector.parse(\"#{ $prefix }__item\");\n  $extra-selector: get(\"extra-selector\");\n\n  $selector: $prefix;\n  $selector-item: sassSelector.parse(\"#{ $prefix } > li, #{ $prefix-item }\");\n\n  @if ($extra-selector) {\n    $selector: sassSelector.parse(\"#{ $prefix }, #{ $extra-selector }\");\n    $selector-item: sassSelector.parse(\"#{ $selector-item }, #{ $extra-selector } > li\");\n  }\n\n  #{ $selector } {\n    margin: get(\"margin\");\n    counter-reset: ulu-counter-list;\n  }\n\n  #{ $selector-item } {\n    $width: get(\"counter-width\");\n    $height: utils.fallback(get(\"counter-height\"), $width);\n\n    display: flex;\n    gap: get(\"counter-gap\");\n    align-items: get(\"align-items\");\n    margin: get(\"item-margin\");\n    min-height: $height;\n    &::before {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: $width;\n      height: $height;\n      flex: 0 0 $width;\n      counter-increment: ulu-counter-list;\n      content: counter(ulu-counter-list, get(\"counter-style\"));\n      font-size: get(\"counter-font-size\");\n      font-family: get(\"counter-font-family\");\n      font-weight: get(\"counter-font-weight\");\n      color: color.get(get(\"counter-color\"));\n      background-color: color.get(get(\"counter-background-color\"));\n      border-radius: get(\"counter-border-radius\");\n    }\n\n    // Keeping this could be useful\n    // but we need to think about how its setup\n    // - Probably should be a modifier (choice)\n    // - May need either option for how align-items is set (flex-start vs center)\n    // - This could be useful when used in grid\n    // - May need to be pervasive and not linked to a breakpoint (alternate style)\n    // - It's also just useful to know you could override the layout like this \n    //   to get useful variations (maybe we don't need to include it but users \n    //   can do specific)\n    // @if ( get(\"counter-mobile-toggle\") ) {\n    //   @include breakpoint.max(\"small\") {\n    //     padding-left: 0;\n    //     padding-top: calc(get(\"counter-width\") + get(\"counter-gap-mobile\"));\n    //     flex-direction: column;\n    //     align-items: center;\n    //   }\n    // }\n  }\n\n  // Modifiers\n  #{ $prefix }--alphabetical {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, upper-alpha);\n    }\n  }\n  #{ $prefix }--numeric {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, numeric);\n    }\n  }\n  #{ $prefix }--no-reset {\n    counter-reset: none;\n  }\n",
              "line": {
                "start": 72,
                "end": 151
              }
            }
          },
          {
            "description": "Output counter-list component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"counter-list\");\n  $prefix-item: sassSelector.parse(\"#{ $prefix }__item\");\n  $extra-selector: get(\"extra-selector\");\n\n  $selector: $prefix;\n  $selector-item: sassSelector.parse(\"#{ $prefix } > li, #{ $prefix-item }\");\n\n  @if ($extra-selector) {\n    $selector: sassSelector.parse(\"#{ $prefix }, #{ $extra-selector }\");\n    $selector-item: sassSelector.parse(\"#{ $selector-item }, #{ $extra-selector } > li\");\n  }\n\n  #{ $selector } {\n    margin: get(\"margin\");\n    counter-reset: ulu-counter-list;\n  }\n\n  #{ $selector-item } {\n    $width: get(\"counter-width\");\n    $height: utils.fallback(get(\"counter-height\"), $width);\n\n    display: flex;\n    gap: get(\"counter-gap\");\n    align-items: get(\"align-items\");\n    margin: get(\"item-margin\");\n    min-height: $height;\n    &::before {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: $width;\n      height: $height;\n      flex: 0 0 $width;\n      counter-increment: ulu-counter-list;\n      content: counter(ulu-counter-list, get(\"counter-style\"));\n      font-size: get(\"counter-font-size\");\n      font-family: get(\"counter-font-family\");\n      font-weight: get(\"counter-font-weight\");\n      color: color.get(get(\"counter-color\"));\n      background-color: color.get(get(\"counter-background-color\"));\n      border-radius: get(\"counter-border-radius\");\n    }\n\n    // Keeping this could be useful\n    // but we need to think about how its setup\n    // - Probably should be a modifier (choice)\n    // - May need either option for how align-items is set (flex-start vs center)\n    // - This could be useful when used in grid\n    // - May need to be pervasive and not linked to a breakpoint (alternate style)\n    // - It's also just useful to know you could override the layout like this \n    //   to get useful variations (maybe we don't need to include it but users \n    //   can do specific)\n    // @if ( get(\"counter-mobile-toggle\") ) {\n    //   @include breakpoint.max(\"small\") {\n    //     padding-left: 0;\n    //     padding-top: calc(get(\"counter-width\") + get(\"counter-gap-mobile\"));\n    //     flex-direction: column;\n    //     align-items: center;\n    //   }\n    // }\n  }\n\n  // Modifiers\n  #{ $prefix }--alphabetical {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, upper-alpha);\n    }\n  }\n  #{ $prefix }--numeric {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, numeric);\n    }\n  }\n  #{ $prefix }--no-reset {\n    counter-reset: none;\n  }\n",
              "line": {
                "start": 72,
                "end": 151
              }
            }
          },
          {
            "description": "Output counter-list component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"counter-list\");\n  $prefix-item: sassSelector.parse(\"#{ $prefix }__item\");\n  $extra-selector: get(\"extra-selector\");\n\n  $selector: $prefix;\n  $selector-item: sassSelector.parse(\"#{ $prefix } > li, #{ $prefix-item }\");\n\n  @if ($extra-selector) {\n    $selector: sassSelector.parse(\"#{ $prefix }, #{ $extra-selector }\");\n    $selector-item: sassSelector.parse(\"#{ $selector-item }, #{ $extra-selector } > li\");\n  }\n\n  #{ $selector } {\n    margin: get(\"margin\");\n    counter-reset: ulu-counter-list;\n  }\n\n  #{ $selector-item } {\n    $width: get(\"counter-width\");\n    $height: utils.fallback(get(\"counter-height\"), $width);\n\n    display: flex;\n    gap: get(\"counter-gap\");\n    align-items: get(\"align-items\");\n    margin: get(\"item-margin\");\n    min-height: $height;\n    &::before {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: $width;\n      height: $height;\n      flex: 0 0 $width;\n      counter-increment: ulu-counter-list;\n      content: counter(ulu-counter-list, get(\"counter-style\"));\n      font-size: get(\"counter-font-size\");\n      font-family: get(\"counter-font-family\");\n      font-weight: get(\"counter-font-weight\");\n      color: color.get(get(\"counter-color\"));\n      background-color: color.get(get(\"counter-background-color\"));\n      border-radius: get(\"counter-border-radius\");\n    }\n\n    // Keeping this could be useful\n    // but we need to think about how its setup\n    // - Probably should be a modifier (choice)\n    // - May need either option for how align-items is set (flex-start vs center)\n    // - This could be useful when used in grid\n    // - May need to be pervasive and not linked to a breakpoint (alternate style)\n    // - It's also just useful to know you could override the layout like this \n    //   to get useful variations (maybe we don't need to include it but users \n    //   can do specific)\n    // @if ( get(\"counter-mobile-toggle\") ) {\n    //   @include breakpoint.max(\"small\") {\n    //     padding-left: 0;\n    //     padding-top: calc(get(\"counter-width\") + get(\"counter-gap-mobile\"));\n    //     flex-direction: column;\n    //     align-items: center;\n    //   }\n    // }\n  }\n\n  // Modifiers\n  #{ $prefix }--alphabetical {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, upper-alpha);\n    }\n  }\n  #{ $prefix }--numeric {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, numeric);\n    }\n  }\n  #{ $prefix }--no-reset {\n    counter-reset: none;\n  }\n",
              "line": {
                "start": 72,
                "end": 151
              }
            }
          },
          {
            "description": "Output counter-list component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"counter-list\");\n  $prefix-item: sassSelector.parse(\"#{ $prefix }__item\");\n  $extra-selector: get(\"extra-selector\");\n\n  $selector: $prefix;\n  $selector-item: sassSelector.parse(\"#{ $prefix } > li, #{ $prefix-item }\");\n\n  @if ($extra-selector) {\n    $selector: sassSelector.parse(\"#{ $prefix }, #{ $extra-selector }\");\n    $selector-item: sassSelector.parse(\"#{ $selector-item }, #{ $extra-selector } > li\");\n  }\n\n  #{ $selector } {\n    margin: get(\"margin\");\n    counter-reset: ulu-counter-list;\n  }\n\n  #{ $selector-item } {\n    $width: get(\"counter-width\");\n    $height: utils.fallback(get(\"counter-height\"), $width);\n\n    display: flex;\n    gap: get(\"counter-gap\");\n    align-items: get(\"align-items\");\n    margin: get(\"item-margin\");\n    min-height: $height;\n    &::before {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: $width;\n      height: $height;\n      flex: 0 0 $width;\n      counter-increment: ulu-counter-list;\n      content: counter(ulu-counter-list, get(\"counter-style\"));\n      font-size: get(\"counter-font-size\");\n      font-family: get(\"counter-font-family\");\n      font-weight: get(\"counter-font-weight\");\n      color: color.get(get(\"counter-color\"));\n      background-color: color.get(get(\"counter-background-color\"));\n      border-radius: get(\"counter-border-radius\");\n    }\n\n    // Keeping this could be useful\n    // but we need to think about how its setup\n    // - Probably should be a modifier (choice)\n    // - May need either option for how align-items is set (flex-start vs center)\n    // - This could be useful when used in grid\n    // - May need to be pervasive and not linked to a breakpoint (alternate style)\n    // - It's also just useful to know you could override the layout like this \n    //   to get useful variations (maybe we don't need to include it but users \n    //   can do specific)\n    // @if ( get(\"counter-mobile-toggle\") ) {\n    //   @include breakpoint.max(\"small\") {\n    //     padding-left: 0;\n    //     padding-top: calc(get(\"counter-width\") + get(\"counter-gap-mobile\"));\n    //     flex-direction: column;\n    //     align-items: center;\n    //   }\n    // }\n  }\n\n  // Modifiers\n  #{ $prefix }--alphabetical {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, upper-alpha);\n    }\n  }\n  #{ $prefix }--numeric {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, numeric);\n    }\n  }\n  #{ $prefix }--no-reset {\n    counter-reset: none;\n  }\n",
              "line": {
                "start": 72,
                "end": 151
              }
            }
          },
          {
            "description": "Output counter-list component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"counter-list\");\n  $prefix-item: sassSelector.parse(\"#{ $prefix }__item\");\n  $extra-selector: get(\"extra-selector\");\n\n  $selector: $prefix;\n  $selector-item: sassSelector.parse(\"#{ $prefix } > li, #{ $prefix-item }\");\n\n  @if ($extra-selector) {\n    $selector: sassSelector.parse(\"#{ $prefix }, #{ $extra-selector }\");\n    $selector-item: sassSelector.parse(\"#{ $selector-item }, #{ $extra-selector } > li\");\n  }\n\n  #{ $selector } {\n    margin: get(\"margin\");\n    counter-reset: ulu-counter-list;\n  }\n\n  #{ $selector-item } {\n    $width: get(\"counter-width\");\n    $height: utils.fallback(get(\"counter-height\"), $width);\n\n    display: flex;\n    gap: get(\"counter-gap\");\n    align-items: get(\"align-items\");\n    margin: get(\"item-margin\");\n    min-height: $height;\n    &::before {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: $width;\n      height: $height;\n      flex: 0 0 $width;\n      counter-increment: ulu-counter-list;\n      content: counter(ulu-counter-list, get(\"counter-style\"));\n      font-size: get(\"counter-font-size\");\n      font-family: get(\"counter-font-family\");\n      font-weight: get(\"counter-font-weight\");\n      color: color.get(get(\"counter-color\"));\n      background-color: color.get(get(\"counter-background-color\"));\n      border-radius: get(\"counter-border-radius\");\n    }\n\n    // Keeping this could be useful\n    // but we need to think about how its setup\n    // - Probably should be a modifier (choice)\n    // - May need either option for how align-items is set (flex-start vs center)\n    // - This could be useful when used in grid\n    // - May need to be pervasive and not linked to a breakpoint (alternate style)\n    // - It's also just useful to know you could override the layout like this \n    //   to get useful variations (maybe we don't need to include it but users \n    //   can do specific)\n    // @if ( get(\"counter-mobile-toggle\") ) {\n    //   @include breakpoint.max(\"small\") {\n    //     padding-left: 0;\n    //     padding-top: calc(get(\"counter-width\") + get(\"counter-gap-mobile\"));\n    //     flex-direction: column;\n    //     align-items: center;\n    //   }\n    // }\n  }\n\n  // Modifiers\n  #{ $prefix }--alphabetical {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, upper-alpha);\n    }\n  }\n  #{ $prefix }--numeric {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, numeric);\n    }\n  }\n  #{ $prefix }--no-reset {\n    counter-reset: none;\n  }\n",
              "line": {
                "start": 72,
                "end": 151
              }
            }
          },
          {
            "description": "Output counter-list component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"counter-list\");\n  $prefix-item: sassSelector.parse(\"#{ $prefix }__item\");\n  $extra-selector: get(\"extra-selector\");\n\n  $selector: $prefix;\n  $selector-item: sassSelector.parse(\"#{ $prefix } > li, #{ $prefix-item }\");\n\n  @if ($extra-selector) {\n    $selector: sassSelector.parse(\"#{ $prefix }, #{ $extra-selector }\");\n    $selector-item: sassSelector.parse(\"#{ $selector-item }, #{ $extra-selector } > li\");\n  }\n\n  #{ $selector } {\n    margin: get(\"margin\");\n    counter-reset: ulu-counter-list;\n  }\n\n  #{ $selector-item } {\n    $width: get(\"counter-width\");\n    $height: utils.fallback(get(\"counter-height\"), $width);\n\n    display: flex;\n    gap: get(\"counter-gap\");\n    align-items: get(\"align-items\");\n    margin: get(\"item-margin\");\n    min-height: $height;\n    &::before {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: $width;\n      height: $height;\n      flex: 0 0 $width;\n      counter-increment: ulu-counter-list;\n      content: counter(ulu-counter-list, get(\"counter-style\"));\n      font-size: get(\"counter-font-size\");\n      font-family: get(\"counter-font-family\");\n      font-weight: get(\"counter-font-weight\");\n      color: color.get(get(\"counter-color\"));\n      background-color: color.get(get(\"counter-background-color\"));\n      border-radius: get(\"counter-border-radius\");\n    }\n\n    // Keeping this could be useful\n    // but we need to think about how its setup\n    // - Probably should be a modifier (choice)\n    // - May need either option for how align-items is set (flex-start vs center)\n    // - This could be useful when used in grid\n    // - May need to be pervasive and not linked to a breakpoint (alternate style)\n    // - It's also just useful to know you could override the layout like this \n    //   to get useful variations (maybe we don't need to include it but users \n    //   can do specific)\n    // @if ( get(\"counter-mobile-toggle\") ) {\n    //   @include breakpoint.max(\"small\") {\n    //     padding-left: 0;\n    //     padding-top: calc(get(\"counter-width\") + get(\"counter-gap-mobile\"));\n    //     flex-direction: column;\n    //     align-items: center;\n    //   }\n    // }\n  }\n\n  // Modifiers\n  #{ $prefix }--alphabetical {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, upper-alpha);\n    }\n  }\n  #{ $prefix }--numeric {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, numeric);\n    }\n  }\n  #{ $prefix }--no-reset {\n    counter-reset: none;\n  }\n",
              "line": {
                "start": 72,
                "end": 151
              }
            }
          },
          {
            "description": "Output counter-list component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"counter-list\");\n  $prefix-item: sassSelector.parse(\"#{ $prefix }__item\");\n  $extra-selector: get(\"extra-selector\");\n\n  $selector: $prefix;\n  $selector-item: sassSelector.parse(\"#{ $prefix } > li, #{ $prefix-item }\");\n\n  @if ($extra-selector) {\n    $selector: sassSelector.parse(\"#{ $prefix }, #{ $extra-selector }\");\n    $selector-item: sassSelector.parse(\"#{ $selector-item }, #{ $extra-selector } > li\");\n  }\n\n  #{ $selector } {\n    margin: get(\"margin\");\n    counter-reset: ulu-counter-list;\n  }\n\n  #{ $selector-item } {\n    $width: get(\"counter-width\");\n    $height: utils.fallback(get(\"counter-height\"), $width);\n\n    display: flex;\n    gap: get(\"counter-gap\");\n    align-items: get(\"align-items\");\n    margin: get(\"item-margin\");\n    min-height: $height;\n    &::before {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: $width;\n      height: $height;\n      flex: 0 0 $width;\n      counter-increment: ulu-counter-list;\n      content: counter(ulu-counter-list, get(\"counter-style\"));\n      font-size: get(\"counter-font-size\");\n      font-family: get(\"counter-font-family\");\n      font-weight: get(\"counter-font-weight\");\n      color: color.get(get(\"counter-color\"));\n      background-color: color.get(get(\"counter-background-color\"));\n      border-radius: get(\"counter-border-radius\");\n    }\n\n    // Keeping this could be useful\n    // but we need to think about how its setup\n    // - Probably should be a modifier (choice)\n    // - May need either option for how align-items is set (flex-start vs center)\n    // - This could be useful when used in grid\n    // - May need to be pervasive and not linked to a breakpoint (alternate style)\n    // - It's also just useful to know you could override the layout like this \n    //   to get useful variations (maybe we don't need to include it but users \n    //   can do specific)\n    // @if ( get(\"counter-mobile-toggle\") ) {\n    //   @include breakpoint.max(\"small\") {\n    //     padding-left: 0;\n    //     padding-top: calc(get(\"counter-width\") + get(\"counter-gap-mobile\"));\n    //     flex-direction: column;\n    //     align-items: center;\n    //   }\n    // }\n  }\n\n  // Modifiers\n  #{ $prefix }--alphabetical {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, upper-alpha);\n    }\n  }\n  #{ $prefix }--numeric {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, numeric);\n    }\n  }\n  #{ $prefix }--no-reset {\n    counter-reset: none;\n  }\n",
              "line": {
                "start": 72,
                "end": 151
              }
            }
          },
          {
            "description": "Output counter-list component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"counter-list\");\n  $prefix-item: sassSelector.parse(\"#{ $prefix }__item\");\n  $extra-selector: get(\"extra-selector\");\n\n  $selector: $prefix;\n  $selector-item: sassSelector.parse(\"#{ $prefix } > li, #{ $prefix-item }\");\n\n  @if ($extra-selector) {\n    $selector: sassSelector.parse(\"#{ $prefix }, #{ $extra-selector }\");\n    $selector-item: sassSelector.parse(\"#{ $selector-item }, #{ $extra-selector } > li\");\n  }\n\n  #{ $selector } {\n    margin: get(\"margin\");\n    counter-reset: ulu-counter-list;\n  }\n\n  #{ $selector-item } {\n    $width: get(\"counter-width\");\n    $height: utils.fallback(get(\"counter-height\"), $width);\n\n    display: flex;\n    gap: get(\"counter-gap\");\n    align-items: get(\"align-items\");\n    margin: get(\"item-margin\");\n    min-height: $height;\n    &::before {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: $width;\n      height: $height;\n      flex: 0 0 $width;\n      counter-increment: ulu-counter-list;\n      content: counter(ulu-counter-list, get(\"counter-style\"));\n      font-size: get(\"counter-font-size\");\n      font-family: get(\"counter-font-family\");\n      font-weight: get(\"counter-font-weight\");\n      color: color.get(get(\"counter-color\"));\n      background-color: color.get(get(\"counter-background-color\"));\n      border-radius: get(\"counter-border-radius\");\n    }\n\n    // Keeping this could be useful\n    // but we need to think about how its setup\n    // - Probably should be a modifier (choice)\n    // - May need either option for how align-items is set (flex-start vs center)\n    // - This could be useful when used in grid\n    // - May need to be pervasive and not linked to a breakpoint (alternate style)\n    // - It's also just useful to know you could override the layout like this \n    //   to get useful variations (maybe we don't need to include it but users \n    //   can do specific)\n    // @if ( get(\"counter-mobile-toggle\") ) {\n    //   @include breakpoint.max(\"small\") {\n    //     padding-left: 0;\n    //     padding-top: calc(get(\"counter-width\") + get(\"counter-gap-mobile\"));\n    //     flex-direction: column;\n    //     align-items: center;\n    //   }\n    // }\n  }\n\n  // Modifiers\n  #{ $prefix }--alphabetical {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, upper-alpha);\n    }\n  }\n  #{ $prefix }--numeric {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, numeric);\n    }\n  }\n  #{ $prefix }--no-reset {\n    counter-reset: none;\n  }\n",
              "line": {
                "start": 72,
                "end": 151
              }
            }
          },
          {
            "description": "Output counter-list component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"counter-list\");\n  $prefix-item: sassSelector.parse(\"#{ $prefix }__item\");\n  $extra-selector: get(\"extra-selector\");\n\n  $selector: $prefix;\n  $selector-item: sassSelector.parse(\"#{ $prefix } > li, #{ $prefix-item }\");\n\n  @if ($extra-selector) {\n    $selector: sassSelector.parse(\"#{ $prefix }, #{ $extra-selector }\");\n    $selector-item: sassSelector.parse(\"#{ $selector-item }, #{ $extra-selector } > li\");\n  }\n\n  #{ $selector } {\n    margin: get(\"margin\");\n    counter-reset: ulu-counter-list;\n  }\n\n  #{ $selector-item } {\n    $width: get(\"counter-width\");\n    $height: utils.fallback(get(\"counter-height\"), $width);\n\n    display: flex;\n    gap: get(\"counter-gap\");\n    align-items: get(\"align-items\");\n    margin: get(\"item-margin\");\n    min-height: $height;\n    &::before {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: $width;\n      height: $height;\n      flex: 0 0 $width;\n      counter-increment: ulu-counter-list;\n      content: counter(ulu-counter-list, get(\"counter-style\"));\n      font-size: get(\"counter-font-size\");\n      font-family: get(\"counter-font-family\");\n      font-weight: get(\"counter-font-weight\");\n      color: color.get(get(\"counter-color\"));\n      background-color: color.get(get(\"counter-background-color\"));\n      border-radius: get(\"counter-border-radius\");\n    }\n\n    // Keeping this could be useful\n    // but we need to think about how its setup\n    // - Probably should be a modifier (choice)\n    // - May need either option for how align-items is set (flex-start vs center)\n    // - This could be useful when used in grid\n    // - May need to be pervasive and not linked to a breakpoint (alternate style)\n    // - It's also just useful to know you could override the layout like this \n    //   to get useful variations (maybe we don't need to include it but users \n    //   can do specific)\n    // @if ( get(\"counter-mobile-toggle\") ) {\n    //   @include breakpoint.max(\"small\") {\n    //     padding-left: 0;\n    //     padding-top: calc(get(\"counter-width\") + get(\"counter-gap-mobile\"));\n    //     flex-direction: column;\n    //     align-items: center;\n    //   }\n    // }\n  }\n\n  // Modifiers\n  #{ $prefix }--alphabetical {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, upper-alpha);\n    }\n  }\n  #{ $prefix }--numeric {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, numeric);\n    }\n  }\n  #{ $prefix }--no-reset {\n    counter-reset: none;\n  }\n",
              "line": {
                "start": 72,
                "end": 151
              }
            }
          },
          {
            "description": "Output counter-list component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"counter-list\");\n  $prefix-item: sassSelector.parse(\"#{ $prefix }__item\");\n  $extra-selector: get(\"extra-selector\");\n\n  $selector: $prefix;\n  $selector-item: sassSelector.parse(\"#{ $prefix } > li, #{ $prefix-item }\");\n\n  @if ($extra-selector) {\n    $selector: sassSelector.parse(\"#{ $prefix }, #{ $extra-selector }\");\n    $selector-item: sassSelector.parse(\"#{ $selector-item }, #{ $extra-selector } > li\");\n  }\n\n  #{ $selector } {\n    margin: get(\"margin\");\n    counter-reset: ulu-counter-list;\n  }\n\n  #{ $selector-item } {\n    $width: get(\"counter-width\");\n    $height: utils.fallback(get(\"counter-height\"), $width);\n\n    display: flex;\n    gap: get(\"counter-gap\");\n    align-items: get(\"align-items\");\n    margin: get(\"item-margin\");\n    min-height: $height;\n    &::before {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: $width;\n      height: $height;\n      flex: 0 0 $width;\n      counter-increment: ulu-counter-list;\n      content: counter(ulu-counter-list, get(\"counter-style\"));\n      font-size: get(\"counter-font-size\");\n      font-family: get(\"counter-font-family\");\n      font-weight: get(\"counter-font-weight\");\n      color: color.get(get(\"counter-color\"));\n      background-color: color.get(get(\"counter-background-color\"));\n      border-radius: get(\"counter-border-radius\");\n    }\n\n    // Keeping this could be useful\n    // but we need to think about how its setup\n    // - Probably should be a modifier (choice)\n    // - May need either option for how align-items is set (flex-start vs center)\n    // - This could be useful when used in grid\n    // - May need to be pervasive and not linked to a breakpoint (alternate style)\n    // - It's also just useful to know you could override the layout like this \n    //   to get useful variations (maybe we don't need to include it but users \n    //   can do specific)\n    // @if ( get(\"counter-mobile-toggle\") ) {\n    //   @include breakpoint.max(\"small\") {\n    //     padding-left: 0;\n    //     padding-top: calc(get(\"counter-width\") + get(\"counter-gap-mobile\"));\n    //     flex-direction: column;\n    //     align-items: center;\n    //   }\n    // }\n  }\n\n  // Modifiers\n  #{ $prefix }--alphabetical {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, upper-alpha);\n    }\n  }\n  #{ $prefix }--numeric {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, numeric);\n    }\n  }\n  #{ $prefix }--no-reset {\n    counter-reset: none;\n  }\n",
              "line": {
                "start": 72,
                "end": 151
              }
            }
          },
          {
            "description": "Output counter-list component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"counter-list\");\n  $prefix-item: sassSelector.parse(\"#{ $prefix }__item\");\n  $extra-selector: get(\"extra-selector\");\n\n  $selector: $prefix;\n  $selector-item: sassSelector.parse(\"#{ $prefix } > li, #{ $prefix-item }\");\n\n  @if ($extra-selector) {\n    $selector: sassSelector.parse(\"#{ $prefix }, #{ $extra-selector }\");\n    $selector-item: sassSelector.parse(\"#{ $selector-item }, #{ $extra-selector } > li\");\n  }\n\n  #{ $selector } {\n    margin: get(\"margin\");\n    counter-reset: ulu-counter-list;\n  }\n\n  #{ $selector-item } {\n    $width: get(\"counter-width\");\n    $height: utils.fallback(get(\"counter-height\"), $width);\n\n    display: flex;\n    gap: get(\"counter-gap\");\n    align-items: get(\"align-items\");\n    margin: get(\"item-margin\");\n    min-height: $height;\n    &::before {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: $width;\n      height: $height;\n      flex: 0 0 $width;\n      counter-increment: ulu-counter-list;\n      content: counter(ulu-counter-list, get(\"counter-style\"));\n      font-size: get(\"counter-font-size\");\n      font-family: get(\"counter-font-family\");\n      font-weight: get(\"counter-font-weight\");\n      color: color.get(get(\"counter-color\"));\n      background-color: color.get(get(\"counter-background-color\"));\n      border-radius: get(\"counter-border-radius\");\n    }\n\n    // Keeping this could be useful\n    // but we need to think about how its setup\n    // - Probably should be a modifier (choice)\n    // - May need either option for how align-items is set (flex-start vs center)\n    // - This could be useful when used in grid\n    // - May need to be pervasive and not linked to a breakpoint (alternate style)\n    // - It's also just useful to know you could override the layout like this \n    //   to get useful variations (maybe we don't need to include it but users \n    //   can do specific)\n    // @if ( get(\"counter-mobile-toggle\") ) {\n    //   @include breakpoint.max(\"small\") {\n    //     padding-left: 0;\n    //     padding-top: calc(get(\"counter-width\") + get(\"counter-gap-mobile\"));\n    //     flex-direction: column;\n    //     align-items: center;\n    //   }\n    // }\n  }\n\n  // Modifiers\n  #{ $prefix }--alphabetical {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, upper-alpha);\n    }\n  }\n  #{ $prefix }--numeric {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, numeric);\n    }\n  }\n  #{ $prefix }--no-reset {\n    counter-reset: none;\n  }\n",
              "line": {
                "start": 72,
                "end": 151
              }
            }
          },
          {
            "description": "Output counter-list component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"counter-list\");\n  $prefix-item: sassSelector.parse(\"#{ $prefix }__item\");\n  $extra-selector: get(\"extra-selector\");\n\n  $selector: $prefix;\n  $selector-item: sassSelector.parse(\"#{ $prefix } > li, #{ $prefix-item }\");\n\n  @if ($extra-selector) {\n    $selector: sassSelector.parse(\"#{ $prefix }, #{ $extra-selector }\");\n    $selector-item: sassSelector.parse(\"#{ $selector-item }, #{ $extra-selector } > li\");\n  }\n\n  #{ $selector } {\n    margin: get(\"margin\");\n    counter-reset: ulu-counter-list;\n  }\n\n  #{ $selector-item } {\n    $width: get(\"counter-width\");\n    $height: utils.fallback(get(\"counter-height\"), $width);\n\n    display: flex;\n    gap: get(\"counter-gap\");\n    align-items: get(\"align-items\");\n    margin: get(\"item-margin\");\n    min-height: $height;\n    &::before {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: $width;\n      height: $height;\n      flex: 0 0 $width;\n      counter-increment: ulu-counter-list;\n      content: counter(ulu-counter-list, get(\"counter-style\"));\n      font-size: get(\"counter-font-size\");\n      font-family: get(\"counter-font-family\");\n      font-weight: get(\"counter-font-weight\");\n      color: color.get(get(\"counter-color\"));\n      background-color: color.get(get(\"counter-background-color\"));\n      border-radius: get(\"counter-border-radius\");\n    }\n\n    // Keeping this could be useful\n    // but we need to think about how its setup\n    // - Probably should be a modifier (choice)\n    // - May need either option for how align-items is set (flex-start vs center)\n    // - This could be useful when used in grid\n    // - May need to be pervasive and not linked to a breakpoint (alternate style)\n    // - It's also just useful to know you could override the layout like this \n    //   to get useful variations (maybe we don't need to include it but users \n    //   can do specific)\n    // @if ( get(\"counter-mobile-toggle\") ) {\n    //   @include breakpoint.max(\"small\") {\n    //     padding-left: 0;\n    //     padding-top: calc(get(\"counter-width\") + get(\"counter-gap-mobile\"));\n    //     flex-direction: column;\n    //     align-items: center;\n    //   }\n    // }\n  }\n\n  // Modifiers\n  #{ $prefix }--alphabetical {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, upper-alpha);\n    }\n  }\n  #{ $prefix }--numeric {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, numeric);\n    }\n  }\n  #{ $prefix }--no-reset {\n    counter-reset: none;\n  }\n",
              "line": {
                "start": 72,
                "end": 151
              }
            }
          },
          {
            "description": "Output counter-list component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"counter-list\");\n  $prefix-item: sassSelector.parse(\"#{ $prefix }__item\");\n  $extra-selector: get(\"extra-selector\");\n\n  $selector: $prefix;\n  $selector-item: sassSelector.parse(\"#{ $prefix } > li, #{ $prefix-item }\");\n\n  @if ($extra-selector) {\n    $selector: sassSelector.parse(\"#{ $prefix }, #{ $extra-selector }\");\n    $selector-item: sassSelector.parse(\"#{ $selector-item }, #{ $extra-selector } > li\");\n  }\n\n  #{ $selector } {\n    margin: get(\"margin\");\n    counter-reset: ulu-counter-list;\n  }\n\n  #{ $selector-item } {\n    $width: get(\"counter-width\");\n    $height: utils.fallback(get(\"counter-height\"), $width);\n\n    display: flex;\n    gap: get(\"counter-gap\");\n    align-items: get(\"align-items\");\n    margin: get(\"item-margin\");\n    min-height: $height;\n    &::before {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: $width;\n      height: $height;\n      flex: 0 0 $width;\n      counter-increment: ulu-counter-list;\n      content: counter(ulu-counter-list, get(\"counter-style\"));\n      font-size: get(\"counter-font-size\");\n      font-family: get(\"counter-font-family\");\n      font-weight: get(\"counter-font-weight\");\n      color: color.get(get(\"counter-color\"));\n      background-color: color.get(get(\"counter-background-color\"));\n      border-radius: get(\"counter-border-radius\");\n    }\n\n    // Keeping this could be useful\n    // but we need to think about how its setup\n    // - Probably should be a modifier (choice)\n    // - May need either option for how align-items is set (flex-start vs center)\n    // - This could be useful when used in grid\n    // - May need to be pervasive and not linked to a breakpoint (alternate style)\n    // - It's also just useful to know you could override the layout like this \n    //   to get useful variations (maybe we don't need to include it but users \n    //   can do specific)\n    // @if ( get(\"counter-mobile-toggle\") ) {\n    //   @include breakpoint.max(\"small\") {\n    //     padding-left: 0;\n    //     padding-top: calc(get(\"counter-width\") + get(\"counter-gap-mobile\"));\n    //     flex-direction: column;\n    //     align-items: center;\n    //   }\n    // }\n  }\n\n  // Modifiers\n  #{ $prefix }--alphabetical {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, upper-alpha);\n    }\n  }\n  #{ $prefix }--numeric {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, numeric);\n    }\n  }\n  #{ $prefix }--no-reset {\n    counter-reset: none;\n  }\n",
              "line": {
                "start": 72,
                "end": 151
              }
            }
          },
          {
            "description": "Output counter-list component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"counter-list\");\n  $prefix-item: sassSelector.parse(\"#{ $prefix }__item\");\n  $extra-selector: get(\"extra-selector\");\n\n  $selector: $prefix;\n  $selector-item: sassSelector.parse(\"#{ $prefix } > li, #{ $prefix-item }\");\n\n  @if ($extra-selector) {\n    $selector: sassSelector.parse(\"#{ $prefix }, #{ $extra-selector }\");\n    $selector-item: sassSelector.parse(\"#{ $selector-item }, #{ $extra-selector } > li\");\n  }\n\n  #{ $selector } {\n    margin: get(\"margin\");\n    counter-reset: ulu-counter-list;\n  }\n\n  #{ $selector-item } {\n    $width: get(\"counter-width\");\n    $height: utils.fallback(get(\"counter-height\"), $width);\n\n    display: flex;\n    gap: get(\"counter-gap\");\n    align-items: get(\"align-items\");\n    margin: get(\"item-margin\");\n    min-height: $height;\n    &::before {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: $width;\n      height: $height;\n      flex: 0 0 $width;\n      counter-increment: ulu-counter-list;\n      content: counter(ulu-counter-list, get(\"counter-style\"));\n      font-size: get(\"counter-font-size\");\n      font-family: get(\"counter-font-family\");\n      font-weight: get(\"counter-font-weight\");\n      color: color.get(get(\"counter-color\"));\n      background-color: color.get(get(\"counter-background-color\"));\n      border-radius: get(\"counter-border-radius\");\n    }\n\n    // Keeping this could be useful\n    // but we need to think about how its setup\n    // - Probably should be a modifier (choice)\n    // - May need either option for how align-items is set (flex-start vs center)\n    // - This could be useful when used in grid\n    // - May need to be pervasive and not linked to a breakpoint (alternate style)\n    // - It's also just useful to know you could override the layout like this \n    //   to get useful variations (maybe we don't need to include it but users \n    //   can do specific)\n    // @if ( get(\"counter-mobile-toggle\") ) {\n    //   @include breakpoint.max(\"small\") {\n    //     padding-left: 0;\n    //     padding-top: calc(get(\"counter-width\") + get(\"counter-gap-mobile\"));\n    //     flex-direction: column;\n    //     align-items: center;\n    //   }\n    // }\n  }\n\n  // Modifiers\n  #{ $prefix }--alphabetical {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, upper-alpha);\n    }\n  }\n  #{ $prefix }--numeric {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, numeric);\n    }\n  }\n  #{ $prefix }--no-reset {\n    counter-reset: none;\n  }\n",
              "line": {
                "start": 72,
                "end": 151
              }
            }
          },
          {
            "description": "Output counter-list component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"counter-list\");\n  $prefix-item: sassSelector.parse(\"#{ $prefix }__item\");\n  $extra-selector: get(\"extra-selector\");\n\n  $selector: $prefix;\n  $selector-item: sassSelector.parse(\"#{ $prefix } > li, #{ $prefix-item }\");\n\n  @if ($extra-selector) {\n    $selector: sassSelector.parse(\"#{ $prefix }, #{ $extra-selector }\");\n    $selector-item: sassSelector.parse(\"#{ $selector-item }, #{ $extra-selector } > li\");\n  }\n\n  #{ $selector } {\n    margin: get(\"margin\");\n    counter-reset: ulu-counter-list;\n  }\n\n  #{ $selector-item } {\n    $width: get(\"counter-width\");\n    $height: utils.fallback(get(\"counter-height\"), $width);\n\n    display: flex;\n    gap: get(\"counter-gap\");\n    align-items: get(\"align-items\");\n    margin: get(\"item-margin\");\n    min-height: $height;\n    &::before {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: $width;\n      height: $height;\n      flex: 0 0 $width;\n      counter-increment: ulu-counter-list;\n      content: counter(ulu-counter-list, get(\"counter-style\"));\n      font-size: get(\"counter-font-size\");\n      font-family: get(\"counter-font-family\");\n      font-weight: get(\"counter-font-weight\");\n      color: color.get(get(\"counter-color\"));\n      background-color: color.get(get(\"counter-background-color\"));\n      border-radius: get(\"counter-border-radius\");\n    }\n\n    // Keeping this could be useful\n    // but we need to think about how its setup\n    // - Probably should be a modifier (choice)\n    // - May need either option for how align-items is set (flex-start vs center)\n    // - This could be useful when used in grid\n    // - May need to be pervasive and not linked to a breakpoint (alternate style)\n    // - It's also just useful to know you could override the layout like this \n    //   to get useful variations (maybe we don't need to include it but users \n    //   can do specific)\n    // @if ( get(\"counter-mobile-toggle\") ) {\n    //   @include breakpoint.max(\"small\") {\n    //     padding-left: 0;\n    //     padding-top: calc(get(\"counter-width\") + get(\"counter-gap-mobile\"));\n    //     flex-direction: column;\n    //     align-items: center;\n    //   }\n    // }\n  }\n\n  // Modifiers\n  #{ $prefix }--alphabetical {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, upper-alpha);\n    }\n  }\n  #{ $prefix }--numeric {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, numeric);\n    }\n  }\n  #{ $prefix }--no-reset {\n    counter-reset: none;\n  }\n",
              "line": {
                "start": 72,
                "end": 151
              }
            }
          },
          {
            "description": "Used to style active icons\n- Probably only useful for extending this component and matching active selector\n- Used internally in module\n",
            "context": {
              "type": "mixin",
              "name": "when-active",
              "code": "\n  #{ get(\"active-selector\") } {\n    @content;\n  }\n",
              "line": {
                "start": 85,
                "end": 89
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "function",
              "name": "get-gutter",
              "code": "\n  @if (not $name) {\n    @return get(\"gutter\");\n  } @else {\n    $map: utils.fallback($custom-map, get(\"extra-breakpoints\"));\n    $settings: utils.require-map-get($map, $name, \"grid [get-gutter]\");\n    @return map.get($settings, \"gutter\");\n  }\n",
              "line": {
                "start": 95,
                "end": 103
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "function",
              "name": "get-gutter",
              "code": "\n  @if (not $name) {\n    @return get(\"gutter\");\n  } @else {\n    $map: utils.fallback($custom-map, get(\"extra-breakpoints\"));\n    $settings: utils.require-map-get($map, $name, \"grid [get-gutter]\");\n    @return map.get($settings, \"gutter\");\n  }\n",
              "line": {
                "start": 95,
                "end": 103
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "function",
              "name": "get-gutter",
              "code": "\n  @if (not $name) {\n    @return get(\"gutter\");\n  } @else {\n    $map: utils.fallback($custom-map, get(\"extra-breakpoints\"));\n    $settings: utils.require-map-get($map, $name, \"grid [get-gutter]\");\n    @return map.get($settings, \"gutter\");\n  }\n",
              "line": {
                "start": 95,
                "end": 103
              }
            }
          },
          {
            "description": "Get the default breakpoint for the grid (when it starts to be a grid (vs stacked/mobile)\n",
            "context": {
              "type": "function",
              "name": "get-default-breakpoint",
              "code": "\n  $breakpoint: get(\"breakpoint\");\n  @if ($breakpoint) {\n    @return $breakpoint;\n  } @else {\n    @return breakpoint.get(\"default\");\n  }\n",
              "line": {
                "start": 107,
                "end": 114
              }
            }
          },
          {
            "description": "Get the default breakpoint for the grid (when it starts to be a grid (vs stacked/mobile)\n",
            "context": {
              "type": "function",
              "name": "get-default-breakpoint",
              "code": "\n  $breakpoint: get(\"breakpoint\");\n  @if ($breakpoint) {\n    @return $breakpoint;\n  } @else {\n    @return breakpoint.get(\"default\");\n  }\n",
              "line": {
                "start": 107,
                "end": 114
              }
            }
          },
          {
            "description": "Output data grid styles\n- Can be used instead of styles() to have full control over options or for alternate grids (grids with different settings/column count) \n",
            "context": {
              "type": "mixin",
              "name": "create",
              "code": "\n  $attribute-item: \"#{ $attribute }-item\";\n  $select-grid: '[#{ $attribute }*=\"columns: #{ $columns }\"]';\n  $select-grid-not-init: '[#{ $attribute }]:not([#{ $attribute-init }])';\n  $select-item: '[#{ $attribute-item }]';\n  $select-rule-col: \"::before\";\n  $select-rule-row: \"::after\";\n  $select-container: \"[#{ $container-attribute }]\";\n  // These through off syntax highlighting when inside interpolation\n  $position-class-column-first: get(\"position-class-column-first\");\n  $position-class-column-last: get(\"position-class-column-last\");\n  $position-class-row-first: get(\"position-class-row-first\");\n  $position-class-row-last: get(\"position-class-row-last\");\n\n  #{ $select-grid } {\n    @include layout.clearfix(); // For legacy browsers\n\n    // Ensure empty elements still take up space in layout\n    > #{ $select-item } {\n      min-height: 1px; \n      width: 100%;\n    }\n    // This is for value of true and also covers all options below\n    &#{'[#{ $attribute }*=\"gutters-row:\"]'} { \n      > #{ $select-item } {\n        padding-top:  $gutter;\n        padding-bottom: $gutter;\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              padding-top:  $gutter * $amount;\n              padding-bottom: $gutter * $amount;\n            }\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: top\"]'} { \n      > #{ $select-item } {\n        &.#{ $position-class-row-last } {\n          padding-bottom: 0;\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: bottom\"]'} { \n      > #{ $select-item } {\n        &.#{ $position-class-row-first } {\n          padding-top: 0;\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: fit\"]'} { \n      margin-top: -$gutter;\n      margin-bottom: -$gutter;\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            margin-top: -($gutter * $amount);\n            margin-bottom: -($gutter * $amount);\n          }\n        }\n      }\n    }\n    // Rules: Applies to both column and row\n    &#{'[#{ $attribute }*=\"rules\"]'} { \n      > #{ $select-item } {\n        position: relative;\n        @if ($rule-fade-duration) {\n          &#{ $select-rule-col },\n          &#{ $select-rule-row } {\n            // For when grid init fades them in\n            opacity: 1;\n            transition: opacity $rule-fade-duration ease-in; \n          }\n        }\n      }\n    }\n    // Rules: Row\n    &#{'[#{ $attribute }*=\"rules-row:\"]'} { \n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          position: absolute;\n          left: 0;\n          right: 0;\n          height: $rule-size;\n          background: color.get($rule-color);\n        }\n      }\n    }\n    // Rules: Column\n    &#{'[#{ $attribute }*=\"rules-column:\"]'} { \n      > #{ $select-item } {\n        &#{ $select-rule-col } {\n          position: absolute;\n          top: 0;\n          bottom: 0;\n          width: $rule-size;\n          background: color.get($rule-color);\n        }\n      }\n    }\n    // Options for the left or right\n    @include -create-rule-col-position(\n      $position: \"left\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-col: $select-rule-col, \n      $end-class: $position-class-column-first\n    );\n    @include -create-rule-col-position(\n      $position: \"right\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-col: $select-rule-col, \n      $end-class: $position-class-column-last\n    );\n    &#{'[#{ $attribute }*=\"rules-column-align: gutter\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-col } {\n          top: $gutter;\n          bottom: $gutter;\n        }\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              &#{ $select-rule-col } {\n                top: $gutter * $amount;\n                bottom: $gutter * $amount;\n              }\n            }\n          }\n        }\n      }\n    }\n    // Options for the left or right\n    @include -create-rule-row-position(\n      $position: \"top\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-row: $select-rule-row, \n      $between: false\n    );\n    @include -create-rule-row-position(\n      $position: \"bottom\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-row: $select-rule-row, \n      $between: false\n    );\n\n    &#{'[#{ $attribute }*=\"rules-row: between\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          bottom: math.floor(math.div($rule-size, 2)) * -1;\n        }\n        // For removing the rule per row (via equal heights for now)\n        &.#{ $position-class-row-last } {\n          &#{ $select-rule-row } {\n            content: none !important;\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"rules-row-align: gutter\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          @include breakpoint.min($breakpoint) {\n            left: $gutter;\n            right: $gutter;\n          }\n        }\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              &#{ $select-rule-row } {\n                @include breakpoint.min($breakpoint) {\n                  left: $gutter * $amount;\n                  right: $gutter * $amount;\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"rules-row-persist: true\"]'},\n    &#{'[#{ $attribute }*=\"rules-row-stacked-only: true\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          content: '';\n        }\n      }\n    }\n    // IE for mobile/small (non grid / stacked)\n    &#{'[#{ $attribute }*=\"rules-row-stacked-only: true\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          @include breakpoint.min($breakpoint) {\n            content: none !important;\n          }\n        }\n      }\n    }\n  }\n\n  @include breakpoint.min($breakpoint) {\n\n    $select-gutter-false: '[#{ $attribute }*=\"gutters: false\"]';\n    $select-gutter-false-child: '#{ $select-container }:has(>#{ $select-gutter-false })';\n\n    @if $include-container {\n      #{ $select-container } {\n        padding-left: $gutter;\n        padding-right: $gutter;\n      }\n      #{ $select-gutter-false-child } {\n        padding-left: 0;\n        padding-right: 0;\n      }\n      @if $extra-gutter-scales and $container-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          #{'#{ $select-container }:has(>[#{ $attribute }*=\"gutter-scale: #{ $scale }\"])'} { \n            padding-left: ($gutter * $amount);\n            padding-right: ($gutter * $amount);\n          }\n        }\n      }\n    }\n    // Select the attribute with matching column count\n    #{ $select-grid } {\n      // Defaults for grid an item\n      display: flex;\n      flex-flow: row wrap;\n      align-items: stretch;\n      margin-left: -$gutter;\n      margin-right: -$gutter;\n\n      > #{ $select-item } {\n        float: left; // Fallback\n        padding-left: $gutter;\n        padding-right: $gutter;\n      }\n      > #{'[#{ $attribute-item }*=\"sticky: top\"]'} {\n        position: sticky;\n        align-self: start;\n        top: $sticky-top;\n      }\n      > #{'[#{ $attribute-item }*=\"sticky: bottom\"]'} {\n        position: sticky;\n        align-self: end;\n        bottom: $sticky-bottom;\n      }\n\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            margin-left: -($gutter * $amount);\n            margin-right: -($gutter * $amount);\n\n            > #{ $select-item } {\n              padding-left: $gutter * $amount;\n              padding-right: $gutter * $amount;\n            }\n          }\n        }\n      }\n      \n      // Alignment options\n      &#{'[#{ $attribute }*=\"justify: center\"]'} { \n        justify-content: center;  \n      }\n      &#{'[#{ $attribute }*=\"justify: end\"]'} { \n        justify-content: flex-end;  \n      }\n      &#{'[#{ $attribute }*=\"align: center\"]'} { \n        align-items: center;  \n      }\n      &#{'[#{ $attribute }*=\"align: end\"]'} { \n        align-items: flex-end;\n      }\n      &#{'[#{ $attribute }*=\"align: start\"]'} { \n        align-items: flex-start; \n      }\n      // Alignment of the children when using stretch\n      // - There is no stetch-start (that's defualt);\n      // - There is no stetch-middle (that's covered by stretch-);\n      &#{'[#{ $attribute }*=\"align: stretch-\"]'} { \n        // set the child to display as a single flex item\n        > #{ $select-item } {\n          display: flex;\n          flex-direction: column;\n          justify-content: center;\n        }\n      }\n      &#{'[#{ $attribute }*=\"align: stretch-end\"]'} { \n        > #{ $select-item } {\n          justify-content: flex-end;\n        }\n      }\n      // Other options\n      &#{ $select-gutter-false } { \n        margin-left: 0;\n        margin-right: 0;\n        > #{ $select-item } {\n          padding-left: 0;\n          padding-right: 0;\n        }\n      }\n      // Activate Rules\n      &#{'[#{ $attribute }*=\"rules-column:\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-col } {\n            content: '';\n          }\n        }\n      }\n      &#{'[#{ $attribute }*=\"rules-row:\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-row } {\n            content: '';\n          }\n        }\n      }\n      // Override first or last column removing the rule using matching specificity\n      &#{'[#{ $attribute }*=\"rules-column:\"][#{ $attribute }*=\"rules-column-ends: true\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-col } {\n            content: '';\n          }\n        }\n      }\n      // Generated props for item\n      @include -create-column-widths(\n        $columns: $columns,\n        $attribute-item: $attribute-item,\n        $suffix: ''\n      );\n      @include -create-column-offsets(\n        $columns: $columns,\n        $attribute-item: $attribute-item,\n        $suffix: ''\n      );\n    }\n  }\n  @if $extra-breakpoints {\n    @each $name, $options in $extra-breakpoints {\n      $g: map.get($options, \"gutter\");\n      @include -create-extra-breakpoint(\n        $name: $name, \n        $breakpoint: map.get($options, \"breakpoint\"),\n        $gutter: utils.fallback($g, $gutter),\n        $columns: $columns,\n        $attribute: $attribute,\n        $attribute-item: $attribute-item,\n        $select-grid: $select-grid,\n        $select-item: $select-item,\n        $extra-gutter-scales: $extra-gutter-scales,\n        $include-container: $include-container,\n        $select-container: $select-container,\n        $container-gutter-scales: $container-gutter-scales\n      );\n    }\n  }\n  @if $extra-rule-styles {\n    @each $name, $options in $extra-rule-styles {\n      $color: utils.require-map-get($options, \"color\", \"grid [extra rule style]\");\n      $size: utils.require-map-get($options, \"size\", \"grid [extra rule style]\");\n      #{ $select-grid } {\n\n        &#{'[#{ $attribute }*=\"rules-column-style: #{ $name }\"]'} {\n          > #{ $select-item } {\n            &#{ $select-rule-col } {\n              background-color: color.get($color);\n              width: $size;\n            }\n          }\n          @include -create-rule-col-position(\n            $position: \"left\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-col: $select-rule-col, \n            $end-class: false\n          );\n          @include -create-rule-col-position(\n            $position: \"right\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-col: $select-rule-col, \n            $end-class: false\n          );\n        }\n        &#{'[#{ $attribute }*=\"rules-row-style: #{ $name }\"]'} {\n          > #{ $select-item } {\n            &#{ $select-rule-row } {\n              background-color: color.get($color);\n              height: $size;\n            }\n          }\n          @include -create-rule-row-position(\n            $position: \"top\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: false\n          );\n          @include -create-rule-row-position(\n            $position: \"bottom\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: false\n          );\n          @include -create-rule-row-position(\n            $position: \"bottom\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: true\n          );\n        }\n      }\n    }\n  }\n\n  // Disable grid rules until init attribute it present (from positioning script)\n  // - In order to keep the rules for this compact it will only hide them if the init\n  //   is not present\n  \n  @if ($rule-fade-duration) {\n    #{ $select-grid-not-init } {\n      > #{ $select-item } {\n        &#{ $select-rule-col },\n        &#{ $select-rule-row } {\n          opacity: 0 !important;\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 138,
                "end": 609
              }
            }
          },
          {
            "description": "Output data grid styles\n- Can be used instead of styles() to have full control over options or for alternate grids (grids with different settings/column count) \n",
            "context": {
              "type": "mixin",
              "name": "create",
              "code": "\n  $attribute-item: \"#{ $attribute }-item\";\n  $select-grid: '[#{ $attribute }*=\"columns: #{ $columns }\"]';\n  $select-grid-not-init: '[#{ $attribute }]:not([#{ $attribute-init }])';\n  $select-item: '[#{ $attribute-item }]';\n  $select-rule-col: \"::before\";\n  $select-rule-row: \"::after\";\n  $select-container: \"[#{ $container-attribute }]\";\n  // These through off syntax highlighting when inside interpolation\n  $position-class-column-first: get(\"position-class-column-first\");\n  $position-class-column-last: get(\"position-class-column-last\");\n  $position-class-row-first: get(\"position-class-row-first\");\n  $position-class-row-last: get(\"position-class-row-last\");\n\n  #{ $select-grid } {\n    @include layout.clearfix(); // For legacy browsers\n\n    // Ensure empty elements still take up space in layout\n    > #{ $select-item } {\n      min-height: 1px; \n      width: 100%;\n    }\n    // This is for value of true and also covers all options below\n    &#{'[#{ $attribute }*=\"gutters-row:\"]'} { \n      > #{ $select-item } {\n        padding-top:  $gutter;\n        padding-bottom: $gutter;\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              padding-top:  $gutter * $amount;\n              padding-bottom: $gutter * $amount;\n            }\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: top\"]'} { \n      > #{ $select-item } {\n        &.#{ $position-class-row-last } {\n          padding-bottom: 0;\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: bottom\"]'} { \n      > #{ $select-item } {\n        &.#{ $position-class-row-first } {\n          padding-top: 0;\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: fit\"]'} { \n      margin-top: -$gutter;\n      margin-bottom: -$gutter;\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            margin-top: -($gutter * $amount);\n            margin-bottom: -($gutter * $amount);\n          }\n        }\n      }\n    }\n    // Rules: Applies to both column and row\n    &#{'[#{ $attribute }*=\"rules\"]'} { \n      > #{ $select-item } {\n        position: relative;\n        @if ($rule-fade-duration) {\n          &#{ $select-rule-col },\n          &#{ $select-rule-row } {\n            // For when grid init fades them in\n            opacity: 1;\n            transition: opacity $rule-fade-duration ease-in; \n          }\n        }\n      }\n    }\n    // Rules: Row\n    &#{'[#{ $attribute }*=\"rules-row:\"]'} { \n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          position: absolute;\n          left: 0;\n          right: 0;\n          height: $rule-size;\n          background: color.get($rule-color);\n        }\n      }\n    }\n    // Rules: Column\n    &#{'[#{ $attribute }*=\"rules-column:\"]'} { \n      > #{ $select-item } {\n        &#{ $select-rule-col } {\n          position: absolute;\n          top: 0;\n          bottom: 0;\n          width: $rule-size;\n          background: color.get($rule-color);\n        }\n      }\n    }\n    // Options for the left or right\n    @include -create-rule-col-position(\n      $position: \"left\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-col: $select-rule-col, \n      $end-class: $position-class-column-first\n    );\n    @include -create-rule-col-position(\n      $position: \"right\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-col: $select-rule-col, \n      $end-class: $position-class-column-last\n    );\n    &#{'[#{ $attribute }*=\"rules-column-align: gutter\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-col } {\n          top: $gutter;\n          bottom: $gutter;\n        }\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              &#{ $select-rule-col } {\n                top: $gutter * $amount;\n                bottom: $gutter * $amount;\n              }\n            }\n          }\n        }\n      }\n    }\n    // Options for the left or right\n    @include -create-rule-row-position(\n      $position: \"top\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-row: $select-rule-row, \n      $between: false\n    );\n    @include -create-rule-row-position(\n      $position: \"bottom\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-row: $select-rule-row, \n      $between: false\n    );\n\n    &#{'[#{ $attribute }*=\"rules-row: between\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          bottom: math.floor(math.div($rule-size, 2)) * -1;\n        }\n        // For removing the rule per row (via equal heights for now)\n        &.#{ $position-class-row-last } {\n          &#{ $select-rule-row } {\n            content: none !important;\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"rules-row-align: gutter\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          @include breakpoint.min($breakpoint) {\n            left: $gutter;\n            right: $gutter;\n          }\n        }\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              &#{ $select-rule-row } {\n                @include breakpoint.min($breakpoint) {\n                  left: $gutter * $amount;\n                  right: $gutter * $amount;\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"rules-row-persist: true\"]'},\n    &#{'[#{ $attribute }*=\"rules-row-stacked-only: true\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          content: '';\n        }\n      }\n    }\n    // IE for mobile/small (non grid / stacked)\n    &#{'[#{ $attribute }*=\"rules-row-stacked-only: true\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          @include breakpoint.min($breakpoint) {\n            content: none !important;\n          }\n        }\n      }\n    }\n  }\n\n  @include breakpoint.min($breakpoint) {\n\n    $select-gutter-false: '[#{ $attribute }*=\"gutters: false\"]';\n    $select-gutter-false-child: '#{ $select-container }:has(>#{ $select-gutter-false })';\n\n    @if $include-container {\n      #{ $select-container } {\n        padding-left: $gutter;\n        padding-right: $gutter;\n      }\n      #{ $select-gutter-false-child } {\n        padding-left: 0;\n        padding-right: 0;\n      }\n      @if $extra-gutter-scales and $container-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          #{'#{ $select-container }:has(>[#{ $attribute }*=\"gutter-scale: #{ $scale }\"])'} { \n            padding-left: ($gutter * $amount);\n            padding-right: ($gutter * $amount);\n          }\n        }\n      }\n    }\n    // Select the attribute with matching column count\n    #{ $select-grid } {\n      // Defaults for grid an item\n      display: flex;\n      flex-flow: row wrap;\n      align-items: stretch;\n      margin-left: -$gutter;\n      margin-right: -$gutter;\n\n      > #{ $select-item } {\n        float: left; // Fallback\n        padding-left: $gutter;\n        padding-right: $gutter;\n      }\n      > #{'[#{ $attribute-item }*=\"sticky: top\"]'} {\n        position: sticky;\n        align-self: start;\n        top: $sticky-top;\n      }\n      > #{'[#{ $attribute-item }*=\"sticky: bottom\"]'} {\n        position: sticky;\n        align-self: end;\n        bottom: $sticky-bottom;\n      }\n\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            margin-left: -($gutter * $amount);\n            margin-right: -($gutter * $amount);\n\n            > #{ $select-item } {\n              padding-left: $gutter * $amount;\n              padding-right: $gutter * $amount;\n            }\n          }\n        }\n      }\n      \n      // Alignment options\n      &#{'[#{ $attribute }*=\"justify: center\"]'} { \n        justify-content: center;  \n      }\n      &#{'[#{ $attribute }*=\"justify: end\"]'} { \n        justify-content: flex-end;  \n      }\n      &#{'[#{ $attribute }*=\"align: center\"]'} { \n        align-items: center;  \n      }\n      &#{'[#{ $attribute }*=\"align: end\"]'} { \n        align-items: flex-end;\n      }\n      &#{'[#{ $attribute }*=\"align: start\"]'} { \n        align-items: flex-start; \n      }\n      // Alignment of the children when using stretch\n      // - There is no stetch-start (that's defualt);\n      // - There is no stetch-middle (that's covered by stretch-);\n      &#{'[#{ $attribute }*=\"align: stretch-\"]'} { \n        // set the child to display as a single flex item\n        > #{ $select-item } {\n          display: flex;\n          flex-direction: column;\n          justify-content: center;\n        }\n      }\n      &#{'[#{ $attribute }*=\"align: stretch-end\"]'} { \n        > #{ $select-item } {\n          justify-content: flex-end;\n        }\n      }\n      // Other options\n      &#{ $select-gutter-false } { \n        margin-left: 0;\n        margin-right: 0;\n        > #{ $select-item } {\n          padding-left: 0;\n          padding-right: 0;\n        }\n      }\n      // Activate Rules\n      &#{'[#{ $attribute }*=\"rules-column:\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-col } {\n            content: '';\n          }\n        }\n      }\n      &#{'[#{ $attribute }*=\"rules-row:\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-row } {\n            content: '';\n          }\n        }\n      }\n      // Override first or last column removing the rule using matching specificity\n      &#{'[#{ $attribute }*=\"rules-column:\"][#{ $attribute }*=\"rules-column-ends: true\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-col } {\n            content: '';\n          }\n        }\n      }\n      // Generated props for item\n      @include -create-column-widths(\n        $columns: $columns,\n        $attribute-item: $attribute-item,\n        $suffix: ''\n      );\n      @include -create-column-offsets(\n        $columns: $columns,\n        $attribute-item: $attribute-item,\n        $suffix: ''\n      );\n    }\n  }\n  @if $extra-breakpoints {\n    @each $name, $options in $extra-breakpoints {\n      $g: map.get($options, \"gutter\");\n      @include -create-extra-breakpoint(\n        $name: $name, \n        $breakpoint: map.get($options, \"breakpoint\"),\n        $gutter: utils.fallback($g, $gutter),\n        $columns: $columns,\n        $attribute: $attribute,\n        $attribute-item: $attribute-item,\n        $select-grid: $select-grid,\n        $select-item: $select-item,\n        $extra-gutter-scales: $extra-gutter-scales,\n        $include-container: $include-container,\n        $select-container: $select-container,\n        $container-gutter-scales: $container-gutter-scales\n      );\n    }\n  }\n  @if $extra-rule-styles {\n    @each $name, $options in $extra-rule-styles {\n      $color: utils.require-map-get($options, \"color\", \"grid [extra rule style]\");\n      $size: utils.require-map-get($options, \"size\", \"grid [extra rule style]\");\n      #{ $select-grid } {\n\n        &#{'[#{ $attribute }*=\"rules-column-style: #{ $name }\"]'} {\n          > #{ $select-item } {\n            &#{ $select-rule-col } {\n              background-color: color.get($color);\n              width: $size;\n            }\n          }\n          @include -create-rule-col-position(\n            $position: \"left\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-col: $select-rule-col, \n            $end-class: false\n          );\n          @include -create-rule-col-position(\n            $position: \"right\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-col: $select-rule-col, \n            $end-class: false\n          );\n        }\n        &#{'[#{ $attribute }*=\"rules-row-style: #{ $name }\"]'} {\n          > #{ $select-item } {\n            &#{ $select-rule-row } {\n              background-color: color.get($color);\n              height: $size;\n            }\n          }\n          @include -create-rule-row-position(\n            $position: \"top\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: false\n          );\n          @include -create-rule-row-position(\n            $position: \"bottom\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: false\n          );\n          @include -create-rule-row-position(\n            $position: \"bottom\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: true\n          );\n        }\n      }\n    }\n  }\n\n  // Disable grid rules until init attribute it present (from positioning script)\n  // - In order to keep the rules for this compact it will only hide them if the init\n  //   is not present\n  \n  @if ($rule-fade-duration) {\n    #{ $select-grid-not-init } {\n      > #{ $select-item } {\n        &#{ $select-rule-col },\n        &#{ $select-rule-row } {\n          opacity: 0 !important;\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 138,
                "end": 609
              }
            }
          },
          {
            "description": "Output data grid styles\n- Can be used instead of styles() to have full control over options or for alternate grids (grids with different settings/column count) \n",
            "context": {
              "type": "mixin",
              "name": "create",
              "code": "\n  $attribute-item: \"#{ $attribute }-item\";\n  $select-grid: '[#{ $attribute }*=\"columns: #{ $columns }\"]';\n  $select-grid-not-init: '[#{ $attribute }]:not([#{ $attribute-init }])';\n  $select-item: '[#{ $attribute-item }]';\n  $select-rule-col: \"::before\";\n  $select-rule-row: \"::after\";\n  $select-container: \"[#{ $container-attribute }]\";\n  // These through off syntax highlighting when inside interpolation\n  $position-class-column-first: get(\"position-class-column-first\");\n  $position-class-column-last: get(\"position-class-column-last\");\n  $position-class-row-first: get(\"position-class-row-first\");\n  $position-class-row-last: get(\"position-class-row-last\");\n\n  #{ $select-grid } {\n    @include layout.clearfix(); // For legacy browsers\n\n    // Ensure empty elements still take up space in layout\n    > #{ $select-item } {\n      min-height: 1px; \n      width: 100%;\n    }\n    // This is for value of true and also covers all options below\n    &#{'[#{ $attribute }*=\"gutters-row:\"]'} { \n      > #{ $select-item } {\n        padding-top:  $gutter;\n        padding-bottom: $gutter;\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              padding-top:  $gutter * $amount;\n              padding-bottom: $gutter * $amount;\n            }\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: top\"]'} { \n      > #{ $select-item } {\n        &.#{ $position-class-row-last } {\n          padding-bottom: 0;\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: bottom\"]'} { \n      > #{ $select-item } {\n        &.#{ $position-class-row-first } {\n          padding-top: 0;\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: fit\"]'} { \n      margin-top: -$gutter;\n      margin-bottom: -$gutter;\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            margin-top: -($gutter * $amount);\n            margin-bottom: -($gutter * $amount);\n          }\n        }\n      }\n    }\n    // Rules: Applies to both column and row\n    &#{'[#{ $attribute }*=\"rules\"]'} { \n      > #{ $select-item } {\n        position: relative;\n        @if ($rule-fade-duration) {\n          &#{ $select-rule-col },\n          &#{ $select-rule-row } {\n            // For when grid init fades them in\n            opacity: 1;\n            transition: opacity $rule-fade-duration ease-in; \n          }\n        }\n      }\n    }\n    // Rules: Row\n    &#{'[#{ $attribute }*=\"rules-row:\"]'} { \n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          position: absolute;\n          left: 0;\n          right: 0;\n          height: $rule-size;\n          background: color.get($rule-color);\n        }\n      }\n    }\n    // Rules: Column\n    &#{'[#{ $attribute }*=\"rules-column:\"]'} { \n      > #{ $select-item } {\n        &#{ $select-rule-col } {\n          position: absolute;\n          top: 0;\n          bottom: 0;\n          width: $rule-size;\n          background: color.get($rule-color);\n        }\n      }\n    }\n    // Options for the left or right\n    @include -create-rule-col-position(\n      $position: \"left\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-col: $select-rule-col, \n      $end-class: $position-class-column-first\n    );\n    @include -create-rule-col-position(\n      $position: \"right\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-col: $select-rule-col, \n      $end-class: $position-class-column-last\n    );\n    &#{'[#{ $attribute }*=\"rules-column-align: gutter\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-col } {\n          top: $gutter;\n          bottom: $gutter;\n        }\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              &#{ $select-rule-col } {\n                top: $gutter * $amount;\n                bottom: $gutter * $amount;\n              }\n            }\n          }\n        }\n      }\n    }\n    // Options for the left or right\n    @include -create-rule-row-position(\n      $position: \"top\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-row: $select-rule-row, \n      $between: false\n    );\n    @include -create-rule-row-position(\n      $position: \"bottom\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-row: $select-rule-row, \n      $between: false\n    );\n\n    &#{'[#{ $attribute }*=\"rules-row: between\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          bottom: math.floor(math.div($rule-size, 2)) * -1;\n        }\n        // For removing the rule per row (via equal heights for now)\n        &.#{ $position-class-row-last } {\n          &#{ $select-rule-row } {\n            content: none !important;\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"rules-row-align: gutter\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          @include breakpoint.min($breakpoint) {\n            left: $gutter;\n            right: $gutter;\n          }\n        }\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              &#{ $select-rule-row } {\n                @include breakpoint.min($breakpoint) {\n                  left: $gutter * $amount;\n                  right: $gutter * $amount;\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"rules-row-persist: true\"]'},\n    &#{'[#{ $attribute }*=\"rules-row-stacked-only: true\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          content: '';\n        }\n      }\n    }\n    // IE for mobile/small (non grid / stacked)\n    &#{'[#{ $attribute }*=\"rules-row-stacked-only: true\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          @include breakpoint.min($breakpoint) {\n            content: none !important;\n          }\n        }\n      }\n    }\n  }\n\n  @include breakpoint.min($breakpoint) {\n\n    $select-gutter-false: '[#{ $attribute }*=\"gutters: false\"]';\n    $select-gutter-false-child: '#{ $select-container }:has(>#{ $select-gutter-false })';\n\n    @if $include-container {\n      #{ $select-container } {\n        padding-left: $gutter;\n        padding-right: $gutter;\n      }\n      #{ $select-gutter-false-child } {\n        padding-left: 0;\n        padding-right: 0;\n      }\n      @if $extra-gutter-scales and $container-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          #{'#{ $select-container }:has(>[#{ $attribute }*=\"gutter-scale: #{ $scale }\"])'} { \n            padding-left: ($gutter * $amount);\n            padding-right: ($gutter * $amount);\n          }\n        }\n      }\n    }\n    // Select the attribute with matching column count\n    #{ $select-grid } {\n      // Defaults for grid an item\n      display: flex;\n      flex-flow: row wrap;\n      align-items: stretch;\n      margin-left: -$gutter;\n      margin-right: -$gutter;\n\n      > #{ $select-item } {\n        float: left; // Fallback\n        padding-left: $gutter;\n        padding-right: $gutter;\n      }\n      > #{'[#{ $attribute-item }*=\"sticky: top\"]'} {\n        position: sticky;\n        align-self: start;\n        top: $sticky-top;\n      }\n      > #{'[#{ $attribute-item }*=\"sticky: bottom\"]'} {\n        position: sticky;\n        align-self: end;\n        bottom: $sticky-bottom;\n      }\n\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            margin-left: -($gutter * $amount);\n            margin-right: -($gutter * $amount);\n\n            > #{ $select-item } {\n              padding-left: $gutter * $amount;\n              padding-right: $gutter * $amount;\n            }\n          }\n        }\n      }\n      \n      // Alignment options\n      &#{'[#{ $attribute }*=\"justify: center\"]'} { \n        justify-content: center;  \n      }\n      &#{'[#{ $attribute }*=\"justify: end\"]'} { \n        justify-content: flex-end;  \n      }\n      &#{'[#{ $attribute }*=\"align: center\"]'} { \n        align-items: center;  \n      }\n      &#{'[#{ $attribute }*=\"align: end\"]'} { \n        align-items: flex-end;\n      }\n      &#{'[#{ $attribute }*=\"align: start\"]'} { \n        align-items: flex-start; \n      }\n      // Alignment of the children when using stretch\n      // - There is no stetch-start (that's defualt);\n      // - There is no stetch-middle (that's covered by stretch-);\n      &#{'[#{ $attribute }*=\"align: stretch-\"]'} { \n        // set the child to display as a single flex item\n        > #{ $select-item } {\n          display: flex;\n          flex-direction: column;\n          justify-content: center;\n        }\n      }\n      &#{'[#{ $attribute }*=\"align: stretch-end\"]'} { \n        > #{ $select-item } {\n          justify-content: flex-end;\n        }\n      }\n      // Other options\n      &#{ $select-gutter-false } { \n        margin-left: 0;\n        margin-right: 0;\n        > #{ $select-item } {\n          padding-left: 0;\n          padding-right: 0;\n        }\n      }\n      // Activate Rules\n      &#{'[#{ $attribute }*=\"rules-column:\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-col } {\n            content: '';\n          }\n        }\n      }\n      &#{'[#{ $attribute }*=\"rules-row:\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-row } {\n            content: '';\n          }\n        }\n      }\n      // Override first or last column removing the rule using matching specificity\n      &#{'[#{ $attribute }*=\"rules-column:\"][#{ $attribute }*=\"rules-column-ends: true\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-col } {\n            content: '';\n          }\n        }\n      }\n      // Generated props for item\n      @include -create-column-widths(\n        $columns: $columns,\n        $attribute-item: $attribute-item,\n        $suffix: ''\n      );\n      @include -create-column-offsets(\n        $columns: $columns,\n        $attribute-item: $attribute-item,\n        $suffix: ''\n      );\n    }\n  }\n  @if $extra-breakpoints {\n    @each $name, $options in $extra-breakpoints {\n      $g: map.get($options, \"gutter\");\n      @include -create-extra-breakpoint(\n        $name: $name, \n        $breakpoint: map.get($options, \"breakpoint\"),\n        $gutter: utils.fallback($g, $gutter),\n        $columns: $columns,\n        $attribute: $attribute,\n        $attribute-item: $attribute-item,\n        $select-grid: $select-grid,\n        $select-item: $select-item,\n        $extra-gutter-scales: $extra-gutter-scales,\n        $include-container: $include-container,\n        $select-container: $select-container,\n        $container-gutter-scales: $container-gutter-scales\n      );\n    }\n  }\n  @if $extra-rule-styles {\n    @each $name, $options in $extra-rule-styles {\n      $color: utils.require-map-get($options, \"color\", \"grid [extra rule style]\");\n      $size: utils.require-map-get($options, \"size\", \"grid [extra rule style]\");\n      #{ $select-grid } {\n\n        &#{'[#{ $attribute }*=\"rules-column-style: #{ $name }\"]'} {\n          > #{ $select-item } {\n            &#{ $select-rule-col } {\n              background-color: color.get($color);\n              width: $size;\n            }\n          }\n          @include -create-rule-col-position(\n            $position: \"left\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-col: $select-rule-col, \n            $end-class: false\n          );\n          @include -create-rule-col-position(\n            $position: \"right\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-col: $select-rule-col, \n            $end-class: false\n          );\n        }\n        &#{'[#{ $attribute }*=\"rules-row-style: #{ $name }\"]'} {\n          > #{ $select-item } {\n            &#{ $select-rule-row } {\n              background-color: color.get($color);\n              height: $size;\n            }\n          }\n          @include -create-rule-row-position(\n            $position: \"top\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: false\n          );\n          @include -create-rule-row-position(\n            $position: \"bottom\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: false\n          );\n          @include -create-rule-row-position(\n            $position: \"bottom\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: true\n          );\n        }\n      }\n    }\n  }\n\n  // Disable grid rules until init attribute it present (from positioning script)\n  // - In order to keep the rules for this compact it will only hide them if the init\n  //   is not present\n  \n  @if ($rule-fade-duration) {\n    #{ $select-grid-not-init } {\n      > #{ $select-item } {\n        &#{ $select-rule-col },\n        &#{ $select-rule-row } {\n          opacity: 0 !important;\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 138,
                "end": 609
              }
            }
          },
          {
            "description": "Output data grid styles\n- Can be used instead of styles() to have full control over options or for alternate grids (grids with different settings/column count) \n",
            "context": {
              "type": "mixin",
              "name": "create",
              "code": "\n  $attribute-item: \"#{ $attribute }-item\";\n  $select-grid: '[#{ $attribute }*=\"columns: #{ $columns }\"]';\n  $select-grid-not-init: '[#{ $attribute }]:not([#{ $attribute-init }])';\n  $select-item: '[#{ $attribute-item }]';\n  $select-rule-col: \"::before\";\n  $select-rule-row: \"::after\";\n  $select-container: \"[#{ $container-attribute }]\";\n  // These through off syntax highlighting when inside interpolation\n  $position-class-column-first: get(\"position-class-column-first\");\n  $position-class-column-last: get(\"position-class-column-last\");\n  $position-class-row-first: get(\"position-class-row-first\");\n  $position-class-row-last: get(\"position-class-row-last\");\n\n  #{ $select-grid } {\n    @include layout.clearfix(); // For legacy browsers\n\n    // Ensure empty elements still take up space in layout\n    > #{ $select-item } {\n      min-height: 1px; \n      width: 100%;\n    }\n    // This is for value of true and also covers all options below\n    &#{'[#{ $attribute }*=\"gutters-row:\"]'} { \n      > #{ $select-item } {\n        padding-top:  $gutter;\n        padding-bottom: $gutter;\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              padding-top:  $gutter * $amount;\n              padding-bottom: $gutter * $amount;\n            }\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: top\"]'} { \n      > #{ $select-item } {\n        &.#{ $position-class-row-last } {\n          padding-bottom: 0;\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: bottom\"]'} { \n      > #{ $select-item } {\n        &.#{ $position-class-row-first } {\n          padding-top: 0;\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: fit\"]'} { \n      margin-top: -$gutter;\n      margin-bottom: -$gutter;\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            margin-top: -($gutter * $amount);\n            margin-bottom: -($gutter * $amount);\n          }\n        }\n      }\n    }\n    // Rules: Applies to both column and row\n    &#{'[#{ $attribute }*=\"rules\"]'} { \n      > #{ $select-item } {\n        position: relative;\n        @if ($rule-fade-duration) {\n          &#{ $select-rule-col },\n          &#{ $select-rule-row } {\n            // For when grid init fades them in\n            opacity: 1;\n            transition: opacity $rule-fade-duration ease-in; \n          }\n        }\n      }\n    }\n    // Rules: Row\n    &#{'[#{ $attribute }*=\"rules-row:\"]'} { \n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          position: absolute;\n          left: 0;\n          right: 0;\n          height: $rule-size;\n          background: color.get($rule-color);\n        }\n      }\n    }\n    // Rules: Column\n    &#{'[#{ $attribute }*=\"rules-column:\"]'} { \n      > #{ $select-item } {\n        &#{ $select-rule-col } {\n          position: absolute;\n          top: 0;\n          bottom: 0;\n          width: $rule-size;\n          background: color.get($rule-color);\n        }\n      }\n    }\n    // Options for the left or right\n    @include -create-rule-col-position(\n      $position: \"left\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-col: $select-rule-col, \n      $end-class: $position-class-column-first\n    );\n    @include -create-rule-col-position(\n      $position: \"right\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-col: $select-rule-col, \n      $end-class: $position-class-column-last\n    );\n    &#{'[#{ $attribute }*=\"rules-column-align: gutter\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-col } {\n          top: $gutter;\n          bottom: $gutter;\n        }\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              &#{ $select-rule-col } {\n                top: $gutter * $amount;\n                bottom: $gutter * $amount;\n              }\n            }\n          }\n        }\n      }\n    }\n    // Options for the left or right\n    @include -create-rule-row-position(\n      $position: \"top\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-row: $select-rule-row, \n      $between: false\n    );\n    @include -create-rule-row-position(\n      $position: \"bottom\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-row: $select-rule-row, \n      $between: false\n    );\n\n    &#{'[#{ $attribute }*=\"rules-row: between\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          bottom: math.floor(math.div($rule-size, 2)) * -1;\n        }\n        // For removing the rule per row (via equal heights for now)\n        &.#{ $position-class-row-last } {\n          &#{ $select-rule-row } {\n            content: none !important;\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"rules-row-align: gutter\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          @include breakpoint.min($breakpoint) {\n            left: $gutter;\n            right: $gutter;\n          }\n        }\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              &#{ $select-rule-row } {\n                @include breakpoint.min($breakpoint) {\n                  left: $gutter * $amount;\n                  right: $gutter * $amount;\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"rules-row-persist: true\"]'},\n    &#{'[#{ $attribute }*=\"rules-row-stacked-only: true\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          content: '';\n        }\n      }\n    }\n    // IE for mobile/small (non grid / stacked)\n    &#{'[#{ $attribute }*=\"rules-row-stacked-only: true\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          @include breakpoint.min($breakpoint) {\n            content: none !important;\n          }\n        }\n      }\n    }\n  }\n\n  @include breakpoint.min($breakpoint) {\n\n    $select-gutter-false: '[#{ $attribute }*=\"gutters: false\"]';\n    $select-gutter-false-child: '#{ $select-container }:has(>#{ $select-gutter-false })';\n\n    @if $include-container {\n      #{ $select-container } {\n        padding-left: $gutter;\n        padding-right: $gutter;\n      }\n      #{ $select-gutter-false-child } {\n        padding-left: 0;\n        padding-right: 0;\n      }\n      @if $extra-gutter-scales and $container-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          #{'#{ $select-container }:has(>[#{ $attribute }*=\"gutter-scale: #{ $scale }\"])'} { \n            padding-left: ($gutter * $amount);\n            padding-right: ($gutter * $amount);\n          }\n        }\n      }\n    }\n    // Select the attribute with matching column count\n    #{ $select-grid } {\n      // Defaults for grid an item\n      display: flex;\n      flex-flow: row wrap;\n      align-items: stretch;\n      margin-left: -$gutter;\n      margin-right: -$gutter;\n\n      > #{ $select-item } {\n        float: left; // Fallback\n        padding-left: $gutter;\n        padding-right: $gutter;\n      }\n      > #{'[#{ $attribute-item }*=\"sticky: top\"]'} {\n        position: sticky;\n        align-self: start;\n        top: $sticky-top;\n      }\n      > #{'[#{ $attribute-item }*=\"sticky: bottom\"]'} {\n        position: sticky;\n        align-self: end;\n        bottom: $sticky-bottom;\n      }\n\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            margin-left: -($gutter * $amount);\n            margin-right: -($gutter * $amount);\n\n            > #{ $select-item } {\n              padding-left: $gutter * $amount;\n              padding-right: $gutter * $amount;\n            }\n          }\n        }\n      }\n      \n      // Alignment options\n      &#{'[#{ $attribute }*=\"justify: center\"]'} { \n        justify-content: center;  \n      }\n      &#{'[#{ $attribute }*=\"justify: end\"]'} { \n        justify-content: flex-end;  \n      }\n      &#{'[#{ $attribute }*=\"align: center\"]'} { \n        align-items: center;  \n      }\n      &#{'[#{ $attribute }*=\"align: end\"]'} { \n        align-items: flex-end;\n      }\n      &#{'[#{ $attribute }*=\"align: start\"]'} { \n        align-items: flex-start; \n      }\n      // Alignment of the children when using stretch\n      // - There is no stetch-start (that's defualt);\n      // - There is no stetch-middle (that's covered by stretch-);\n      &#{'[#{ $attribute }*=\"align: stretch-\"]'} { \n        // set the child to display as a single flex item\n        > #{ $select-item } {\n          display: flex;\n          flex-direction: column;\n          justify-content: center;\n        }\n      }\n      &#{'[#{ $attribute }*=\"align: stretch-end\"]'} { \n        > #{ $select-item } {\n          justify-content: flex-end;\n        }\n      }\n      // Other options\n      &#{ $select-gutter-false } { \n        margin-left: 0;\n        margin-right: 0;\n        > #{ $select-item } {\n          padding-left: 0;\n          padding-right: 0;\n        }\n      }\n      // Activate Rules\n      &#{'[#{ $attribute }*=\"rules-column:\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-col } {\n            content: '';\n          }\n        }\n      }\n      &#{'[#{ $attribute }*=\"rules-row:\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-row } {\n            content: '';\n          }\n        }\n      }\n      // Override first or last column removing the rule using matching specificity\n      &#{'[#{ $attribute }*=\"rules-column:\"][#{ $attribute }*=\"rules-column-ends: true\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-col } {\n            content: '';\n          }\n        }\n      }\n      // Generated props for item\n      @include -create-column-widths(\n        $columns: $columns,\n        $attribute-item: $attribute-item,\n        $suffix: ''\n      );\n      @include -create-column-offsets(\n        $columns: $columns,\n        $attribute-item: $attribute-item,\n        $suffix: ''\n      );\n    }\n  }\n  @if $extra-breakpoints {\n    @each $name, $options in $extra-breakpoints {\n      $g: map.get($options, \"gutter\");\n      @include -create-extra-breakpoint(\n        $name: $name, \n        $breakpoint: map.get($options, \"breakpoint\"),\n        $gutter: utils.fallback($g, $gutter),\n        $columns: $columns,\n        $attribute: $attribute,\n        $attribute-item: $attribute-item,\n        $select-grid: $select-grid,\n        $select-item: $select-item,\n        $extra-gutter-scales: $extra-gutter-scales,\n        $include-container: $include-container,\n        $select-container: $select-container,\n        $container-gutter-scales: $container-gutter-scales\n      );\n    }\n  }\n  @if $extra-rule-styles {\n    @each $name, $options in $extra-rule-styles {\n      $color: utils.require-map-get($options, \"color\", \"grid [extra rule style]\");\n      $size: utils.require-map-get($options, \"size\", \"grid [extra rule style]\");\n      #{ $select-grid } {\n\n        &#{'[#{ $attribute }*=\"rules-column-style: #{ $name }\"]'} {\n          > #{ $select-item } {\n            &#{ $select-rule-col } {\n              background-color: color.get($color);\n              width: $size;\n            }\n          }\n          @include -create-rule-col-position(\n            $position: \"left\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-col: $select-rule-col, \n            $end-class: false\n          );\n          @include -create-rule-col-position(\n            $position: \"right\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-col: $select-rule-col, \n            $end-class: false\n          );\n        }\n        &#{'[#{ $attribute }*=\"rules-row-style: #{ $name }\"]'} {\n          > #{ $select-item } {\n            &#{ $select-rule-row } {\n              background-color: color.get($color);\n              height: $size;\n            }\n          }\n          @include -create-rule-row-position(\n            $position: \"top\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: false\n          );\n          @include -create-rule-row-position(\n            $position: \"bottom\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: false\n          );\n          @include -create-rule-row-position(\n            $position: \"bottom\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: true\n          );\n        }\n      }\n    }\n  }\n\n  // Disable grid rules until init attribute it present (from positioning script)\n  // - In order to keep the rules for this compact it will only hide them if the init\n  //   is not present\n  \n  @if ($rule-fade-duration) {\n    #{ $select-grid-not-init } {\n      > #{ $select-item } {\n        &#{ $select-rule-col },\n        &#{ $select-rule-row } {\n          opacity: 0 !important;\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 138,
                "end": 609
              }
            }
          },
          {
            "description": "Output data grid styles\n- Can be used instead of styles() to have full control over options or for alternate grids (grids with different settings/column count) \n",
            "context": {
              "type": "mixin",
              "name": "create",
              "code": "\n  $attribute-item: \"#{ $attribute }-item\";\n  $select-grid: '[#{ $attribute }*=\"columns: #{ $columns }\"]';\n  $select-grid-not-init: '[#{ $attribute }]:not([#{ $attribute-init }])';\n  $select-item: '[#{ $attribute-item }]';\n  $select-rule-col: \"::before\";\n  $select-rule-row: \"::after\";\n  $select-container: \"[#{ $container-attribute }]\";\n  // These through off syntax highlighting when inside interpolation\n  $position-class-column-first: get(\"position-class-column-first\");\n  $position-class-column-last: get(\"position-class-column-last\");\n  $position-class-row-first: get(\"position-class-row-first\");\n  $position-class-row-last: get(\"position-class-row-last\");\n\n  #{ $select-grid } {\n    @include layout.clearfix(); // For legacy browsers\n\n    // Ensure empty elements still take up space in layout\n    > #{ $select-item } {\n      min-height: 1px; \n      width: 100%;\n    }\n    // This is for value of true and also covers all options below\n    &#{'[#{ $attribute }*=\"gutters-row:\"]'} { \n      > #{ $select-item } {\n        padding-top:  $gutter;\n        padding-bottom: $gutter;\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              padding-top:  $gutter * $amount;\n              padding-bottom: $gutter * $amount;\n            }\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: top\"]'} { \n      > #{ $select-item } {\n        &.#{ $position-class-row-last } {\n          padding-bottom: 0;\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: bottom\"]'} { \n      > #{ $select-item } {\n        &.#{ $position-class-row-first } {\n          padding-top: 0;\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: fit\"]'} { \n      margin-top: -$gutter;\n      margin-bottom: -$gutter;\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            margin-top: -($gutter * $amount);\n            margin-bottom: -($gutter * $amount);\n          }\n        }\n      }\n    }\n    // Rules: Applies to both column and row\n    &#{'[#{ $attribute }*=\"rules\"]'} { \n      > #{ $select-item } {\n        position: relative;\n        @if ($rule-fade-duration) {\n          &#{ $select-rule-col },\n          &#{ $select-rule-row } {\n            // For when grid init fades them in\n            opacity: 1;\n            transition: opacity $rule-fade-duration ease-in; \n          }\n        }\n      }\n    }\n    // Rules: Row\n    &#{'[#{ $attribute }*=\"rules-row:\"]'} { \n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          position: absolute;\n          left: 0;\n          right: 0;\n          height: $rule-size;\n          background: color.get($rule-color);\n        }\n      }\n    }\n    // Rules: Column\n    &#{'[#{ $attribute }*=\"rules-column:\"]'} { \n      > #{ $select-item } {\n        &#{ $select-rule-col } {\n          position: absolute;\n          top: 0;\n          bottom: 0;\n          width: $rule-size;\n          background: color.get($rule-color);\n        }\n      }\n    }\n    // Options for the left or right\n    @include -create-rule-col-position(\n      $position: \"left\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-col: $select-rule-col, \n      $end-class: $position-class-column-first\n    );\n    @include -create-rule-col-position(\n      $position: \"right\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-col: $select-rule-col, \n      $end-class: $position-class-column-last\n    );\n    &#{'[#{ $attribute }*=\"rules-column-align: gutter\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-col } {\n          top: $gutter;\n          bottom: $gutter;\n        }\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              &#{ $select-rule-col } {\n                top: $gutter * $amount;\n                bottom: $gutter * $amount;\n              }\n            }\n          }\n        }\n      }\n    }\n    // Options for the left or right\n    @include -create-rule-row-position(\n      $position: \"top\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-row: $select-rule-row, \n      $between: false\n    );\n    @include -create-rule-row-position(\n      $position: \"bottom\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-row: $select-rule-row, \n      $between: false\n    );\n\n    &#{'[#{ $attribute }*=\"rules-row: between\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          bottom: math.floor(math.div($rule-size, 2)) * -1;\n        }\n        // For removing the rule per row (via equal heights for now)\n        &.#{ $position-class-row-last } {\n          &#{ $select-rule-row } {\n            content: none !important;\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"rules-row-align: gutter\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          @include breakpoint.min($breakpoint) {\n            left: $gutter;\n            right: $gutter;\n          }\n        }\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              &#{ $select-rule-row } {\n                @include breakpoint.min($breakpoint) {\n                  left: $gutter * $amount;\n                  right: $gutter * $amount;\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"rules-row-persist: true\"]'},\n    &#{'[#{ $attribute }*=\"rules-row-stacked-only: true\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          content: '';\n        }\n      }\n    }\n    // IE for mobile/small (non grid / stacked)\n    &#{'[#{ $attribute }*=\"rules-row-stacked-only: true\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          @include breakpoint.min($breakpoint) {\n            content: none !important;\n          }\n        }\n      }\n    }\n  }\n\n  @include breakpoint.min($breakpoint) {\n\n    $select-gutter-false: '[#{ $attribute }*=\"gutters: false\"]';\n    $select-gutter-false-child: '#{ $select-container }:has(>#{ $select-gutter-false })';\n\n    @if $include-container {\n      #{ $select-container } {\n        padding-left: $gutter;\n        padding-right: $gutter;\n      }\n      #{ $select-gutter-false-child } {\n        padding-left: 0;\n        padding-right: 0;\n      }\n      @if $extra-gutter-scales and $container-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          #{'#{ $select-container }:has(>[#{ $attribute }*=\"gutter-scale: #{ $scale }\"])'} { \n            padding-left: ($gutter * $amount);\n            padding-right: ($gutter * $amount);\n          }\n        }\n      }\n    }\n    // Select the attribute with matching column count\n    #{ $select-grid } {\n      // Defaults for grid an item\n      display: flex;\n      flex-flow: row wrap;\n      align-items: stretch;\n      margin-left: -$gutter;\n      margin-right: -$gutter;\n\n      > #{ $select-item } {\n        float: left; // Fallback\n        padding-left: $gutter;\n        padding-right: $gutter;\n      }\n      > #{'[#{ $attribute-item }*=\"sticky: top\"]'} {\n        position: sticky;\n        align-self: start;\n        top: $sticky-top;\n      }\n      > #{'[#{ $attribute-item }*=\"sticky: bottom\"]'} {\n        position: sticky;\n        align-self: end;\n        bottom: $sticky-bottom;\n      }\n\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            margin-left: -($gutter * $amount);\n            margin-right: -($gutter * $amount);\n\n            > #{ $select-item } {\n              padding-left: $gutter * $amount;\n              padding-right: $gutter * $amount;\n            }\n          }\n        }\n      }\n      \n      // Alignment options\n      &#{'[#{ $attribute }*=\"justify: center\"]'} { \n        justify-content: center;  \n      }\n      &#{'[#{ $attribute }*=\"justify: end\"]'} { \n        justify-content: flex-end;  \n      }\n      &#{'[#{ $attribute }*=\"align: center\"]'} { \n        align-items: center;  \n      }\n      &#{'[#{ $attribute }*=\"align: end\"]'} { \n        align-items: flex-end;\n      }\n      &#{'[#{ $attribute }*=\"align: start\"]'} { \n        align-items: flex-start; \n      }\n      // Alignment of the children when using stretch\n      // - There is no stetch-start (that's defualt);\n      // - There is no stetch-middle (that's covered by stretch-);\n      &#{'[#{ $attribute }*=\"align: stretch-\"]'} { \n        // set the child to display as a single flex item\n        > #{ $select-item } {\n          display: flex;\n          flex-direction: column;\n          justify-content: center;\n        }\n      }\n      &#{'[#{ $attribute }*=\"align: stretch-end\"]'} { \n        > #{ $select-item } {\n          justify-content: flex-end;\n        }\n      }\n      // Other options\n      &#{ $select-gutter-false } { \n        margin-left: 0;\n        margin-right: 0;\n        > #{ $select-item } {\n          padding-left: 0;\n          padding-right: 0;\n        }\n      }\n      // Activate Rules\n      &#{'[#{ $attribute }*=\"rules-column:\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-col } {\n            content: '';\n          }\n        }\n      }\n      &#{'[#{ $attribute }*=\"rules-row:\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-row } {\n            content: '';\n          }\n        }\n      }\n      // Override first or last column removing the rule using matching specificity\n      &#{'[#{ $attribute }*=\"rules-column:\"][#{ $attribute }*=\"rules-column-ends: true\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-col } {\n            content: '';\n          }\n        }\n      }\n      // Generated props for item\n      @include -create-column-widths(\n        $columns: $columns,\n        $attribute-item: $attribute-item,\n        $suffix: ''\n      );\n      @include -create-column-offsets(\n        $columns: $columns,\n        $attribute-item: $attribute-item,\n        $suffix: ''\n      );\n    }\n  }\n  @if $extra-breakpoints {\n    @each $name, $options in $extra-breakpoints {\n      $g: map.get($options, \"gutter\");\n      @include -create-extra-breakpoint(\n        $name: $name, \n        $breakpoint: map.get($options, \"breakpoint\"),\n        $gutter: utils.fallback($g, $gutter),\n        $columns: $columns,\n        $attribute: $attribute,\n        $attribute-item: $attribute-item,\n        $select-grid: $select-grid,\n        $select-item: $select-item,\n        $extra-gutter-scales: $extra-gutter-scales,\n        $include-container: $include-container,\n        $select-container: $select-container,\n        $container-gutter-scales: $container-gutter-scales\n      );\n    }\n  }\n  @if $extra-rule-styles {\n    @each $name, $options in $extra-rule-styles {\n      $color: utils.require-map-get($options, \"color\", \"grid [extra rule style]\");\n      $size: utils.require-map-get($options, \"size\", \"grid [extra rule style]\");\n      #{ $select-grid } {\n\n        &#{'[#{ $attribute }*=\"rules-column-style: #{ $name }\"]'} {\n          > #{ $select-item } {\n            &#{ $select-rule-col } {\n              background-color: color.get($color);\n              width: $size;\n            }\n          }\n          @include -create-rule-col-position(\n            $position: \"left\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-col: $select-rule-col, \n            $end-class: false\n          );\n          @include -create-rule-col-position(\n            $position: \"right\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-col: $select-rule-col, \n            $end-class: false\n          );\n        }\n        &#{'[#{ $attribute }*=\"rules-row-style: #{ $name }\"]'} {\n          > #{ $select-item } {\n            &#{ $select-rule-row } {\n              background-color: color.get($color);\n              height: $size;\n            }\n          }\n          @include -create-rule-row-position(\n            $position: \"top\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: false\n          );\n          @include -create-rule-row-position(\n            $position: \"bottom\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: false\n          );\n          @include -create-rule-row-position(\n            $position: \"bottom\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: true\n          );\n        }\n      }\n    }\n  }\n\n  // Disable grid rules until init attribute it present (from positioning script)\n  // - In order to keep the rules for this compact it will only hide them if the init\n  //   is not present\n  \n  @if ($rule-fade-duration) {\n    #{ $select-grid-not-init } {\n      > #{ $select-item } {\n        &#{ $select-rule-col },\n        &#{ $select-rule-row } {\n          opacity: 0 !important;\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 138,
                "end": 609
              }
            }
          },
          {
            "description": "Output data grid styles\n- Can be used instead of styles() to have full control over options or for alternate grids (grids with different settings/column count) \n",
            "context": {
              "type": "mixin",
              "name": "create",
              "code": "\n  $attribute-item: \"#{ $attribute }-item\";\n  $select-grid: '[#{ $attribute }*=\"columns: #{ $columns }\"]';\n  $select-grid-not-init: '[#{ $attribute }]:not([#{ $attribute-init }])';\n  $select-item: '[#{ $attribute-item }]';\n  $select-rule-col: \"::before\";\n  $select-rule-row: \"::after\";\n  $select-container: \"[#{ $container-attribute }]\";\n  // These through off syntax highlighting when inside interpolation\n  $position-class-column-first: get(\"position-class-column-first\");\n  $position-class-column-last: get(\"position-class-column-last\");\n  $position-class-row-first: get(\"position-class-row-first\");\n  $position-class-row-last: get(\"position-class-row-last\");\n\n  #{ $select-grid } {\n    @include layout.clearfix(); // For legacy browsers\n\n    // Ensure empty elements still take up space in layout\n    > #{ $select-item } {\n      min-height: 1px; \n      width: 100%;\n    }\n    // This is for value of true and also covers all options below\n    &#{'[#{ $attribute }*=\"gutters-row:\"]'} { \n      > #{ $select-item } {\n        padding-top:  $gutter;\n        padding-bottom: $gutter;\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              padding-top:  $gutter * $amount;\n              padding-bottom: $gutter * $amount;\n            }\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: top\"]'} { \n      > #{ $select-item } {\n        &.#{ $position-class-row-last } {\n          padding-bottom: 0;\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: bottom\"]'} { \n      > #{ $select-item } {\n        &.#{ $position-class-row-first } {\n          padding-top: 0;\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: fit\"]'} { \n      margin-top: -$gutter;\n      margin-bottom: -$gutter;\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            margin-top: -($gutter * $amount);\n            margin-bottom: -($gutter * $amount);\n          }\n        }\n      }\n    }\n    // Rules: Applies to both column and row\n    &#{'[#{ $attribute }*=\"rules\"]'} { \n      > #{ $select-item } {\n        position: relative;\n        @if ($rule-fade-duration) {\n          &#{ $select-rule-col },\n          &#{ $select-rule-row } {\n            // For when grid init fades them in\n            opacity: 1;\n            transition: opacity $rule-fade-duration ease-in; \n          }\n        }\n      }\n    }\n    // Rules: Row\n    &#{'[#{ $attribute }*=\"rules-row:\"]'} { \n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          position: absolute;\n          left: 0;\n          right: 0;\n          height: $rule-size;\n          background: color.get($rule-color);\n        }\n      }\n    }\n    // Rules: Column\n    &#{'[#{ $attribute }*=\"rules-column:\"]'} { \n      > #{ $select-item } {\n        &#{ $select-rule-col } {\n          position: absolute;\n          top: 0;\n          bottom: 0;\n          width: $rule-size;\n          background: color.get($rule-color);\n        }\n      }\n    }\n    // Options for the left or right\n    @include -create-rule-col-position(\n      $position: \"left\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-col: $select-rule-col, \n      $end-class: $position-class-column-first\n    );\n    @include -create-rule-col-position(\n      $position: \"right\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-col: $select-rule-col, \n      $end-class: $position-class-column-last\n    );\n    &#{'[#{ $attribute }*=\"rules-column-align: gutter\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-col } {\n          top: $gutter;\n          bottom: $gutter;\n        }\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              &#{ $select-rule-col } {\n                top: $gutter * $amount;\n                bottom: $gutter * $amount;\n              }\n            }\n          }\n        }\n      }\n    }\n    // Options for the left or right\n    @include -create-rule-row-position(\n      $position: \"top\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-row: $select-rule-row, \n      $between: false\n    );\n    @include -create-rule-row-position(\n      $position: \"bottom\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-row: $select-rule-row, \n      $between: false\n    );\n\n    &#{'[#{ $attribute }*=\"rules-row: between\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          bottom: math.floor(math.div($rule-size, 2)) * -1;\n        }\n        // For removing the rule per row (via equal heights for now)\n        &.#{ $position-class-row-last } {\n          &#{ $select-rule-row } {\n            content: none !important;\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"rules-row-align: gutter\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          @include breakpoint.min($breakpoint) {\n            left: $gutter;\n            right: $gutter;\n          }\n        }\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              &#{ $select-rule-row } {\n                @include breakpoint.min($breakpoint) {\n                  left: $gutter * $amount;\n                  right: $gutter * $amount;\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"rules-row-persist: true\"]'},\n    &#{'[#{ $attribute }*=\"rules-row-stacked-only: true\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          content: '';\n        }\n      }\n    }\n    // IE for mobile/small (non grid / stacked)\n    &#{'[#{ $attribute }*=\"rules-row-stacked-only: true\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          @include breakpoint.min($breakpoint) {\n            content: none !important;\n          }\n        }\n      }\n    }\n  }\n\n  @include breakpoint.min($breakpoint) {\n\n    $select-gutter-false: '[#{ $attribute }*=\"gutters: false\"]';\n    $select-gutter-false-child: '#{ $select-container }:has(>#{ $select-gutter-false })';\n\n    @if $include-container {\n      #{ $select-container } {\n        padding-left: $gutter;\n        padding-right: $gutter;\n      }\n      #{ $select-gutter-false-child } {\n        padding-left: 0;\n        padding-right: 0;\n      }\n      @if $extra-gutter-scales and $container-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          #{'#{ $select-container }:has(>[#{ $attribute }*=\"gutter-scale: #{ $scale }\"])'} { \n            padding-left: ($gutter * $amount);\n            padding-right: ($gutter * $amount);\n          }\n        }\n      }\n    }\n    // Select the attribute with matching column count\n    #{ $select-grid } {\n      // Defaults for grid an item\n      display: flex;\n      flex-flow: row wrap;\n      align-items: stretch;\n      margin-left: -$gutter;\n      margin-right: -$gutter;\n\n      > #{ $select-item } {\n        float: left; // Fallback\n        padding-left: $gutter;\n        padding-right: $gutter;\n      }\n      > #{'[#{ $attribute-item }*=\"sticky: top\"]'} {\n        position: sticky;\n        align-self: start;\n        top: $sticky-top;\n      }\n      > #{'[#{ $attribute-item }*=\"sticky: bottom\"]'} {\n        position: sticky;\n        align-self: end;\n        bottom: $sticky-bottom;\n      }\n\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            margin-left: -($gutter * $amount);\n            margin-right: -($gutter * $amount);\n\n            > #{ $select-item } {\n              padding-left: $gutter * $amount;\n              padding-right: $gutter * $amount;\n            }\n          }\n        }\n      }\n      \n      // Alignment options\n      &#{'[#{ $attribute }*=\"justify: center\"]'} { \n        justify-content: center;  \n      }\n      &#{'[#{ $attribute }*=\"justify: end\"]'} { \n        justify-content: flex-end;  \n      }\n      &#{'[#{ $attribute }*=\"align: center\"]'} { \n        align-items: center;  \n      }\n      &#{'[#{ $attribute }*=\"align: end\"]'} { \n        align-items: flex-end;\n      }\n      &#{'[#{ $attribute }*=\"align: start\"]'} { \n        align-items: flex-start; \n      }\n      // Alignment of the children when using stretch\n      // - There is no stetch-start (that's defualt);\n      // - There is no stetch-middle (that's covered by stretch-);\n      &#{'[#{ $attribute }*=\"align: stretch-\"]'} { \n        // set the child to display as a single flex item\n        > #{ $select-item } {\n          display: flex;\n          flex-direction: column;\n          justify-content: center;\n        }\n      }\n      &#{'[#{ $attribute }*=\"align: stretch-end\"]'} { \n        > #{ $select-item } {\n          justify-content: flex-end;\n        }\n      }\n      // Other options\n      &#{ $select-gutter-false } { \n        margin-left: 0;\n        margin-right: 0;\n        > #{ $select-item } {\n          padding-left: 0;\n          padding-right: 0;\n        }\n      }\n      // Activate Rules\n      &#{'[#{ $attribute }*=\"rules-column:\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-col } {\n            content: '';\n          }\n        }\n      }\n      &#{'[#{ $attribute }*=\"rules-row:\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-row } {\n            content: '';\n          }\n        }\n      }\n      // Override first or last column removing the rule using matching specificity\n      &#{'[#{ $attribute }*=\"rules-column:\"][#{ $attribute }*=\"rules-column-ends: true\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-col } {\n            content: '';\n          }\n        }\n      }\n      // Generated props for item\n      @include -create-column-widths(\n        $columns: $columns,\n        $attribute-item: $attribute-item,\n        $suffix: ''\n      );\n      @include -create-column-offsets(\n        $columns: $columns,\n        $attribute-item: $attribute-item,\n        $suffix: ''\n      );\n    }\n  }\n  @if $extra-breakpoints {\n    @each $name, $options in $extra-breakpoints {\n      $g: map.get($options, \"gutter\");\n      @include -create-extra-breakpoint(\n        $name: $name, \n        $breakpoint: map.get($options, \"breakpoint\"),\n        $gutter: utils.fallback($g, $gutter),\n        $columns: $columns,\n        $attribute: $attribute,\n        $attribute-item: $attribute-item,\n        $select-grid: $select-grid,\n        $select-item: $select-item,\n        $extra-gutter-scales: $extra-gutter-scales,\n        $include-container: $include-container,\n        $select-container: $select-container,\n        $container-gutter-scales: $container-gutter-scales\n      );\n    }\n  }\n  @if $extra-rule-styles {\n    @each $name, $options in $extra-rule-styles {\n      $color: utils.require-map-get($options, \"color\", \"grid [extra rule style]\");\n      $size: utils.require-map-get($options, \"size\", \"grid [extra rule style]\");\n      #{ $select-grid } {\n\n        &#{'[#{ $attribute }*=\"rules-column-style: #{ $name }\"]'} {\n          > #{ $select-item } {\n            &#{ $select-rule-col } {\n              background-color: color.get($color);\n              width: $size;\n            }\n          }\n          @include -create-rule-col-position(\n            $position: \"left\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-col: $select-rule-col, \n            $end-class: false\n          );\n          @include -create-rule-col-position(\n            $position: \"right\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-col: $select-rule-col, \n            $end-class: false\n          );\n        }\n        &#{'[#{ $attribute }*=\"rules-row-style: #{ $name }\"]'} {\n          > #{ $select-item } {\n            &#{ $select-rule-row } {\n              background-color: color.get($color);\n              height: $size;\n            }\n          }\n          @include -create-rule-row-position(\n            $position: \"top\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: false\n          );\n          @include -create-rule-row-position(\n            $position: \"bottom\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: false\n          );\n          @include -create-rule-row-position(\n            $position: \"bottom\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: true\n          );\n        }\n      }\n    }\n  }\n\n  // Disable grid rules until init attribute it present (from positioning script)\n  // - In order to keep the rules for this compact it will only hide them if the init\n  //   is not present\n  \n  @if ($rule-fade-duration) {\n    #{ $select-grid-not-init } {\n      > #{ $select-item } {\n        &#{ $select-rule-col },\n        &#{ $select-rule-row } {\n          opacity: 0 !important;\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 138,
                "end": 609
              }
            }
          },
          {
            "description": "Output data grid styles\n- Can be used instead of styles() to have full control over options or for alternate grids (grids with different settings/column count) \n",
            "context": {
              "type": "mixin",
              "name": "create",
              "code": "\n  $attribute-item: \"#{ $attribute }-item\";\n  $select-grid: '[#{ $attribute }*=\"columns: #{ $columns }\"]';\n  $select-grid-not-init: '[#{ $attribute }]:not([#{ $attribute-init }])';\n  $select-item: '[#{ $attribute-item }]';\n  $select-rule-col: \"::before\";\n  $select-rule-row: \"::after\";\n  $select-container: \"[#{ $container-attribute }]\";\n  // These through off syntax highlighting when inside interpolation\n  $position-class-column-first: get(\"position-class-column-first\");\n  $position-class-column-last: get(\"position-class-column-last\");\n  $position-class-row-first: get(\"position-class-row-first\");\n  $position-class-row-last: get(\"position-class-row-last\");\n\n  #{ $select-grid } {\n    @include layout.clearfix(); // For legacy browsers\n\n    // Ensure empty elements still take up space in layout\n    > #{ $select-item } {\n      min-height: 1px; \n      width: 100%;\n    }\n    // This is for value of true and also covers all options below\n    &#{'[#{ $attribute }*=\"gutters-row:\"]'} { \n      > #{ $select-item } {\n        padding-top:  $gutter;\n        padding-bottom: $gutter;\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              padding-top:  $gutter * $amount;\n              padding-bottom: $gutter * $amount;\n            }\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: top\"]'} { \n      > #{ $select-item } {\n        &.#{ $position-class-row-last } {\n          padding-bottom: 0;\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: bottom\"]'} { \n      > #{ $select-item } {\n        &.#{ $position-class-row-first } {\n          padding-top: 0;\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: fit\"]'} { \n      margin-top: -$gutter;\n      margin-bottom: -$gutter;\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            margin-top: -($gutter * $amount);\n            margin-bottom: -($gutter * $amount);\n          }\n        }\n      }\n    }\n    // Rules: Applies to both column and row\n    &#{'[#{ $attribute }*=\"rules\"]'} { \n      > #{ $select-item } {\n        position: relative;\n        @if ($rule-fade-duration) {\n          &#{ $select-rule-col },\n          &#{ $select-rule-row } {\n            // For when grid init fades them in\n            opacity: 1;\n            transition: opacity $rule-fade-duration ease-in; \n          }\n        }\n      }\n    }\n    // Rules: Row\n    &#{'[#{ $attribute }*=\"rules-row:\"]'} { \n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          position: absolute;\n          left: 0;\n          right: 0;\n          height: $rule-size;\n          background: color.get($rule-color);\n        }\n      }\n    }\n    // Rules: Column\n    &#{'[#{ $attribute }*=\"rules-column:\"]'} { \n      > #{ $select-item } {\n        &#{ $select-rule-col } {\n          position: absolute;\n          top: 0;\n          bottom: 0;\n          width: $rule-size;\n          background: color.get($rule-color);\n        }\n      }\n    }\n    // Options for the left or right\n    @include -create-rule-col-position(\n      $position: \"left\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-col: $select-rule-col, \n      $end-class: $position-class-column-first\n    );\n    @include -create-rule-col-position(\n      $position: \"right\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-col: $select-rule-col, \n      $end-class: $position-class-column-last\n    );\n    &#{'[#{ $attribute }*=\"rules-column-align: gutter\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-col } {\n          top: $gutter;\n          bottom: $gutter;\n        }\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              &#{ $select-rule-col } {\n                top: $gutter * $amount;\n                bottom: $gutter * $amount;\n              }\n            }\n          }\n        }\n      }\n    }\n    // Options for the left or right\n    @include -create-rule-row-position(\n      $position: \"top\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-row: $select-rule-row, \n      $between: false\n    );\n    @include -create-rule-row-position(\n      $position: \"bottom\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-row: $select-rule-row, \n      $between: false\n    );\n\n    &#{'[#{ $attribute }*=\"rules-row: between\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          bottom: math.floor(math.div($rule-size, 2)) * -1;\n        }\n        // For removing the rule per row (via equal heights for now)\n        &.#{ $position-class-row-last } {\n          &#{ $select-rule-row } {\n            content: none !important;\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"rules-row-align: gutter\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          @include breakpoint.min($breakpoint) {\n            left: $gutter;\n            right: $gutter;\n          }\n        }\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              &#{ $select-rule-row } {\n                @include breakpoint.min($breakpoint) {\n                  left: $gutter * $amount;\n                  right: $gutter * $amount;\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"rules-row-persist: true\"]'},\n    &#{'[#{ $attribute }*=\"rules-row-stacked-only: true\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          content: '';\n        }\n      }\n    }\n    // IE for mobile/small (non grid / stacked)\n    &#{'[#{ $attribute }*=\"rules-row-stacked-only: true\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          @include breakpoint.min($breakpoint) {\n            content: none !important;\n          }\n        }\n      }\n    }\n  }\n\n  @include breakpoint.min($breakpoint) {\n\n    $select-gutter-false: '[#{ $attribute }*=\"gutters: false\"]';\n    $select-gutter-false-child: '#{ $select-container }:has(>#{ $select-gutter-false })';\n\n    @if $include-container {\n      #{ $select-container } {\n        padding-left: $gutter;\n        padding-right: $gutter;\n      }\n      #{ $select-gutter-false-child } {\n        padding-left: 0;\n        padding-right: 0;\n      }\n      @if $extra-gutter-scales and $container-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          #{'#{ $select-container }:has(>[#{ $attribute }*=\"gutter-scale: #{ $scale }\"])'} { \n            padding-left: ($gutter * $amount);\n            padding-right: ($gutter * $amount);\n          }\n        }\n      }\n    }\n    // Select the attribute with matching column count\n    #{ $select-grid } {\n      // Defaults for grid an item\n      display: flex;\n      flex-flow: row wrap;\n      align-items: stretch;\n      margin-left: -$gutter;\n      margin-right: -$gutter;\n\n      > #{ $select-item } {\n        float: left; // Fallback\n        padding-left: $gutter;\n        padding-right: $gutter;\n      }\n      > #{'[#{ $attribute-item }*=\"sticky: top\"]'} {\n        position: sticky;\n        align-self: start;\n        top: $sticky-top;\n      }\n      > #{'[#{ $attribute-item }*=\"sticky: bottom\"]'} {\n        position: sticky;\n        align-self: end;\n        bottom: $sticky-bottom;\n      }\n\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            margin-left: -($gutter * $amount);\n            margin-right: -($gutter * $amount);\n\n            > #{ $select-item } {\n              padding-left: $gutter * $amount;\n              padding-right: $gutter * $amount;\n            }\n          }\n        }\n      }\n      \n      // Alignment options\n      &#{'[#{ $attribute }*=\"justify: center\"]'} { \n        justify-content: center;  \n      }\n      &#{'[#{ $attribute }*=\"justify: end\"]'} { \n        justify-content: flex-end;  \n      }\n      &#{'[#{ $attribute }*=\"align: center\"]'} { \n        align-items: center;  \n      }\n      &#{'[#{ $attribute }*=\"align: end\"]'} { \n        align-items: flex-end;\n      }\n      &#{'[#{ $attribute }*=\"align: start\"]'} { \n        align-items: flex-start; \n      }\n      // Alignment of the children when using stretch\n      // - There is no stetch-start (that's defualt);\n      // - There is no stetch-middle (that's covered by stretch-);\n      &#{'[#{ $attribute }*=\"align: stretch-\"]'} { \n        // set the child to display as a single flex item\n        > #{ $select-item } {\n          display: flex;\n          flex-direction: column;\n          justify-content: center;\n        }\n      }\n      &#{'[#{ $attribute }*=\"align: stretch-end\"]'} { \n        > #{ $select-item } {\n          justify-content: flex-end;\n        }\n      }\n      // Other options\n      &#{ $select-gutter-false } { \n        margin-left: 0;\n        margin-right: 0;\n        > #{ $select-item } {\n          padding-left: 0;\n          padding-right: 0;\n        }\n      }\n      // Activate Rules\n      &#{'[#{ $attribute }*=\"rules-column:\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-col } {\n            content: '';\n          }\n        }\n      }\n      &#{'[#{ $attribute }*=\"rules-row:\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-row } {\n            content: '';\n          }\n        }\n      }\n      // Override first or last column removing the rule using matching specificity\n      &#{'[#{ $attribute }*=\"rules-column:\"][#{ $attribute }*=\"rules-column-ends: true\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-col } {\n            content: '';\n          }\n        }\n      }\n      // Generated props for item\n      @include -create-column-widths(\n        $columns: $columns,\n        $attribute-item: $attribute-item,\n        $suffix: ''\n      );\n      @include -create-column-offsets(\n        $columns: $columns,\n        $attribute-item: $attribute-item,\n        $suffix: ''\n      );\n    }\n  }\n  @if $extra-breakpoints {\n    @each $name, $options in $extra-breakpoints {\n      $g: map.get($options, \"gutter\");\n      @include -create-extra-breakpoint(\n        $name: $name, \n        $breakpoint: map.get($options, \"breakpoint\"),\n        $gutter: utils.fallback($g, $gutter),\n        $columns: $columns,\n        $attribute: $attribute,\n        $attribute-item: $attribute-item,\n        $select-grid: $select-grid,\n        $select-item: $select-item,\n        $extra-gutter-scales: $extra-gutter-scales,\n        $include-container: $include-container,\n        $select-container: $select-container,\n        $container-gutter-scales: $container-gutter-scales\n      );\n    }\n  }\n  @if $extra-rule-styles {\n    @each $name, $options in $extra-rule-styles {\n      $color: utils.require-map-get($options, \"color\", \"grid [extra rule style]\");\n      $size: utils.require-map-get($options, \"size\", \"grid [extra rule style]\");\n      #{ $select-grid } {\n\n        &#{'[#{ $attribute }*=\"rules-column-style: #{ $name }\"]'} {\n          > #{ $select-item } {\n            &#{ $select-rule-col } {\n              background-color: color.get($color);\n              width: $size;\n            }\n          }\n          @include -create-rule-col-position(\n            $position: \"left\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-col: $select-rule-col, \n            $end-class: false\n          );\n          @include -create-rule-col-position(\n            $position: \"right\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-col: $select-rule-col, \n            $end-class: false\n          );\n        }\n        &#{'[#{ $attribute }*=\"rules-row-style: #{ $name }\"]'} {\n          > #{ $select-item } {\n            &#{ $select-rule-row } {\n              background-color: color.get($color);\n              height: $size;\n            }\n          }\n          @include -create-rule-row-position(\n            $position: \"top\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: false\n          );\n          @include -create-rule-row-position(\n            $position: \"bottom\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: false\n          );\n          @include -create-rule-row-position(\n            $position: \"bottom\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: true\n          );\n        }\n      }\n    }\n  }\n\n  // Disable grid rules until init attribute it present (from positioning script)\n  // - In order to keep the rules for this compact it will only hide them if the init\n  //   is not present\n  \n  @if ($rule-fade-duration) {\n    #{ $select-grid-not-init } {\n      > #{ $select-item } {\n        &#{ $select-rule-col },\n        &#{ $select-rule-row } {\n          opacity: 0 !important;\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 138,
                "end": 609
              }
            }
          },
          {
            "description": "Output data grid styles\n- Can be used instead of styles() to have full control over options or for alternate grids (grids with different settings/column count) \n",
            "context": {
              "type": "mixin",
              "name": "create",
              "code": "\n  $attribute-item: \"#{ $attribute }-item\";\n  $select-grid: '[#{ $attribute }*=\"columns: #{ $columns }\"]';\n  $select-grid-not-init: '[#{ $attribute }]:not([#{ $attribute-init }])';\n  $select-item: '[#{ $attribute-item }]';\n  $select-rule-col: \"::before\";\n  $select-rule-row: \"::after\";\n  $select-container: \"[#{ $container-attribute }]\";\n  // These through off syntax highlighting when inside interpolation\n  $position-class-column-first: get(\"position-class-column-first\");\n  $position-class-column-last: get(\"position-class-column-last\");\n  $position-class-row-first: get(\"position-class-row-first\");\n  $position-class-row-last: get(\"position-class-row-last\");\n\n  #{ $select-grid } {\n    @include layout.clearfix(); // For legacy browsers\n\n    // Ensure empty elements still take up space in layout\n    > #{ $select-item } {\n      min-height: 1px; \n      width: 100%;\n    }\n    // This is for value of true and also covers all options below\n    &#{'[#{ $attribute }*=\"gutters-row:\"]'} { \n      > #{ $select-item } {\n        padding-top:  $gutter;\n        padding-bottom: $gutter;\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              padding-top:  $gutter * $amount;\n              padding-bottom: $gutter * $amount;\n            }\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: top\"]'} { \n      > #{ $select-item } {\n        &.#{ $position-class-row-last } {\n          padding-bottom: 0;\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: bottom\"]'} { \n      > #{ $select-item } {\n        &.#{ $position-class-row-first } {\n          padding-top: 0;\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: fit\"]'} { \n      margin-top: -$gutter;\n      margin-bottom: -$gutter;\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            margin-top: -($gutter * $amount);\n            margin-bottom: -($gutter * $amount);\n          }\n        }\n      }\n    }\n    // Rules: Applies to both column and row\n    &#{'[#{ $attribute }*=\"rules\"]'} { \n      > #{ $select-item } {\n        position: relative;\n        @if ($rule-fade-duration) {\n          &#{ $select-rule-col },\n          &#{ $select-rule-row } {\n            // For when grid init fades them in\n            opacity: 1;\n            transition: opacity $rule-fade-duration ease-in; \n          }\n        }\n      }\n    }\n    // Rules: Row\n    &#{'[#{ $attribute }*=\"rules-row:\"]'} { \n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          position: absolute;\n          left: 0;\n          right: 0;\n          height: $rule-size;\n          background: color.get($rule-color);\n        }\n      }\n    }\n    // Rules: Column\n    &#{'[#{ $attribute }*=\"rules-column:\"]'} { \n      > #{ $select-item } {\n        &#{ $select-rule-col } {\n          position: absolute;\n          top: 0;\n          bottom: 0;\n          width: $rule-size;\n          background: color.get($rule-color);\n        }\n      }\n    }\n    // Options for the left or right\n    @include -create-rule-col-position(\n      $position: \"left\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-col: $select-rule-col, \n      $end-class: $position-class-column-first\n    );\n    @include -create-rule-col-position(\n      $position: \"right\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-col: $select-rule-col, \n      $end-class: $position-class-column-last\n    );\n    &#{'[#{ $attribute }*=\"rules-column-align: gutter\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-col } {\n          top: $gutter;\n          bottom: $gutter;\n        }\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              &#{ $select-rule-col } {\n                top: $gutter * $amount;\n                bottom: $gutter * $amount;\n              }\n            }\n          }\n        }\n      }\n    }\n    // Options for the left or right\n    @include -create-rule-row-position(\n      $position: \"top\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-row: $select-rule-row, \n      $between: false\n    );\n    @include -create-rule-row-position(\n      $position: \"bottom\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-row: $select-rule-row, \n      $between: false\n    );\n\n    &#{'[#{ $attribute }*=\"rules-row: between\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          bottom: math.floor(math.div($rule-size, 2)) * -1;\n        }\n        // For removing the rule per row (via equal heights for now)\n        &.#{ $position-class-row-last } {\n          &#{ $select-rule-row } {\n            content: none !important;\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"rules-row-align: gutter\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          @include breakpoint.min($breakpoint) {\n            left: $gutter;\n            right: $gutter;\n          }\n        }\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              &#{ $select-rule-row } {\n                @include breakpoint.min($breakpoint) {\n                  left: $gutter * $amount;\n                  right: $gutter * $amount;\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"rules-row-persist: true\"]'},\n    &#{'[#{ $attribute }*=\"rules-row-stacked-only: true\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          content: '';\n        }\n      }\n    }\n    // IE for mobile/small (non grid / stacked)\n    &#{'[#{ $attribute }*=\"rules-row-stacked-only: true\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          @include breakpoint.min($breakpoint) {\n            content: none !important;\n          }\n        }\n      }\n    }\n  }\n\n  @include breakpoint.min($breakpoint) {\n\n    $select-gutter-false: '[#{ $attribute }*=\"gutters: false\"]';\n    $select-gutter-false-child: '#{ $select-container }:has(>#{ $select-gutter-false })';\n\n    @if $include-container {\n      #{ $select-container } {\n        padding-left: $gutter;\n        padding-right: $gutter;\n      }\n      #{ $select-gutter-false-child } {\n        padding-left: 0;\n        padding-right: 0;\n      }\n      @if $extra-gutter-scales and $container-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          #{'#{ $select-container }:has(>[#{ $attribute }*=\"gutter-scale: #{ $scale }\"])'} { \n            padding-left: ($gutter * $amount);\n            padding-right: ($gutter * $amount);\n          }\n        }\n      }\n    }\n    // Select the attribute with matching column count\n    #{ $select-grid } {\n      // Defaults for grid an item\n      display: flex;\n      flex-flow: row wrap;\n      align-items: stretch;\n      margin-left: -$gutter;\n      margin-right: -$gutter;\n\n      > #{ $select-item } {\n        float: left; // Fallback\n        padding-left: $gutter;\n        padding-right: $gutter;\n      }\n      > #{'[#{ $attribute-item }*=\"sticky: top\"]'} {\n        position: sticky;\n        align-self: start;\n        top: $sticky-top;\n      }\n      > #{'[#{ $attribute-item }*=\"sticky: bottom\"]'} {\n        position: sticky;\n        align-self: end;\n        bottom: $sticky-bottom;\n      }\n\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            margin-left: -($gutter * $amount);\n            margin-right: -($gutter * $amount);\n\n            > #{ $select-item } {\n              padding-left: $gutter * $amount;\n              padding-right: $gutter * $amount;\n            }\n          }\n        }\n      }\n      \n      // Alignment options\n      &#{'[#{ $attribute }*=\"justify: center\"]'} { \n        justify-content: center;  \n      }\n      &#{'[#{ $attribute }*=\"justify: end\"]'} { \n        justify-content: flex-end;  \n      }\n      &#{'[#{ $attribute }*=\"align: center\"]'} { \n        align-items: center;  \n      }\n      &#{'[#{ $attribute }*=\"align: end\"]'} { \n        align-items: flex-end;\n      }\n      &#{'[#{ $attribute }*=\"align: start\"]'} { \n        align-items: flex-start; \n      }\n      // Alignment of the children when using stretch\n      // - There is no stetch-start (that's defualt);\n      // - There is no stetch-middle (that's covered by stretch-);\n      &#{'[#{ $attribute }*=\"align: stretch-\"]'} { \n        // set the child to display as a single flex item\n        > #{ $select-item } {\n          display: flex;\n          flex-direction: column;\n          justify-content: center;\n        }\n      }\n      &#{'[#{ $attribute }*=\"align: stretch-end\"]'} { \n        > #{ $select-item } {\n          justify-content: flex-end;\n        }\n      }\n      // Other options\n      &#{ $select-gutter-false } { \n        margin-left: 0;\n        margin-right: 0;\n        > #{ $select-item } {\n          padding-left: 0;\n          padding-right: 0;\n        }\n      }\n      // Activate Rules\n      &#{'[#{ $attribute }*=\"rules-column:\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-col } {\n            content: '';\n          }\n        }\n      }\n      &#{'[#{ $attribute }*=\"rules-row:\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-row } {\n            content: '';\n          }\n        }\n      }\n      // Override first or last column removing the rule using matching specificity\n      &#{'[#{ $attribute }*=\"rules-column:\"][#{ $attribute }*=\"rules-column-ends: true\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-col } {\n            content: '';\n          }\n        }\n      }\n      // Generated props for item\n      @include -create-column-widths(\n        $columns: $columns,\n        $attribute-item: $attribute-item,\n        $suffix: ''\n      );\n      @include -create-column-offsets(\n        $columns: $columns,\n        $attribute-item: $attribute-item,\n        $suffix: ''\n      );\n    }\n  }\n  @if $extra-breakpoints {\n    @each $name, $options in $extra-breakpoints {\n      $g: map.get($options, \"gutter\");\n      @include -create-extra-breakpoint(\n        $name: $name, \n        $breakpoint: map.get($options, \"breakpoint\"),\n        $gutter: utils.fallback($g, $gutter),\n        $columns: $columns,\n        $attribute: $attribute,\n        $attribute-item: $attribute-item,\n        $select-grid: $select-grid,\n        $select-item: $select-item,\n        $extra-gutter-scales: $extra-gutter-scales,\n        $include-container: $include-container,\n        $select-container: $select-container,\n        $container-gutter-scales: $container-gutter-scales\n      );\n    }\n  }\n  @if $extra-rule-styles {\n    @each $name, $options in $extra-rule-styles {\n      $color: utils.require-map-get($options, \"color\", \"grid [extra rule style]\");\n      $size: utils.require-map-get($options, \"size\", \"grid [extra rule style]\");\n      #{ $select-grid } {\n\n        &#{'[#{ $attribute }*=\"rules-column-style: #{ $name }\"]'} {\n          > #{ $select-item } {\n            &#{ $select-rule-col } {\n              background-color: color.get($color);\n              width: $size;\n            }\n          }\n          @include -create-rule-col-position(\n            $position: \"left\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-col: $select-rule-col, \n            $end-class: false\n          );\n          @include -create-rule-col-position(\n            $position: \"right\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-col: $select-rule-col, \n            $end-class: false\n          );\n        }\n        &#{'[#{ $attribute }*=\"rules-row-style: #{ $name }\"]'} {\n          > #{ $select-item } {\n            &#{ $select-rule-row } {\n              background-color: color.get($color);\n              height: $size;\n            }\n          }\n          @include -create-rule-row-position(\n            $position: \"top\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: false\n          );\n          @include -create-rule-row-position(\n            $position: \"bottom\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: false\n          );\n          @include -create-rule-row-position(\n            $position: \"bottom\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: true\n          );\n        }\n      }\n    }\n  }\n\n  // Disable grid rules until init attribute it present (from positioning script)\n  // - In order to keep the rules for this compact it will only hide them if the init\n  //   is not present\n  \n  @if ($rule-fade-duration) {\n    #{ $select-grid-not-init } {\n      > #{ $select-item } {\n        &#{ $select-rule-col },\n        &#{ $select-rule-row } {\n          opacity: 0 !important;\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 138,
                "end": 609
              }
            }
          },
          {
            "description": "Output data grid styles\n- Can be used instead of styles() to have full control over options or for alternate grids (grids with different settings/column count) \n",
            "context": {
              "type": "mixin",
              "name": "create",
              "code": "\n  $attribute-item: \"#{ $attribute }-item\";\n  $select-grid: '[#{ $attribute }*=\"columns: #{ $columns }\"]';\n  $select-grid-not-init: '[#{ $attribute }]:not([#{ $attribute-init }])';\n  $select-item: '[#{ $attribute-item }]';\n  $select-rule-col: \"::before\";\n  $select-rule-row: \"::after\";\n  $select-container: \"[#{ $container-attribute }]\";\n  // These through off syntax highlighting when inside interpolation\n  $position-class-column-first: get(\"position-class-column-first\");\n  $position-class-column-last: get(\"position-class-column-last\");\n  $position-class-row-first: get(\"position-class-row-first\");\n  $position-class-row-last: get(\"position-class-row-last\");\n\n  #{ $select-grid } {\n    @include layout.clearfix(); // For legacy browsers\n\n    // Ensure empty elements still take up space in layout\n    > #{ $select-item } {\n      min-height: 1px; \n      width: 100%;\n    }\n    // This is for value of true and also covers all options below\n    &#{'[#{ $attribute }*=\"gutters-row:\"]'} { \n      > #{ $select-item } {\n        padding-top:  $gutter;\n        padding-bottom: $gutter;\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              padding-top:  $gutter * $amount;\n              padding-bottom: $gutter * $amount;\n            }\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: top\"]'} { \n      > #{ $select-item } {\n        &.#{ $position-class-row-last } {\n          padding-bottom: 0;\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: bottom\"]'} { \n      > #{ $select-item } {\n        &.#{ $position-class-row-first } {\n          padding-top: 0;\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: fit\"]'} { \n      margin-top: -$gutter;\n      margin-bottom: -$gutter;\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            margin-top: -($gutter * $amount);\n            margin-bottom: -($gutter * $amount);\n          }\n        }\n      }\n    }\n    // Rules: Applies to both column and row\n    &#{'[#{ $attribute }*=\"rules\"]'} { \n      > #{ $select-item } {\n        position: relative;\n        @if ($rule-fade-duration) {\n          &#{ $select-rule-col },\n          &#{ $select-rule-row } {\n            // For when grid init fades them in\n            opacity: 1;\n            transition: opacity $rule-fade-duration ease-in; \n          }\n        }\n      }\n    }\n    // Rules: Row\n    &#{'[#{ $attribute }*=\"rules-row:\"]'} { \n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          position: absolute;\n          left: 0;\n          right: 0;\n          height: $rule-size;\n          background: color.get($rule-color);\n        }\n      }\n    }\n    // Rules: Column\n    &#{'[#{ $attribute }*=\"rules-column:\"]'} { \n      > #{ $select-item } {\n        &#{ $select-rule-col } {\n          position: absolute;\n          top: 0;\n          bottom: 0;\n          width: $rule-size;\n          background: color.get($rule-color);\n        }\n      }\n    }\n    // Options for the left or right\n    @include -create-rule-col-position(\n      $position: \"left\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-col: $select-rule-col, \n      $end-class: $position-class-column-first\n    );\n    @include -create-rule-col-position(\n      $position: \"right\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-col: $select-rule-col, \n      $end-class: $position-class-column-last\n    );\n    &#{'[#{ $attribute }*=\"rules-column-align: gutter\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-col } {\n          top: $gutter;\n          bottom: $gutter;\n        }\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              &#{ $select-rule-col } {\n                top: $gutter * $amount;\n                bottom: $gutter * $amount;\n              }\n            }\n          }\n        }\n      }\n    }\n    // Options for the left or right\n    @include -create-rule-row-position(\n      $position: \"top\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-row: $select-rule-row, \n      $between: false\n    );\n    @include -create-rule-row-position(\n      $position: \"bottom\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-row: $select-rule-row, \n      $between: false\n    );\n\n    &#{'[#{ $attribute }*=\"rules-row: between\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          bottom: math.floor(math.div($rule-size, 2)) * -1;\n        }\n        // For removing the rule per row (via equal heights for now)\n        &.#{ $position-class-row-last } {\n          &#{ $select-rule-row } {\n            content: none !important;\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"rules-row-align: gutter\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          @include breakpoint.min($breakpoint) {\n            left: $gutter;\n            right: $gutter;\n          }\n        }\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              &#{ $select-rule-row } {\n                @include breakpoint.min($breakpoint) {\n                  left: $gutter * $amount;\n                  right: $gutter * $amount;\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"rules-row-persist: true\"]'},\n    &#{'[#{ $attribute }*=\"rules-row-stacked-only: true\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          content: '';\n        }\n      }\n    }\n    // IE for mobile/small (non grid / stacked)\n    &#{'[#{ $attribute }*=\"rules-row-stacked-only: true\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          @include breakpoint.min($breakpoint) {\n            content: none !important;\n          }\n        }\n      }\n    }\n  }\n\n  @include breakpoint.min($breakpoint) {\n\n    $select-gutter-false: '[#{ $attribute }*=\"gutters: false\"]';\n    $select-gutter-false-child: '#{ $select-container }:has(>#{ $select-gutter-false })';\n\n    @if $include-container {\n      #{ $select-container } {\n        padding-left: $gutter;\n        padding-right: $gutter;\n      }\n      #{ $select-gutter-false-child } {\n        padding-left: 0;\n        padding-right: 0;\n      }\n      @if $extra-gutter-scales and $container-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          #{'#{ $select-container }:has(>[#{ $attribute }*=\"gutter-scale: #{ $scale }\"])'} { \n            padding-left: ($gutter * $amount);\n            padding-right: ($gutter * $amount);\n          }\n        }\n      }\n    }\n    // Select the attribute with matching column count\n    #{ $select-grid } {\n      // Defaults for grid an item\n      display: flex;\n      flex-flow: row wrap;\n      align-items: stretch;\n      margin-left: -$gutter;\n      margin-right: -$gutter;\n\n      > #{ $select-item } {\n        float: left; // Fallback\n        padding-left: $gutter;\n        padding-right: $gutter;\n      }\n      > #{'[#{ $attribute-item }*=\"sticky: top\"]'} {\n        position: sticky;\n        align-self: start;\n        top: $sticky-top;\n      }\n      > #{'[#{ $attribute-item }*=\"sticky: bottom\"]'} {\n        position: sticky;\n        align-self: end;\n        bottom: $sticky-bottom;\n      }\n\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            margin-left: -($gutter * $amount);\n            margin-right: -($gutter * $amount);\n\n            > #{ $select-item } {\n              padding-left: $gutter * $amount;\n              padding-right: $gutter * $amount;\n            }\n          }\n        }\n      }\n      \n      // Alignment options\n      &#{'[#{ $attribute }*=\"justify: center\"]'} { \n        justify-content: center;  \n      }\n      &#{'[#{ $attribute }*=\"justify: end\"]'} { \n        justify-content: flex-end;  \n      }\n      &#{'[#{ $attribute }*=\"align: center\"]'} { \n        align-items: center;  \n      }\n      &#{'[#{ $attribute }*=\"align: end\"]'} { \n        align-items: flex-end;\n      }\n      &#{'[#{ $attribute }*=\"align: start\"]'} { \n        align-items: flex-start; \n      }\n      // Alignment of the children when using stretch\n      // - There is no stetch-start (that's defualt);\n      // - There is no stetch-middle (that's covered by stretch-);\n      &#{'[#{ $attribute }*=\"align: stretch-\"]'} { \n        // set the child to display as a single flex item\n        > #{ $select-item } {\n          display: flex;\n          flex-direction: column;\n          justify-content: center;\n        }\n      }\n      &#{'[#{ $attribute }*=\"align: stretch-end\"]'} { \n        > #{ $select-item } {\n          justify-content: flex-end;\n        }\n      }\n      // Other options\n      &#{ $select-gutter-false } { \n        margin-left: 0;\n        margin-right: 0;\n        > #{ $select-item } {\n          padding-left: 0;\n          padding-right: 0;\n        }\n      }\n      // Activate Rules\n      &#{'[#{ $attribute }*=\"rules-column:\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-col } {\n            content: '';\n          }\n        }\n      }\n      &#{'[#{ $attribute }*=\"rules-row:\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-row } {\n            content: '';\n          }\n        }\n      }\n      // Override first or last column removing the rule using matching specificity\n      &#{'[#{ $attribute }*=\"rules-column:\"][#{ $attribute }*=\"rules-column-ends: true\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-col } {\n            content: '';\n          }\n        }\n      }\n      // Generated props for item\n      @include -create-column-widths(\n        $columns: $columns,\n        $attribute-item: $attribute-item,\n        $suffix: ''\n      );\n      @include -create-column-offsets(\n        $columns: $columns,\n        $attribute-item: $attribute-item,\n        $suffix: ''\n      );\n    }\n  }\n  @if $extra-breakpoints {\n    @each $name, $options in $extra-breakpoints {\n      $g: map.get($options, \"gutter\");\n      @include -create-extra-breakpoint(\n        $name: $name, \n        $breakpoint: map.get($options, \"breakpoint\"),\n        $gutter: utils.fallback($g, $gutter),\n        $columns: $columns,\n        $attribute: $attribute,\n        $attribute-item: $attribute-item,\n        $select-grid: $select-grid,\n        $select-item: $select-item,\n        $extra-gutter-scales: $extra-gutter-scales,\n        $include-container: $include-container,\n        $select-container: $select-container,\n        $container-gutter-scales: $container-gutter-scales\n      );\n    }\n  }\n  @if $extra-rule-styles {\n    @each $name, $options in $extra-rule-styles {\n      $color: utils.require-map-get($options, \"color\", \"grid [extra rule style]\");\n      $size: utils.require-map-get($options, \"size\", \"grid [extra rule style]\");\n      #{ $select-grid } {\n\n        &#{'[#{ $attribute }*=\"rules-column-style: #{ $name }\"]'} {\n          > #{ $select-item } {\n            &#{ $select-rule-col } {\n              background-color: color.get($color);\n              width: $size;\n            }\n          }\n          @include -create-rule-col-position(\n            $position: \"left\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-col: $select-rule-col, \n            $end-class: false\n          );\n          @include -create-rule-col-position(\n            $position: \"right\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-col: $select-rule-col, \n            $end-class: false\n          );\n        }\n        &#{'[#{ $attribute }*=\"rules-row-style: #{ $name }\"]'} {\n          > #{ $select-item } {\n            &#{ $select-rule-row } {\n              background-color: color.get($color);\n              height: $size;\n            }\n          }\n          @include -create-rule-row-position(\n            $position: \"top\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: false\n          );\n          @include -create-rule-row-position(\n            $position: \"bottom\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: false\n          );\n          @include -create-rule-row-position(\n            $position: \"bottom\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: true\n          );\n        }\n      }\n    }\n  }\n\n  // Disable grid rules until init attribute it present (from positioning script)\n  // - In order to keep the rules for this compact it will only hide them if the init\n  //   is not present\n  \n  @if ($rule-fade-duration) {\n    #{ $select-grid-not-init } {\n      > #{ $select-item } {\n        &#{ $select-rule-col },\n        &#{ $select-rule-row } {\n          opacity: 0 !important;\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 138,
                "end": 609
              }
            }
          },
          {
            "description": "Output data grid styles\n- Can be used instead of styles() to have full control over options or for alternate grids (grids with different settings/column count) \n",
            "context": {
              "type": "mixin",
              "name": "create",
              "code": "\n  $attribute-item: \"#{ $attribute }-item\";\n  $select-grid: '[#{ $attribute }*=\"columns: #{ $columns }\"]';\n  $select-grid-not-init: '[#{ $attribute }]:not([#{ $attribute-init }])';\n  $select-item: '[#{ $attribute-item }]';\n  $select-rule-col: \"::before\";\n  $select-rule-row: \"::after\";\n  $select-container: \"[#{ $container-attribute }]\";\n  // These through off syntax highlighting when inside interpolation\n  $position-class-column-first: get(\"position-class-column-first\");\n  $position-class-column-last: get(\"position-class-column-last\");\n  $position-class-row-first: get(\"position-class-row-first\");\n  $position-class-row-last: get(\"position-class-row-last\");\n\n  #{ $select-grid } {\n    @include layout.clearfix(); // For legacy browsers\n\n    // Ensure empty elements still take up space in layout\n    > #{ $select-item } {\n      min-height: 1px; \n      width: 100%;\n    }\n    // This is for value of true and also covers all options below\n    &#{'[#{ $attribute }*=\"gutters-row:\"]'} { \n      > #{ $select-item } {\n        padding-top:  $gutter;\n        padding-bottom: $gutter;\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              padding-top:  $gutter * $amount;\n              padding-bottom: $gutter * $amount;\n            }\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: top\"]'} { \n      > #{ $select-item } {\n        &.#{ $position-class-row-last } {\n          padding-bottom: 0;\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: bottom\"]'} { \n      > #{ $select-item } {\n        &.#{ $position-class-row-first } {\n          padding-top: 0;\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: fit\"]'} { \n      margin-top: -$gutter;\n      margin-bottom: -$gutter;\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            margin-top: -($gutter * $amount);\n            margin-bottom: -($gutter * $amount);\n          }\n        }\n      }\n    }\n    // Rules: Applies to both column and row\n    &#{'[#{ $attribute }*=\"rules\"]'} { \n      > #{ $select-item } {\n        position: relative;\n        @if ($rule-fade-duration) {\n          &#{ $select-rule-col },\n          &#{ $select-rule-row } {\n            // For when grid init fades them in\n            opacity: 1;\n            transition: opacity $rule-fade-duration ease-in; \n          }\n        }\n      }\n    }\n    // Rules: Row\n    &#{'[#{ $attribute }*=\"rules-row:\"]'} { \n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          position: absolute;\n          left: 0;\n          right: 0;\n          height: $rule-size;\n          background: color.get($rule-color);\n        }\n      }\n    }\n    // Rules: Column\n    &#{'[#{ $attribute }*=\"rules-column:\"]'} { \n      > #{ $select-item } {\n        &#{ $select-rule-col } {\n          position: absolute;\n          top: 0;\n          bottom: 0;\n          width: $rule-size;\n          background: color.get($rule-color);\n        }\n      }\n    }\n    // Options for the left or right\n    @include -create-rule-col-position(\n      $position: \"left\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-col: $select-rule-col, \n      $end-class: $position-class-column-first\n    );\n    @include -create-rule-col-position(\n      $position: \"right\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-col: $select-rule-col, \n      $end-class: $position-class-column-last\n    );\n    &#{'[#{ $attribute }*=\"rules-column-align: gutter\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-col } {\n          top: $gutter;\n          bottom: $gutter;\n        }\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              &#{ $select-rule-col } {\n                top: $gutter * $amount;\n                bottom: $gutter * $amount;\n              }\n            }\n          }\n        }\n      }\n    }\n    // Options for the left or right\n    @include -create-rule-row-position(\n      $position: \"top\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-row: $select-rule-row, \n      $between: false\n    );\n    @include -create-rule-row-position(\n      $position: \"bottom\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-row: $select-rule-row, \n      $between: false\n    );\n\n    &#{'[#{ $attribute }*=\"rules-row: between\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          bottom: math.floor(math.div($rule-size, 2)) * -1;\n        }\n        // For removing the rule per row (via equal heights for now)\n        &.#{ $position-class-row-last } {\n          &#{ $select-rule-row } {\n            content: none !important;\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"rules-row-align: gutter\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          @include breakpoint.min($breakpoint) {\n            left: $gutter;\n            right: $gutter;\n          }\n        }\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              &#{ $select-rule-row } {\n                @include breakpoint.min($breakpoint) {\n                  left: $gutter * $amount;\n                  right: $gutter * $amount;\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"rules-row-persist: true\"]'},\n    &#{'[#{ $attribute }*=\"rules-row-stacked-only: true\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          content: '';\n        }\n      }\n    }\n    // IE for mobile/small (non grid / stacked)\n    &#{'[#{ $attribute }*=\"rules-row-stacked-only: true\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          @include breakpoint.min($breakpoint) {\n            content: none !important;\n          }\n        }\n      }\n    }\n  }\n\n  @include breakpoint.min($breakpoint) {\n\n    $select-gutter-false: '[#{ $attribute }*=\"gutters: false\"]';\n    $select-gutter-false-child: '#{ $select-container }:has(>#{ $select-gutter-false })';\n\n    @if $include-container {\n      #{ $select-container } {\n        padding-left: $gutter;\n        padding-right: $gutter;\n      }\n      #{ $select-gutter-false-child } {\n        padding-left: 0;\n        padding-right: 0;\n      }\n      @if $extra-gutter-scales and $container-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          #{'#{ $select-container }:has(>[#{ $attribute }*=\"gutter-scale: #{ $scale }\"])'} { \n            padding-left: ($gutter * $amount);\n            padding-right: ($gutter * $amount);\n          }\n        }\n      }\n    }\n    // Select the attribute with matching column count\n    #{ $select-grid } {\n      // Defaults for grid an item\n      display: flex;\n      flex-flow: row wrap;\n      align-items: stretch;\n      margin-left: -$gutter;\n      margin-right: -$gutter;\n\n      > #{ $select-item } {\n        float: left; // Fallback\n        padding-left: $gutter;\n        padding-right: $gutter;\n      }\n      > #{'[#{ $attribute-item }*=\"sticky: top\"]'} {\n        position: sticky;\n        align-self: start;\n        top: $sticky-top;\n      }\n      > #{'[#{ $attribute-item }*=\"sticky: bottom\"]'} {\n        position: sticky;\n        align-self: end;\n        bottom: $sticky-bottom;\n      }\n\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            margin-left: -($gutter * $amount);\n            margin-right: -($gutter * $amount);\n\n            > #{ $select-item } {\n              padding-left: $gutter * $amount;\n              padding-right: $gutter * $amount;\n            }\n          }\n        }\n      }\n      \n      // Alignment options\n      &#{'[#{ $attribute }*=\"justify: center\"]'} { \n        justify-content: center;  \n      }\n      &#{'[#{ $attribute }*=\"justify: end\"]'} { \n        justify-content: flex-end;  \n      }\n      &#{'[#{ $attribute }*=\"align: center\"]'} { \n        align-items: center;  \n      }\n      &#{'[#{ $attribute }*=\"align: end\"]'} { \n        align-items: flex-end;\n      }\n      &#{'[#{ $attribute }*=\"align: start\"]'} { \n        align-items: flex-start; \n      }\n      // Alignment of the children when using stretch\n      // - There is no stetch-start (that's defualt);\n      // - There is no stetch-middle (that's covered by stretch-);\n      &#{'[#{ $attribute }*=\"align: stretch-\"]'} { \n        // set the child to display as a single flex item\n        > #{ $select-item } {\n          display: flex;\n          flex-direction: column;\n          justify-content: center;\n        }\n      }\n      &#{'[#{ $attribute }*=\"align: stretch-end\"]'} { \n        > #{ $select-item } {\n          justify-content: flex-end;\n        }\n      }\n      // Other options\n      &#{ $select-gutter-false } { \n        margin-left: 0;\n        margin-right: 0;\n        > #{ $select-item } {\n          padding-left: 0;\n          padding-right: 0;\n        }\n      }\n      // Activate Rules\n      &#{'[#{ $attribute }*=\"rules-column:\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-col } {\n            content: '';\n          }\n        }\n      }\n      &#{'[#{ $attribute }*=\"rules-row:\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-row } {\n            content: '';\n          }\n        }\n      }\n      // Override first or last column removing the rule using matching specificity\n      &#{'[#{ $attribute }*=\"rules-column:\"][#{ $attribute }*=\"rules-column-ends: true\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-col } {\n            content: '';\n          }\n        }\n      }\n      // Generated props for item\n      @include -create-column-widths(\n        $columns: $columns,\n        $attribute-item: $attribute-item,\n        $suffix: ''\n      );\n      @include -create-column-offsets(\n        $columns: $columns,\n        $attribute-item: $attribute-item,\n        $suffix: ''\n      );\n    }\n  }\n  @if $extra-breakpoints {\n    @each $name, $options in $extra-breakpoints {\n      $g: map.get($options, \"gutter\");\n      @include -create-extra-breakpoint(\n        $name: $name, \n        $breakpoint: map.get($options, \"breakpoint\"),\n        $gutter: utils.fallback($g, $gutter),\n        $columns: $columns,\n        $attribute: $attribute,\n        $attribute-item: $attribute-item,\n        $select-grid: $select-grid,\n        $select-item: $select-item,\n        $extra-gutter-scales: $extra-gutter-scales,\n        $include-container: $include-container,\n        $select-container: $select-container,\n        $container-gutter-scales: $container-gutter-scales\n      );\n    }\n  }\n  @if $extra-rule-styles {\n    @each $name, $options in $extra-rule-styles {\n      $color: utils.require-map-get($options, \"color\", \"grid [extra rule style]\");\n      $size: utils.require-map-get($options, \"size\", \"grid [extra rule style]\");\n      #{ $select-grid } {\n\n        &#{'[#{ $attribute }*=\"rules-column-style: #{ $name }\"]'} {\n          > #{ $select-item } {\n            &#{ $select-rule-col } {\n              background-color: color.get($color);\n              width: $size;\n            }\n          }\n          @include -create-rule-col-position(\n            $position: \"left\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-col: $select-rule-col, \n            $end-class: false\n          );\n          @include -create-rule-col-position(\n            $position: \"right\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-col: $select-rule-col, \n            $end-class: false\n          );\n        }\n        &#{'[#{ $attribute }*=\"rules-row-style: #{ $name }\"]'} {\n          > #{ $select-item } {\n            &#{ $select-rule-row } {\n              background-color: color.get($color);\n              height: $size;\n            }\n          }\n          @include -create-rule-row-position(\n            $position: \"top\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: false\n          );\n          @include -create-rule-row-position(\n            $position: \"bottom\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: false\n          );\n          @include -create-rule-row-position(\n            $position: \"bottom\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: true\n          );\n        }\n      }\n    }\n  }\n\n  // Disable grid rules until init attribute it present (from positioning script)\n  // - In order to keep the rules for this compact it will only hide them if the init\n  //   is not present\n  \n  @if ($rule-fade-duration) {\n    #{ $select-grid-not-init } {\n      > #{ $select-item } {\n        &#{ $select-rule-col },\n        &#{ $select-rule-row } {\n          opacity: 0 !important;\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 138,
                "end": 609
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'data-list');\n\n  $prefix: selector.class(\"data-list\");\n  $stacked-bp: get(\"stacked-breakpoint\");\n  $overlap: get(\"overlap-borders\");\n  $border-width: get(\"border-width\");\n  \n  #{ $prefix } {\n    display: grid;\n    \n    @if $overlap {\n      gap: 0; // Forced to 0 when borders overlap to prevent disjointed negative margins\n    } @else {\n      gap: var(--ulu-data-list-row-gap, get(\"row-gap\"));\n    }\n    \n    // Allows inline override via custom property, falls back to config default\n    grid-template-columns: var(--ulu-data-list-columns, get(\"grid-template-columns\"));\n    list-style: none;\n    margin: 0;\n    padding: 0;\n\n    @include breakpoint.max($stacked-bp) {\n      // Switch to stacked grid template (defaults to 100% stack, but can be overridden for persistent cols)\n      grid-template-columns: var(--ulu-data-list-columns-stacked, get(\"grid-template-columns-stacked\"));\n    }\n  }\n\n  // Row Item (Passes the grid down)\n  #{ $prefix }__item {\n    display: grid;\n    grid-template-columns: subgrid;\n    grid-column: 1 / -1;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    border: element.optional-border($border-width, get(\"border-color\"));\n    border-radius: get(\"border-radius\");\n    box-shadow: get(\"box-shadow\");\n\n    @if $overlap {\n      margin-top: calc(-1 * #{ $border-width });\n      &:first-child {\n        margin-top: 0;\n      }\n    }\n\n    \n\n    @include breakpoint.max($stacked-bp) {\n      // We keep display: grid/subgrid here to respect the stacked parent grid\n      gap: var(--ulu-data-list-column-gap-stacked, get(\"column-gap-stacked\")); \n    }\n\n    @if (get(\"background-color-hover\")) {\n      &:hover {\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n  }\n\n  // Interactive z-index management for borders/shadows\n  #{ $prefix }__item:hover,\n  #{ $prefix }__item:focus-within,\n  #{ $prefix }__header #{ $prefix }__item {\n    position: relative;\n    z-index: 2;\n  }\n\n  // Columns (The cells / wrappers)\n  #{ $prefix }__column {\n    display: flex;\n    align-items: center;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    // Defensive Layout: Prevents flexbox/grid from refusing to shrink below intrinsic content size.\n    // Without this, a long unbroken word or URL could force the column to expand, blowing out the grid.\n    // It allows text-overflow: ellipsis to work safely within a column without breaking the layout.\n    min-width: 0; \n  }\n\n  // Automatic Groups (Subgrid on desktop, stack on smaller screens)\n  #{ $prefix }__column:has(> #{ $prefix }__column) {\n    display: grid;\n    grid-template-columns: subgrid;\n    // Default span is 1, use modifiers below for larger spans\n    \n    @include breakpoint.max($stacked-bp) {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: stretch;\n      gap: var(--ulu-data-list-group-gap-stacked, get(\"group-gap-stacked\")); // Tighter vertical gap when stacked\n    }\n  }\n\n  // Header Row (Optional)\n  #{ $prefix }__header {\n    display: contents; // Removes wrapper so children participate in grid\n\n    // Hide headers when stacked since columns stack\n    @include breakpoint.max($stacked-bp) {\n      display: none;\n    }\n\n    #{ $prefix }__item {\n      font-weight: get(\"header-font-weight\");\n      background-color: transparent;\n      border-bottom: element.optional-border(get(\"header-border-bottom-width\"), get(\"header-border-bottom-color\"));\n      border-radius: 0; // Prevent rounding on headers\n      &:hover {\n        background-color: transparent; // No hover effect on headers\n      }\n    }\n  }\n\n  // Modifiers\n\n  // Structural Edge Modifiers (Decorating the default 1fr track)\n  #{ $prefix }--prefixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr);\n    }\n  }\n  #{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, 1fr auto);\n    }\n  }\n  #{ $prefix }--prefixed#{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr auto);\n    }\n  }\n\n  // Striped Rows\n  #{ $prefix }--striped {\n    @if (get(\"background-color-even\")) {\n      #{ $prefix }__item:nth-child(even) {\n        background-color: color.get(get(\"background-color-even\"));\n      }\n    }\n  }\n\n  // Interactive Rows (Proxy Click Support)\n  // Applied to parent to indicate all rows are interactive\n  #{ $prefix }--clickable {\n    #{ $prefix }__item {\n      cursor: pointer;\n      &:hover,\n      &:focus-within {\n        background-color: color.get(get(\"clickable-background-color-hover\"));\n        border-color: color.get(get(\"clickable-border-color-hover\"));\n      }\n    }\n  }\n\n  // Spanning (Required when a subgrid contains multiple child columns)\n  @for $i from 2 through get(\"span-count\") {\n    #{ $prefix }__column--span-#{$i} {\n      grid-column: span #{$i};\n      \n      // Reset span when stacked so it fits the simplified grid\n      @include breakpoint.max($stacked-bp) {\n        grid-column: auto;\n      }\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 270
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'data-list');\n\n  $prefix: selector.class(\"data-list\");\n  $stacked-bp: get(\"stacked-breakpoint\");\n  $overlap: get(\"overlap-borders\");\n  $border-width: get(\"border-width\");\n  \n  #{ $prefix } {\n    display: grid;\n    \n    @if $overlap {\n      gap: 0; // Forced to 0 when borders overlap to prevent disjointed negative margins\n    } @else {\n      gap: var(--ulu-data-list-row-gap, get(\"row-gap\"));\n    }\n    \n    // Allows inline override via custom property, falls back to config default\n    grid-template-columns: var(--ulu-data-list-columns, get(\"grid-template-columns\"));\n    list-style: none;\n    margin: 0;\n    padding: 0;\n\n    @include breakpoint.max($stacked-bp) {\n      // Switch to stacked grid template (defaults to 100% stack, but can be overridden for persistent cols)\n      grid-template-columns: var(--ulu-data-list-columns-stacked, get(\"grid-template-columns-stacked\"));\n    }\n  }\n\n  // Row Item (Passes the grid down)\n  #{ $prefix }__item {\n    display: grid;\n    grid-template-columns: subgrid;\n    grid-column: 1 / -1;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    border: element.optional-border($border-width, get(\"border-color\"));\n    border-radius: get(\"border-radius\");\n    box-shadow: get(\"box-shadow\");\n\n    @if $overlap {\n      margin-top: calc(-1 * #{ $border-width });\n      &:first-child {\n        margin-top: 0;\n      }\n    }\n\n    \n\n    @include breakpoint.max($stacked-bp) {\n      // We keep display: grid/subgrid here to respect the stacked parent grid\n      gap: var(--ulu-data-list-column-gap-stacked, get(\"column-gap-stacked\")); \n    }\n\n    @if (get(\"background-color-hover\")) {\n      &:hover {\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n  }\n\n  // Interactive z-index management for borders/shadows\n  #{ $prefix }__item:hover,\n  #{ $prefix }__item:focus-within,\n  #{ $prefix }__header #{ $prefix }__item {\n    position: relative;\n    z-index: 2;\n  }\n\n  // Columns (The cells / wrappers)\n  #{ $prefix }__column {\n    display: flex;\n    align-items: center;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    // Defensive Layout: Prevents flexbox/grid from refusing to shrink below intrinsic content size.\n    // Without this, a long unbroken word or URL could force the column to expand, blowing out the grid.\n    // It allows text-overflow: ellipsis to work safely within a column without breaking the layout.\n    min-width: 0; \n  }\n\n  // Automatic Groups (Subgrid on desktop, stack on smaller screens)\n  #{ $prefix }__column:has(> #{ $prefix }__column) {\n    display: grid;\n    grid-template-columns: subgrid;\n    // Default span is 1, use modifiers below for larger spans\n    \n    @include breakpoint.max($stacked-bp) {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: stretch;\n      gap: var(--ulu-data-list-group-gap-stacked, get(\"group-gap-stacked\")); // Tighter vertical gap when stacked\n    }\n  }\n\n  // Header Row (Optional)\n  #{ $prefix }__header {\n    display: contents; // Removes wrapper so children participate in grid\n\n    // Hide headers when stacked since columns stack\n    @include breakpoint.max($stacked-bp) {\n      display: none;\n    }\n\n    #{ $prefix }__item {\n      font-weight: get(\"header-font-weight\");\n      background-color: transparent;\n      border-bottom: element.optional-border(get(\"header-border-bottom-width\"), get(\"header-border-bottom-color\"));\n      border-radius: 0; // Prevent rounding on headers\n      &:hover {\n        background-color: transparent; // No hover effect on headers\n      }\n    }\n  }\n\n  // Modifiers\n\n  // Structural Edge Modifiers (Decorating the default 1fr track)\n  #{ $prefix }--prefixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr);\n    }\n  }\n  #{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, 1fr auto);\n    }\n  }\n  #{ $prefix }--prefixed#{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr auto);\n    }\n  }\n\n  // Striped Rows\n  #{ $prefix }--striped {\n    @if (get(\"background-color-even\")) {\n      #{ $prefix }__item:nth-child(even) {\n        background-color: color.get(get(\"background-color-even\"));\n      }\n    }\n  }\n\n  // Interactive Rows (Proxy Click Support)\n  // Applied to parent to indicate all rows are interactive\n  #{ $prefix }--clickable {\n    #{ $prefix }__item {\n      cursor: pointer;\n      &:hover,\n      &:focus-within {\n        background-color: color.get(get(\"clickable-background-color-hover\"));\n        border-color: color.get(get(\"clickable-border-color-hover\"));\n      }\n    }\n  }\n\n  // Spanning (Required when a subgrid contains multiple child columns)\n  @for $i from 2 through get(\"span-count\") {\n    #{ $prefix }__column--span-#{$i} {\n      grid-column: span #{$i};\n      \n      // Reset span when stacked so it fits the simplified grid\n      @include breakpoint.max($stacked-bp) {\n        grid-column: auto;\n      }\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 270
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'data-list');\n\n  $prefix: selector.class(\"data-list\");\n  $stacked-bp: get(\"stacked-breakpoint\");\n  $overlap: get(\"overlap-borders\");\n  $border-width: get(\"border-width\");\n  \n  #{ $prefix } {\n    display: grid;\n    \n    @if $overlap {\n      gap: 0; // Forced to 0 when borders overlap to prevent disjointed negative margins\n    } @else {\n      gap: var(--ulu-data-list-row-gap, get(\"row-gap\"));\n    }\n    \n    // Allows inline override via custom property, falls back to config default\n    grid-template-columns: var(--ulu-data-list-columns, get(\"grid-template-columns\"));\n    list-style: none;\n    margin: 0;\n    padding: 0;\n\n    @include breakpoint.max($stacked-bp) {\n      // Switch to stacked grid template (defaults to 100% stack, but can be overridden for persistent cols)\n      grid-template-columns: var(--ulu-data-list-columns-stacked, get(\"grid-template-columns-stacked\"));\n    }\n  }\n\n  // Row Item (Passes the grid down)\n  #{ $prefix }__item {\n    display: grid;\n    grid-template-columns: subgrid;\n    grid-column: 1 / -1;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    border: element.optional-border($border-width, get(\"border-color\"));\n    border-radius: get(\"border-radius\");\n    box-shadow: get(\"box-shadow\");\n\n    @if $overlap {\n      margin-top: calc(-1 * #{ $border-width });\n      &:first-child {\n        margin-top: 0;\n      }\n    }\n\n    \n\n    @include breakpoint.max($stacked-bp) {\n      // We keep display: grid/subgrid here to respect the stacked parent grid\n      gap: var(--ulu-data-list-column-gap-stacked, get(\"column-gap-stacked\")); \n    }\n\n    @if (get(\"background-color-hover\")) {\n      &:hover {\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n  }\n\n  // Interactive z-index management for borders/shadows\n  #{ $prefix }__item:hover,\n  #{ $prefix }__item:focus-within,\n  #{ $prefix }__header #{ $prefix }__item {\n    position: relative;\n    z-index: 2;\n  }\n\n  // Columns (The cells / wrappers)\n  #{ $prefix }__column {\n    display: flex;\n    align-items: center;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    // Defensive Layout: Prevents flexbox/grid from refusing to shrink below intrinsic content size.\n    // Without this, a long unbroken word or URL could force the column to expand, blowing out the grid.\n    // It allows text-overflow: ellipsis to work safely within a column without breaking the layout.\n    min-width: 0; \n  }\n\n  // Automatic Groups (Subgrid on desktop, stack on smaller screens)\n  #{ $prefix }__column:has(> #{ $prefix }__column) {\n    display: grid;\n    grid-template-columns: subgrid;\n    // Default span is 1, use modifiers below for larger spans\n    \n    @include breakpoint.max($stacked-bp) {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: stretch;\n      gap: var(--ulu-data-list-group-gap-stacked, get(\"group-gap-stacked\")); // Tighter vertical gap when stacked\n    }\n  }\n\n  // Header Row (Optional)\n  #{ $prefix }__header {\n    display: contents; // Removes wrapper so children participate in grid\n\n    // Hide headers when stacked since columns stack\n    @include breakpoint.max($stacked-bp) {\n      display: none;\n    }\n\n    #{ $prefix }__item {\n      font-weight: get(\"header-font-weight\");\n      background-color: transparent;\n      border-bottom: element.optional-border(get(\"header-border-bottom-width\"), get(\"header-border-bottom-color\"));\n      border-radius: 0; // Prevent rounding on headers\n      &:hover {\n        background-color: transparent; // No hover effect on headers\n      }\n    }\n  }\n\n  // Modifiers\n\n  // Structural Edge Modifiers (Decorating the default 1fr track)\n  #{ $prefix }--prefixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr);\n    }\n  }\n  #{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, 1fr auto);\n    }\n  }\n  #{ $prefix }--prefixed#{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr auto);\n    }\n  }\n\n  // Striped Rows\n  #{ $prefix }--striped {\n    @if (get(\"background-color-even\")) {\n      #{ $prefix }__item:nth-child(even) {\n        background-color: color.get(get(\"background-color-even\"));\n      }\n    }\n  }\n\n  // Interactive Rows (Proxy Click Support)\n  // Applied to parent to indicate all rows are interactive\n  #{ $prefix }--clickable {\n    #{ $prefix }__item {\n      cursor: pointer;\n      &:hover,\n      &:focus-within {\n        background-color: color.get(get(\"clickable-background-color-hover\"));\n        border-color: color.get(get(\"clickable-border-color-hover\"));\n      }\n    }\n  }\n\n  // Spanning (Required when a subgrid contains multiple child columns)\n  @for $i from 2 through get(\"span-count\") {\n    #{ $prefix }__column--span-#{$i} {\n      grid-column: span #{$i};\n      \n      // Reset span when stacked so it fits the simplified grid\n      @include breakpoint.max($stacked-bp) {\n        grid-column: auto;\n      }\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 270
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'data-list');\n\n  $prefix: selector.class(\"data-list\");\n  $stacked-bp: get(\"stacked-breakpoint\");\n  $overlap: get(\"overlap-borders\");\n  $border-width: get(\"border-width\");\n  \n  #{ $prefix } {\n    display: grid;\n    \n    @if $overlap {\n      gap: 0; // Forced to 0 when borders overlap to prevent disjointed negative margins\n    } @else {\n      gap: var(--ulu-data-list-row-gap, get(\"row-gap\"));\n    }\n    \n    // Allows inline override via custom property, falls back to config default\n    grid-template-columns: var(--ulu-data-list-columns, get(\"grid-template-columns\"));\n    list-style: none;\n    margin: 0;\n    padding: 0;\n\n    @include breakpoint.max($stacked-bp) {\n      // Switch to stacked grid template (defaults to 100% stack, but can be overridden for persistent cols)\n      grid-template-columns: var(--ulu-data-list-columns-stacked, get(\"grid-template-columns-stacked\"));\n    }\n  }\n\n  // Row Item (Passes the grid down)\n  #{ $prefix }__item {\n    display: grid;\n    grid-template-columns: subgrid;\n    grid-column: 1 / -1;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    border: element.optional-border($border-width, get(\"border-color\"));\n    border-radius: get(\"border-radius\");\n    box-shadow: get(\"box-shadow\");\n\n    @if $overlap {\n      margin-top: calc(-1 * #{ $border-width });\n      &:first-child {\n        margin-top: 0;\n      }\n    }\n\n    \n\n    @include breakpoint.max($stacked-bp) {\n      // We keep display: grid/subgrid here to respect the stacked parent grid\n      gap: var(--ulu-data-list-column-gap-stacked, get(\"column-gap-stacked\")); \n    }\n\n    @if (get(\"background-color-hover\")) {\n      &:hover {\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n  }\n\n  // Interactive z-index management for borders/shadows\n  #{ $prefix }__item:hover,\n  #{ $prefix }__item:focus-within,\n  #{ $prefix }__header #{ $prefix }__item {\n    position: relative;\n    z-index: 2;\n  }\n\n  // Columns (The cells / wrappers)\n  #{ $prefix }__column {\n    display: flex;\n    align-items: center;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    // Defensive Layout: Prevents flexbox/grid from refusing to shrink below intrinsic content size.\n    // Without this, a long unbroken word or URL could force the column to expand, blowing out the grid.\n    // It allows text-overflow: ellipsis to work safely within a column without breaking the layout.\n    min-width: 0; \n  }\n\n  // Automatic Groups (Subgrid on desktop, stack on smaller screens)\n  #{ $prefix }__column:has(> #{ $prefix }__column) {\n    display: grid;\n    grid-template-columns: subgrid;\n    // Default span is 1, use modifiers below for larger spans\n    \n    @include breakpoint.max($stacked-bp) {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: stretch;\n      gap: var(--ulu-data-list-group-gap-stacked, get(\"group-gap-stacked\")); // Tighter vertical gap when stacked\n    }\n  }\n\n  // Header Row (Optional)\n  #{ $prefix }__header {\n    display: contents; // Removes wrapper so children participate in grid\n\n    // Hide headers when stacked since columns stack\n    @include breakpoint.max($stacked-bp) {\n      display: none;\n    }\n\n    #{ $prefix }__item {\n      font-weight: get(\"header-font-weight\");\n      background-color: transparent;\n      border-bottom: element.optional-border(get(\"header-border-bottom-width\"), get(\"header-border-bottom-color\"));\n      border-radius: 0; // Prevent rounding on headers\n      &:hover {\n        background-color: transparent; // No hover effect on headers\n      }\n    }\n  }\n\n  // Modifiers\n\n  // Structural Edge Modifiers (Decorating the default 1fr track)\n  #{ $prefix }--prefixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr);\n    }\n  }\n  #{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, 1fr auto);\n    }\n  }\n  #{ $prefix }--prefixed#{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr auto);\n    }\n  }\n\n  // Striped Rows\n  #{ $prefix }--striped {\n    @if (get(\"background-color-even\")) {\n      #{ $prefix }__item:nth-child(even) {\n        background-color: color.get(get(\"background-color-even\"));\n      }\n    }\n  }\n\n  // Interactive Rows (Proxy Click Support)\n  // Applied to parent to indicate all rows are interactive\n  #{ $prefix }--clickable {\n    #{ $prefix }__item {\n      cursor: pointer;\n      &:hover,\n      &:focus-within {\n        background-color: color.get(get(\"clickable-background-color-hover\"));\n        border-color: color.get(get(\"clickable-border-color-hover\"));\n      }\n    }\n  }\n\n  // Spanning (Required when a subgrid contains multiple child columns)\n  @for $i from 2 through get(\"span-count\") {\n    #{ $prefix }__column--span-#{$i} {\n      grid-column: span #{$i};\n      \n      // Reset span when stacked so it fits the simplified grid\n      @include breakpoint.max($stacked-bp) {\n        grid-column: auto;\n      }\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 270
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'data-list');\n\n  $prefix: selector.class(\"data-list\");\n  $stacked-bp: get(\"stacked-breakpoint\");\n  $overlap: get(\"overlap-borders\");\n  $border-width: get(\"border-width\");\n  \n  #{ $prefix } {\n    display: grid;\n    \n    @if $overlap {\n      gap: 0; // Forced to 0 when borders overlap to prevent disjointed negative margins\n    } @else {\n      gap: var(--ulu-data-list-row-gap, get(\"row-gap\"));\n    }\n    \n    // Allows inline override via custom property, falls back to config default\n    grid-template-columns: var(--ulu-data-list-columns, get(\"grid-template-columns\"));\n    list-style: none;\n    margin: 0;\n    padding: 0;\n\n    @include breakpoint.max($stacked-bp) {\n      // Switch to stacked grid template (defaults to 100% stack, but can be overridden for persistent cols)\n      grid-template-columns: var(--ulu-data-list-columns-stacked, get(\"grid-template-columns-stacked\"));\n    }\n  }\n\n  // Row Item (Passes the grid down)\n  #{ $prefix }__item {\n    display: grid;\n    grid-template-columns: subgrid;\n    grid-column: 1 / -1;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    border: element.optional-border($border-width, get(\"border-color\"));\n    border-radius: get(\"border-radius\");\n    box-shadow: get(\"box-shadow\");\n\n    @if $overlap {\n      margin-top: calc(-1 * #{ $border-width });\n      &:first-child {\n        margin-top: 0;\n      }\n    }\n\n    \n\n    @include breakpoint.max($stacked-bp) {\n      // We keep display: grid/subgrid here to respect the stacked parent grid\n      gap: var(--ulu-data-list-column-gap-stacked, get(\"column-gap-stacked\")); \n    }\n\n    @if (get(\"background-color-hover\")) {\n      &:hover {\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n  }\n\n  // Interactive z-index management for borders/shadows\n  #{ $prefix }__item:hover,\n  #{ $prefix }__item:focus-within,\n  #{ $prefix }__header #{ $prefix }__item {\n    position: relative;\n    z-index: 2;\n  }\n\n  // Columns (The cells / wrappers)\n  #{ $prefix }__column {\n    display: flex;\n    align-items: center;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    // Defensive Layout: Prevents flexbox/grid from refusing to shrink below intrinsic content size.\n    // Without this, a long unbroken word or URL could force the column to expand, blowing out the grid.\n    // It allows text-overflow: ellipsis to work safely within a column without breaking the layout.\n    min-width: 0; \n  }\n\n  // Automatic Groups (Subgrid on desktop, stack on smaller screens)\n  #{ $prefix }__column:has(> #{ $prefix }__column) {\n    display: grid;\n    grid-template-columns: subgrid;\n    // Default span is 1, use modifiers below for larger spans\n    \n    @include breakpoint.max($stacked-bp) {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: stretch;\n      gap: var(--ulu-data-list-group-gap-stacked, get(\"group-gap-stacked\")); // Tighter vertical gap when stacked\n    }\n  }\n\n  // Header Row (Optional)\n  #{ $prefix }__header {\n    display: contents; // Removes wrapper so children participate in grid\n\n    // Hide headers when stacked since columns stack\n    @include breakpoint.max($stacked-bp) {\n      display: none;\n    }\n\n    #{ $prefix }__item {\n      font-weight: get(\"header-font-weight\");\n      background-color: transparent;\n      border-bottom: element.optional-border(get(\"header-border-bottom-width\"), get(\"header-border-bottom-color\"));\n      border-radius: 0; // Prevent rounding on headers\n      &:hover {\n        background-color: transparent; // No hover effect on headers\n      }\n    }\n  }\n\n  // Modifiers\n\n  // Structural Edge Modifiers (Decorating the default 1fr track)\n  #{ $prefix }--prefixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr);\n    }\n  }\n  #{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, 1fr auto);\n    }\n  }\n  #{ $prefix }--prefixed#{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr auto);\n    }\n  }\n\n  // Striped Rows\n  #{ $prefix }--striped {\n    @if (get(\"background-color-even\")) {\n      #{ $prefix }__item:nth-child(even) {\n        background-color: color.get(get(\"background-color-even\"));\n      }\n    }\n  }\n\n  // Interactive Rows (Proxy Click Support)\n  // Applied to parent to indicate all rows are interactive\n  #{ $prefix }--clickable {\n    #{ $prefix }__item {\n      cursor: pointer;\n      &:hover,\n      &:focus-within {\n        background-color: color.get(get(\"clickable-background-color-hover\"));\n        border-color: color.get(get(\"clickable-border-color-hover\"));\n      }\n    }\n  }\n\n  // Spanning (Required when a subgrid contains multiple child columns)\n  @for $i from 2 through get(\"span-count\") {\n    #{ $prefix }__column--span-#{$i} {\n      grid-column: span #{$i};\n      \n      // Reset span when stacked so it fits the simplified grid\n      @include breakpoint.max($stacked-bp) {\n        grid-column: auto;\n      }\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 270
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'data-list');\n\n  $prefix: selector.class(\"data-list\");\n  $stacked-bp: get(\"stacked-breakpoint\");\n  $overlap: get(\"overlap-borders\");\n  $border-width: get(\"border-width\");\n  \n  #{ $prefix } {\n    display: grid;\n    \n    @if $overlap {\n      gap: 0; // Forced to 0 when borders overlap to prevent disjointed negative margins\n    } @else {\n      gap: var(--ulu-data-list-row-gap, get(\"row-gap\"));\n    }\n    \n    // Allows inline override via custom property, falls back to config default\n    grid-template-columns: var(--ulu-data-list-columns, get(\"grid-template-columns\"));\n    list-style: none;\n    margin: 0;\n    padding: 0;\n\n    @include breakpoint.max($stacked-bp) {\n      // Switch to stacked grid template (defaults to 100% stack, but can be overridden for persistent cols)\n      grid-template-columns: var(--ulu-data-list-columns-stacked, get(\"grid-template-columns-stacked\"));\n    }\n  }\n\n  // Row Item (Passes the grid down)\n  #{ $prefix }__item {\n    display: grid;\n    grid-template-columns: subgrid;\n    grid-column: 1 / -1;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    border: element.optional-border($border-width, get(\"border-color\"));\n    border-radius: get(\"border-radius\");\n    box-shadow: get(\"box-shadow\");\n\n    @if $overlap {\n      margin-top: calc(-1 * #{ $border-width });\n      &:first-child {\n        margin-top: 0;\n      }\n    }\n\n    \n\n    @include breakpoint.max($stacked-bp) {\n      // We keep display: grid/subgrid here to respect the stacked parent grid\n      gap: var(--ulu-data-list-column-gap-stacked, get(\"column-gap-stacked\")); \n    }\n\n    @if (get(\"background-color-hover\")) {\n      &:hover {\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n  }\n\n  // Interactive z-index management for borders/shadows\n  #{ $prefix }__item:hover,\n  #{ $prefix }__item:focus-within,\n  #{ $prefix }__header #{ $prefix }__item {\n    position: relative;\n    z-index: 2;\n  }\n\n  // Columns (The cells / wrappers)\n  #{ $prefix }__column {\n    display: flex;\n    align-items: center;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    // Defensive Layout: Prevents flexbox/grid from refusing to shrink below intrinsic content size.\n    // Without this, a long unbroken word or URL could force the column to expand, blowing out the grid.\n    // It allows text-overflow: ellipsis to work safely within a column without breaking the layout.\n    min-width: 0; \n  }\n\n  // Automatic Groups (Subgrid on desktop, stack on smaller screens)\n  #{ $prefix }__column:has(> #{ $prefix }__column) {\n    display: grid;\n    grid-template-columns: subgrid;\n    // Default span is 1, use modifiers below for larger spans\n    \n    @include breakpoint.max($stacked-bp) {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: stretch;\n      gap: var(--ulu-data-list-group-gap-stacked, get(\"group-gap-stacked\")); // Tighter vertical gap when stacked\n    }\n  }\n\n  // Header Row (Optional)\n  #{ $prefix }__header {\n    display: contents; // Removes wrapper so children participate in grid\n\n    // Hide headers when stacked since columns stack\n    @include breakpoint.max($stacked-bp) {\n      display: none;\n    }\n\n    #{ $prefix }__item {\n      font-weight: get(\"header-font-weight\");\n      background-color: transparent;\n      border-bottom: element.optional-border(get(\"header-border-bottom-width\"), get(\"header-border-bottom-color\"));\n      border-radius: 0; // Prevent rounding on headers\n      &:hover {\n        background-color: transparent; // No hover effect on headers\n      }\n    }\n  }\n\n  // Modifiers\n\n  // Structural Edge Modifiers (Decorating the default 1fr track)\n  #{ $prefix }--prefixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr);\n    }\n  }\n  #{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, 1fr auto);\n    }\n  }\n  #{ $prefix }--prefixed#{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr auto);\n    }\n  }\n\n  // Striped Rows\n  #{ $prefix }--striped {\n    @if (get(\"background-color-even\")) {\n      #{ $prefix }__item:nth-child(even) {\n        background-color: color.get(get(\"background-color-even\"));\n      }\n    }\n  }\n\n  // Interactive Rows (Proxy Click Support)\n  // Applied to parent to indicate all rows are interactive\n  #{ $prefix }--clickable {\n    #{ $prefix }__item {\n      cursor: pointer;\n      &:hover,\n      &:focus-within {\n        background-color: color.get(get(\"clickable-background-color-hover\"));\n        border-color: color.get(get(\"clickable-border-color-hover\"));\n      }\n    }\n  }\n\n  // Spanning (Required when a subgrid contains multiple child columns)\n  @for $i from 2 through get(\"span-count\") {\n    #{ $prefix }__column--span-#{$i} {\n      grid-column: span #{$i};\n      \n      // Reset span when stacked so it fits the simplified grid\n      @include breakpoint.max($stacked-bp) {\n        grid-column: auto;\n      }\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 270
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'data-list');\n\n  $prefix: selector.class(\"data-list\");\n  $stacked-bp: get(\"stacked-breakpoint\");\n  $overlap: get(\"overlap-borders\");\n  $border-width: get(\"border-width\");\n  \n  #{ $prefix } {\n    display: grid;\n    \n    @if $overlap {\n      gap: 0; // Forced to 0 when borders overlap to prevent disjointed negative margins\n    } @else {\n      gap: var(--ulu-data-list-row-gap, get(\"row-gap\"));\n    }\n    \n    // Allows inline override via custom property, falls back to config default\n    grid-template-columns: var(--ulu-data-list-columns, get(\"grid-template-columns\"));\n    list-style: none;\n    margin: 0;\n    padding: 0;\n\n    @include breakpoint.max($stacked-bp) {\n      // Switch to stacked grid template (defaults to 100% stack, but can be overridden for persistent cols)\n      grid-template-columns: var(--ulu-data-list-columns-stacked, get(\"grid-template-columns-stacked\"));\n    }\n  }\n\n  // Row Item (Passes the grid down)\n  #{ $prefix }__item {\n    display: grid;\n    grid-template-columns: subgrid;\n    grid-column: 1 / -1;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    border: element.optional-border($border-width, get(\"border-color\"));\n    border-radius: get(\"border-radius\");\n    box-shadow: get(\"box-shadow\");\n\n    @if $overlap {\n      margin-top: calc(-1 * #{ $border-width });\n      &:first-child {\n        margin-top: 0;\n      }\n    }\n\n    \n\n    @include breakpoint.max($stacked-bp) {\n      // We keep display: grid/subgrid here to respect the stacked parent grid\n      gap: var(--ulu-data-list-column-gap-stacked, get(\"column-gap-stacked\")); \n    }\n\n    @if (get(\"background-color-hover\")) {\n      &:hover {\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n  }\n\n  // Interactive z-index management for borders/shadows\n  #{ $prefix }__item:hover,\n  #{ $prefix }__item:focus-within,\n  #{ $prefix }__header #{ $prefix }__item {\n    position: relative;\n    z-index: 2;\n  }\n\n  // Columns (The cells / wrappers)\n  #{ $prefix }__column {\n    display: flex;\n    align-items: center;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    // Defensive Layout: Prevents flexbox/grid from refusing to shrink below intrinsic content size.\n    // Without this, a long unbroken word or URL could force the column to expand, blowing out the grid.\n    // It allows text-overflow: ellipsis to work safely within a column without breaking the layout.\n    min-width: 0; \n  }\n\n  // Automatic Groups (Subgrid on desktop, stack on smaller screens)\n  #{ $prefix }__column:has(> #{ $prefix }__column) {\n    display: grid;\n    grid-template-columns: subgrid;\n    // Default span is 1, use modifiers below for larger spans\n    \n    @include breakpoint.max($stacked-bp) {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: stretch;\n      gap: var(--ulu-data-list-group-gap-stacked, get(\"group-gap-stacked\")); // Tighter vertical gap when stacked\n    }\n  }\n\n  // Header Row (Optional)\n  #{ $prefix }__header {\n    display: contents; // Removes wrapper so children participate in grid\n\n    // Hide headers when stacked since columns stack\n    @include breakpoint.max($stacked-bp) {\n      display: none;\n    }\n\n    #{ $prefix }__item {\n      font-weight: get(\"header-font-weight\");\n      background-color: transparent;\n      border-bottom: element.optional-border(get(\"header-border-bottom-width\"), get(\"header-border-bottom-color\"));\n      border-radius: 0; // Prevent rounding on headers\n      &:hover {\n        background-color: transparent; // No hover effect on headers\n      }\n    }\n  }\n\n  // Modifiers\n\n  // Structural Edge Modifiers (Decorating the default 1fr track)\n  #{ $prefix }--prefixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr);\n    }\n  }\n  #{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, 1fr auto);\n    }\n  }\n  #{ $prefix }--prefixed#{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr auto);\n    }\n  }\n\n  // Striped Rows\n  #{ $prefix }--striped {\n    @if (get(\"background-color-even\")) {\n      #{ $prefix }__item:nth-child(even) {\n        background-color: color.get(get(\"background-color-even\"));\n      }\n    }\n  }\n\n  // Interactive Rows (Proxy Click Support)\n  // Applied to parent to indicate all rows are interactive\n  #{ $prefix }--clickable {\n    #{ $prefix }__item {\n      cursor: pointer;\n      &:hover,\n      &:focus-within {\n        background-color: color.get(get(\"clickable-background-color-hover\"));\n        border-color: color.get(get(\"clickable-border-color-hover\"));\n      }\n    }\n  }\n\n  // Spanning (Required when a subgrid contains multiple child columns)\n  @for $i from 2 through get(\"span-count\") {\n    #{ $prefix }__column--span-#{$i} {\n      grid-column: span #{$i};\n      \n      // Reset span when stacked so it fits the simplified grid\n      @include breakpoint.max($stacked-bp) {\n        grid-column: auto;\n      }\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 270
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'data-list');\n\n  $prefix: selector.class(\"data-list\");\n  $stacked-bp: get(\"stacked-breakpoint\");\n  $overlap: get(\"overlap-borders\");\n  $border-width: get(\"border-width\");\n  \n  #{ $prefix } {\n    display: grid;\n    \n    @if $overlap {\n      gap: 0; // Forced to 0 when borders overlap to prevent disjointed negative margins\n    } @else {\n      gap: var(--ulu-data-list-row-gap, get(\"row-gap\"));\n    }\n    \n    // Allows inline override via custom property, falls back to config default\n    grid-template-columns: var(--ulu-data-list-columns, get(\"grid-template-columns\"));\n    list-style: none;\n    margin: 0;\n    padding: 0;\n\n    @include breakpoint.max($stacked-bp) {\n      // Switch to stacked grid template (defaults to 100% stack, but can be overridden for persistent cols)\n      grid-template-columns: var(--ulu-data-list-columns-stacked, get(\"grid-template-columns-stacked\"));\n    }\n  }\n\n  // Row Item (Passes the grid down)\n  #{ $prefix }__item {\n    display: grid;\n    grid-template-columns: subgrid;\n    grid-column: 1 / -1;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    border: element.optional-border($border-width, get(\"border-color\"));\n    border-radius: get(\"border-radius\");\n    box-shadow: get(\"box-shadow\");\n\n    @if $overlap {\n      margin-top: calc(-1 * #{ $border-width });\n      &:first-child {\n        margin-top: 0;\n      }\n    }\n\n    \n\n    @include breakpoint.max($stacked-bp) {\n      // We keep display: grid/subgrid here to respect the stacked parent grid\n      gap: var(--ulu-data-list-column-gap-stacked, get(\"column-gap-stacked\")); \n    }\n\n    @if (get(\"background-color-hover\")) {\n      &:hover {\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n  }\n\n  // Interactive z-index management for borders/shadows\n  #{ $prefix }__item:hover,\n  #{ $prefix }__item:focus-within,\n  #{ $prefix }__header #{ $prefix }__item {\n    position: relative;\n    z-index: 2;\n  }\n\n  // Columns (The cells / wrappers)\n  #{ $prefix }__column {\n    display: flex;\n    align-items: center;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    // Defensive Layout: Prevents flexbox/grid from refusing to shrink below intrinsic content size.\n    // Without this, a long unbroken word or URL could force the column to expand, blowing out the grid.\n    // It allows text-overflow: ellipsis to work safely within a column without breaking the layout.\n    min-width: 0; \n  }\n\n  // Automatic Groups (Subgrid on desktop, stack on smaller screens)\n  #{ $prefix }__column:has(> #{ $prefix }__column) {\n    display: grid;\n    grid-template-columns: subgrid;\n    // Default span is 1, use modifiers below for larger spans\n    \n    @include breakpoint.max($stacked-bp) {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: stretch;\n      gap: var(--ulu-data-list-group-gap-stacked, get(\"group-gap-stacked\")); // Tighter vertical gap when stacked\n    }\n  }\n\n  // Header Row (Optional)\n  #{ $prefix }__header {\n    display: contents; // Removes wrapper so children participate in grid\n\n    // Hide headers when stacked since columns stack\n    @include breakpoint.max($stacked-bp) {\n      display: none;\n    }\n\n    #{ $prefix }__item {\n      font-weight: get(\"header-font-weight\");\n      background-color: transparent;\n      border-bottom: element.optional-border(get(\"header-border-bottom-width\"), get(\"header-border-bottom-color\"));\n      border-radius: 0; // Prevent rounding on headers\n      &:hover {\n        background-color: transparent; // No hover effect on headers\n      }\n    }\n  }\n\n  // Modifiers\n\n  // Structural Edge Modifiers (Decorating the default 1fr track)\n  #{ $prefix }--prefixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr);\n    }\n  }\n  #{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, 1fr auto);\n    }\n  }\n  #{ $prefix }--prefixed#{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr auto);\n    }\n  }\n\n  // Striped Rows\n  #{ $prefix }--striped {\n    @if (get(\"background-color-even\")) {\n      #{ $prefix }__item:nth-child(even) {\n        background-color: color.get(get(\"background-color-even\"));\n      }\n    }\n  }\n\n  // Interactive Rows (Proxy Click Support)\n  // Applied to parent to indicate all rows are interactive\n  #{ $prefix }--clickable {\n    #{ $prefix }__item {\n      cursor: pointer;\n      &:hover,\n      &:focus-within {\n        background-color: color.get(get(\"clickable-background-color-hover\"));\n        border-color: color.get(get(\"clickable-border-color-hover\"));\n      }\n    }\n  }\n\n  // Spanning (Required when a subgrid contains multiple child columns)\n  @for $i from 2 through get(\"span-count\") {\n    #{ $prefix }__column--span-#{$i} {\n      grid-column: span #{$i};\n      \n      // Reset span when stacked so it fits the simplified grid\n      @include breakpoint.max($stacked-bp) {\n        grid-column: auto;\n      }\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 270
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'data-list');\n\n  $prefix: selector.class(\"data-list\");\n  $stacked-bp: get(\"stacked-breakpoint\");\n  $overlap: get(\"overlap-borders\");\n  $border-width: get(\"border-width\");\n  \n  #{ $prefix } {\n    display: grid;\n    \n    @if $overlap {\n      gap: 0; // Forced to 0 when borders overlap to prevent disjointed negative margins\n    } @else {\n      gap: var(--ulu-data-list-row-gap, get(\"row-gap\"));\n    }\n    \n    // Allows inline override via custom property, falls back to config default\n    grid-template-columns: var(--ulu-data-list-columns, get(\"grid-template-columns\"));\n    list-style: none;\n    margin: 0;\n    padding: 0;\n\n    @include breakpoint.max($stacked-bp) {\n      // Switch to stacked grid template (defaults to 100% stack, but can be overridden for persistent cols)\n      grid-template-columns: var(--ulu-data-list-columns-stacked, get(\"grid-template-columns-stacked\"));\n    }\n  }\n\n  // Row Item (Passes the grid down)\n  #{ $prefix }__item {\n    display: grid;\n    grid-template-columns: subgrid;\n    grid-column: 1 / -1;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    border: element.optional-border($border-width, get(\"border-color\"));\n    border-radius: get(\"border-radius\");\n    box-shadow: get(\"box-shadow\");\n\n    @if $overlap {\n      margin-top: calc(-1 * #{ $border-width });\n      &:first-child {\n        margin-top: 0;\n      }\n    }\n\n    \n\n    @include breakpoint.max($stacked-bp) {\n      // We keep display: grid/subgrid here to respect the stacked parent grid\n      gap: var(--ulu-data-list-column-gap-stacked, get(\"column-gap-stacked\")); \n    }\n\n    @if (get(\"background-color-hover\")) {\n      &:hover {\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n  }\n\n  // Interactive z-index management for borders/shadows\n  #{ $prefix }__item:hover,\n  #{ $prefix }__item:focus-within,\n  #{ $prefix }__header #{ $prefix }__item {\n    position: relative;\n    z-index: 2;\n  }\n\n  // Columns (The cells / wrappers)\n  #{ $prefix }__column {\n    display: flex;\n    align-items: center;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    // Defensive Layout: Prevents flexbox/grid from refusing to shrink below intrinsic content size.\n    // Without this, a long unbroken word or URL could force the column to expand, blowing out the grid.\n    // It allows text-overflow: ellipsis to work safely within a column without breaking the layout.\n    min-width: 0; \n  }\n\n  // Automatic Groups (Subgrid on desktop, stack on smaller screens)\n  #{ $prefix }__column:has(> #{ $prefix }__column) {\n    display: grid;\n    grid-template-columns: subgrid;\n    // Default span is 1, use modifiers below for larger spans\n    \n    @include breakpoint.max($stacked-bp) {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: stretch;\n      gap: var(--ulu-data-list-group-gap-stacked, get(\"group-gap-stacked\")); // Tighter vertical gap when stacked\n    }\n  }\n\n  // Header Row (Optional)\n  #{ $prefix }__header {\n    display: contents; // Removes wrapper so children participate in grid\n\n    // Hide headers when stacked since columns stack\n    @include breakpoint.max($stacked-bp) {\n      display: none;\n    }\n\n    #{ $prefix }__item {\n      font-weight: get(\"header-font-weight\");\n      background-color: transparent;\n      border-bottom: element.optional-border(get(\"header-border-bottom-width\"), get(\"header-border-bottom-color\"));\n      border-radius: 0; // Prevent rounding on headers\n      &:hover {\n        background-color: transparent; // No hover effect on headers\n      }\n    }\n  }\n\n  // Modifiers\n\n  // Structural Edge Modifiers (Decorating the default 1fr track)\n  #{ $prefix }--prefixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr);\n    }\n  }\n  #{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, 1fr auto);\n    }\n  }\n  #{ $prefix }--prefixed#{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr auto);\n    }\n  }\n\n  // Striped Rows\n  #{ $prefix }--striped {\n    @if (get(\"background-color-even\")) {\n      #{ $prefix }__item:nth-child(even) {\n        background-color: color.get(get(\"background-color-even\"));\n      }\n    }\n  }\n\n  // Interactive Rows (Proxy Click Support)\n  // Applied to parent to indicate all rows are interactive\n  #{ $prefix }--clickable {\n    #{ $prefix }__item {\n      cursor: pointer;\n      &:hover,\n      &:focus-within {\n        background-color: color.get(get(\"clickable-background-color-hover\"));\n        border-color: color.get(get(\"clickable-border-color-hover\"));\n      }\n    }\n  }\n\n  // Spanning (Required when a subgrid contains multiple child columns)\n  @for $i from 2 through get(\"span-count\") {\n    #{ $prefix }__column--span-#{$i} {\n      grid-column: span #{$i};\n      \n      // Reset span when stacked so it fits the simplified grid\n      @include breakpoint.max($stacked-bp) {\n        grid-column: auto;\n      }\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 270
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'data-list');\n\n  $prefix: selector.class(\"data-list\");\n  $stacked-bp: get(\"stacked-breakpoint\");\n  $overlap: get(\"overlap-borders\");\n  $border-width: get(\"border-width\");\n  \n  #{ $prefix } {\n    display: grid;\n    \n    @if $overlap {\n      gap: 0; // Forced to 0 when borders overlap to prevent disjointed negative margins\n    } @else {\n      gap: var(--ulu-data-list-row-gap, get(\"row-gap\"));\n    }\n    \n    // Allows inline override via custom property, falls back to config default\n    grid-template-columns: var(--ulu-data-list-columns, get(\"grid-template-columns\"));\n    list-style: none;\n    margin: 0;\n    padding: 0;\n\n    @include breakpoint.max($stacked-bp) {\n      // Switch to stacked grid template (defaults to 100% stack, but can be overridden for persistent cols)\n      grid-template-columns: var(--ulu-data-list-columns-stacked, get(\"grid-template-columns-stacked\"));\n    }\n  }\n\n  // Row Item (Passes the grid down)\n  #{ $prefix }__item {\n    display: grid;\n    grid-template-columns: subgrid;\n    grid-column: 1 / -1;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    border: element.optional-border($border-width, get(\"border-color\"));\n    border-radius: get(\"border-radius\");\n    box-shadow: get(\"box-shadow\");\n\n    @if $overlap {\n      margin-top: calc(-1 * #{ $border-width });\n      &:first-child {\n        margin-top: 0;\n      }\n    }\n\n    \n\n    @include breakpoint.max($stacked-bp) {\n      // We keep display: grid/subgrid here to respect the stacked parent grid\n      gap: var(--ulu-data-list-column-gap-stacked, get(\"column-gap-stacked\")); \n    }\n\n    @if (get(\"background-color-hover\")) {\n      &:hover {\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n  }\n\n  // Interactive z-index management for borders/shadows\n  #{ $prefix }__item:hover,\n  #{ $prefix }__item:focus-within,\n  #{ $prefix }__header #{ $prefix }__item {\n    position: relative;\n    z-index: 2;\n  }\n\n  // Columns (The cells / wrappers)\n  #{ $prefix }__column {\n    display: flex;\n    align-items: center;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    // Defensive Layout: Prevents flexbox/grid from refusing to shrink below intrinsic content size.\n    // Without this, a long unbroken word or URL could force the column to expand, blowing out the grid.\n    // It allows text-overflow: ellipsis to work safely within a column without breaking the layout.\n    min-width: 0; \n  }\n\n  // Automatic Groups (Subgrid on desktop, stack on smaller screens)\n  #{ $prefix }__column:has(> #{ $prefix }__column) {\n    display: grid;\n    grid-template-columns: subgrid;\n    // Default span is 1, use modifiers below for larger spans\n    \n    @include breakpoint.max($stacked-bp) {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: stretch;\n      gap: var(--ulu-data-list-group-gap-stacked, get(\"group-gap-stacked\")); // Tighter vertical gap when stacked\n    }\n  }\n\n  // Header Row (Optional)\n  #{ $prefix }__header {\n    display: contents; // Removes wrapper so children participate in grid\n\n    // Hide headers when stacked since columns stack\n    @include breakpoint.max($stacked-bp) {\n      display: none;\n    }\n\n    #{ $prefix }__item {\n      font-weight: get(\"header-font-weight\");\n      background-color: transparent;\n      border-bottom: element.optional-border(get(\"header-border-bottom-width\"), get(\"header-border-bottom-color\"));\n      border-radius: 0; // Prevent rounding on headers\n      &:hover {\n        background-color: transparent; // No hover effect on headers\n      }\n    }\n  }\n\n  // Modifiers\n\n  // Structural Edge Modifiers (Decorating the default 1fr track)\n  #{ $prefix }--prefixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr);\n    }\n  }\n  #{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, 1fr auto);\n    }\n  }\n  #{ $prefix }--prefixed#{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr auto);\n    }\n  }\n\n  // Striped Rows\n  #{ $prefix }--striped {\n    @if (get(\"background-color-even\")) {\n      #{ $prefix }__item:nth-child(even) {\n        background-color: color.get(get(\"background-color-even\"));\n      }\n    }\n  }\n\n  // Interactive Rows (Proxy Click Support)\n  // Applied to parent to indicate all rows are interactive\n  #{ $prefix }--clickable {\n    #{ $prefix }__item {\n      cursor: pointer;\n      &:hover,\n      &:focus-within {\n        background-color: color.get(get(\"clickable-background-color-hover\"));\n        border-color: color.get(get(\"clickable-border-color-hover\"));\n      }\n    }\n  }\n\n  // Spanning (Required when a subgrid contains multiple child columns)\n  @for $i from 2 through get(\"span-count\") {\n    #{ $prefix }__column--span-#{$i} {\n      grid-column: span #{$i};\n      \n      // Reset span when stacked so it fits the simplified grid\n      @include breakpoint.max($stacked-bp) {\n        grid-column: auto;\n      }\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 270
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'data-list');\n\n  $prefix: selector.class(\"data-list\");\n  $stacked-bp: get(\"stacked-breakpoint\");\n  $overlap: get(\"overlap-borders\");\n  $border-width: get(\"border-width\");\n  \n  #{ $prefix } {\n    display: grid;\n    \n    @if $overlap {\n      gap: 0; // Forced to 0 when borders overlap to prevent disjointed negative margins\n    } @else {\n      gap: var(--ulu-data-list-row-gap, get(\"row-gap\"));\n    }\n    \n    // Allows inline override via custom property, falls back to config default\n    grid-template-columns: var(--ulu-data-list-columns, get(\"grid-template-columns\"));\n    list-style: none;\n    margin: 0;\n    padding: 0;\n\n    @include breakpoint.max($stacked-bp) {\n      // Switch to stacked grid template (defaults to 100% stack, but can be overridden for persistent cols)\n      grid-template-columns: var(--ulu-data-list-columns-stacked, get(\"grid-template-columns-stacked\"));\n    }\n  }\n\n  // Row Item (Passes the grid down)\n  #{ $prefix }__item {\n    display: grid;\n    grid-template-columns: subgrid;\n    grid-column: 1 / -1;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    border: element.optional-border($border-width, get(\"border-color\"));\n    border-radius: get(\"border-radius\");\n    box-shadow: get(\"box-shadow\");\n\n    @if $overlap {\n      margin-top: calc(-1 * #{ $border-width });\n      &:first-child {\n        margin-top: 0;\n      }\n    }\n\n    \n\n    @include breakpoint.max($stacked-bp) {\n      // We keep display: grid/subgrid here to respect the stacked parent grid\n      gap: var(--ulu-data-list-column-gap-stacked, get(\"column-gap-stacked\")); \n    }\n\n    @if (get(\"background-color-hover\")) {\n      &:hover {\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n  }\n\n  // Interactive z-index management for borders/shadows\n  #{ $prefix }__item:hover,\n  #{ $prefix }__item:focus-within,\n  #{ $prefix }__header #{ $prefix }__item {\n    position: relative;\n    z-index: 2;\n  }\n\n  // Columns (The cells / wrappers)\n  #{ $prefix }__column {\n    display: flex;\n    align-items: center;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    // Defensive Layout: Prevents flexbox/grid from refusing to shrink below intrinsic content size.\n    // Without this, a long unbroken word or URL could force the column to expand, blowing out the grid.\n    // It allows text-overflow: ellipsis to work safely within a column without breaking the layout.\n    min-width: 0; \n  }\n\n  // Automatic Groups (Subgrid on desktop, stack on smaller screens)\n  #{ $prefix }__column:has(> #{ $prefix }__column) {\n    display: grid;\n    grid-template-columns: subgrid;\n    // Default span is 1, use modifiers below for larger spans\n    \n    @include breakpoint.max($stacked-bp) {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: stretch;\n      gap: var(--ulu-data-list-group-gap-stacked, get(\"group-gap-stacked\")); // Tighter vertical gap when stacked\n    }\n  }\n\n  // Header Row (Optional)\n  #{ $prefix }__header {\n    display: contents; // Removes wrapper so children participate in grid\n\n    // Hide headers when stacked since columns stack\n    @include breakpoint.max($stacked-bp) {\n      display: none;\n    }\n\n    #{ $prefix }__item {\n      font-weight: get(\"header-font-weight\");\n      background-color: transparent;\n      border-bottom: element.optional-border(get(\"header-border-bottom-width\"), get(\"header-border-bottom-color\"));\n      border-radius: 0; // Prevent rounding on headers\n      &:hover {\n        background-color: transparent; // No hover effect on headers\n      }\n    }\n  }\n\n  // Modifiers\n\n  // Structural Edge Modifiers (Decorating the default 1fr track)\n  #{ $prefix }--prefixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr);\n    }\n  }\n  #{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, 1fr auto);\n    }\n  }\n  #{ $prefix }--prefixed#{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr auto);\n    }\n  }\n\n  // Striped Rows\n  #{ $prefix }--striped {\n    @if (get(\"background-color-even\")) {\n      #{ $prefix }__item:nth-child(even) {\n        background-color: color.get(get(\"background-color-even\"));\n      }\n    }\n  }\n\n  // Interactive Rows (Proxy Click Support)\n  // Applied to parent to indicate all rows are interactive\n  #{ $prefix }--clickable {\n    #{ $prefix }__item {\n      cursor: pointer;\n      &:hover,\n      &:focus-within {\n        background-color: color.get(get(\"clickable-background-color-hover\"));\n        border-color: color.get(get(\"clickable-border-color-hover\"));\n      }\n    }\n  }\n\n  // Spanning (Required when a subgrid contains multiple child columns)\n  @for $i from 2 through get(\"span-count\") {\n    #{ $prefix }__column--span-#{$i} {\n      grid-column: span #{$i};\n      \n      // Reset span when stacked so it fits the simplified grid\n      @include breakpoint.max($stacked-bp) {\n        grid-column: auto;\n      }\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 270
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'data-list');\n\n  $prefix: selector.class(\"data-list\");\n  $stacked-bp: get(\"stacked-breakpoint\");\n  $overlap: get(\"overlap-borders\");\n  $border-width: get(\"border-width\");\n  \n  #{ $prefix } {\n    display: grid;\n    \n    @if $overlap {\n      gap: 0; // Forced to 0 when borders overlap to prevent disjointed negative margins\n    } @else {\n      gap: var(--ulu-data-list-row-gap, get(\"row-gap\"));\n    }\n    \n    // Allows inline override via custom property, falls back to config default\n    grid-template-columns: var(--ulu-data-list-columns, get(\"grid-template-columns\"));\n    list-style: none;\n    margin: 0;\n    padding: 0;\n\n    @include breakpoint.max($stacked-bp) {\n      // Switch to stacked grid template (defaults to 100% stack, but can be overridden for persistent cols)\n      grid-template-columns: var(--ulu-data-list-columns-stacked, get(\"grid-template-columns-stacked\"));\n    }\n  }\n\n  // Row Item (Passes the grid down)\n  #{ $prefix }__item {\n    display: grid;\n    grid-template-columns: subgrid;\n    grid-column: 1 / -1;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    border: element.optional-border($border-width, get(\"border-color\"));\n    border-radius: get(\"border-radius\");\n    box-shadow: get(\"box-shadow\");\n\n    @if $overlap {\n      margin-top: calc(-1 * #{ $border-width });\n      &:first-child {\n        margin-top: 0;\n      }\n    }\n\n    \n\n    @include breakpoint.max($stacked-bp) {\n      // We keep display: grid/subgrid here to respect the stacked parent grid\n      gap: var(--ulu-data-list-column-gap-stacked, get(\"column-gap-stacked\")); \n    }\n\n    @if (get(\"background-color-hover\")) {\n      &:hover {\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n  }\n\n  // Interactive z-index management for borders/shadows\n  #{ $prefix }__item:hover,\n  #{ $prefix }__item:focus-within,\n  #{ $prefix }__header #{ $prefix }__item {\n    position: relative;\n    z-index: 2;\n  }\n\n  // Columns (The cells / wrappers)\n  #{ $prefix }__column {\n    display: flex;\n    align-items: center;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    // Defensive Layout: Prevents flexbox/grid from refusing to shrink below intrinsic content size.\n    // Without this, a long unbroken word or URL could force the column to expand, blowing out the grid.\n    // It allows text-overflow: ellipsis to work safely within a column without breaking the layout.\n    min-width: 0; \n  }\n\n  // Automatic Groups (Subgrid on desktop, stack on smaller screens)\n  #{ $prefix }__column:has(> #{ $prefix }__column) {\n    display: grid;\n    grid-template-columns: subgrid;\n    // Default span is 1, use modifiers below for larger spans\n    \n    @include breakpoint.max($stacked-bp) {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: stretch;\n      gap: var(--ulu-data-list-group-gap-stacked, get(\"group-gap-stacked\")); // Tighter vertical gap when stacked\n    }\n  }\n\n  // Header Row (Optional)\n  #{ $prefix }__header {\n    display: contents; // Removes wrapper so children participate in grid\n\n    // Hide headers when stacked since columns stack\n    @include breakpoint.max($stacked-bp) {\n      display: none;\n    }\n\n    #{ $prefix }__item {\n      font-weight: get(\"header-font-weight\");\n      background-color: transparent;\n      border-bottom: element.optional-border(get(\"header-border-bottom-width\"), get(\"header-border-bottom-color\"));\n      border-radius: 0; // Prevent rounding on headers\n      &:hover {\n        background-color: transparent; // No hover effect on headers\n      }\n    }\n  }\n\n  // Modifiers\n\n  // Structural Edge Modifiers (Decorating the default 1fr track)\n  #{ $prefix }--prefixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr);\n    }\n  }\n  #{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, 1fr auto);\n    }\n  }\n  #{ $prefix }--prefixed#{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr auto);\n    }\n  }\n\n  // Striped Rows\n  #{ $prefix }--striped {\n    @if (get(\"background-color-even\")) {\n      #{ $prefix }__item:nth-child(even) {\n        background-color: color.get(get(\"background-color-even\"));\n      }\n    }\n  }\n\n  // Interactive Rows (Proxy Click Support)\n  // Applied to parent to indicate all rows are interactive\n  #{ $prefix }--clickable {\n    #{ $prefix }__item {\n      cursor: pointer;\n      &:hover,\n      &:focus-within {\n        background-color: color.get(get(\"clickable-background-color-hover\"));\n        border-color: color.get(get(\"clickable-border-color-hover\"));\n      }\n    }\n  }\n\n  // Spanning (Required when a subgrid contains multiple child columns)\n  @for $i from 2 through get(\"span-count\") {\n    #{ $prefix }__column--span-#{$i} {\n      grid-column: span #{$i};\n      \n      // Reset span when stacked so it fits the simplified grid\n      @include breakpoint.max($stacked-bp) {\n        grid-column: auto;\n      }\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 270
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'data-list');\n\n  $prefix: selector.class(\"data-list\");\n  $stacked-bp: get(\"stacked-breakpoint\");\n  $overlap: get(\"overlap-borders\");\n  $border-width: get(\"border-width\");\n  \n  #{ $prefix } {\n    display: grid;\n    \n    @if $overlap {\n      gap: 0; // Forced to 0 when borders overlap to prevent disjointed negative margins\n    } @else {\n      gap: var(--ulu-data-list-row-gap, get(\"row-gap\"));\n    }\n    \n    // Allows inline override via custom property, falls back to config default\n    grid-template-columns: var(--ulu-data-list-columns, get(\"grid-template-columns\"));\n    list-style: none;\n    margin: 0;\n    padding: 0;\n\n    @include breakpoint.max($stacked-bp) {\n      // Switch to stacked grid template (defaults to 100% stack, but can be overridden for persistent cols)\n      grid-template-columns: var(--ulu-data-list-columns-stacked, get(\"grid-template-columns-stacked\"));\n    }\n  }\n\n  // Row Item (Passes the grid down)\n  #{ $prefix }__item {\n    display: grid;\n    grid-template-columns: subgrid;\n    grid-column: 1 / -1;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    border: element.optional-border($border-width, get(\"border-color\"));\n    border-radius: get(\"border-radius\");\n    box-shadow: get(\"box-shadow\");\n\n    @if $overlap {\n      margin-top: calc(-1 * #{ $border-width });\n      &:first-child {\n        margin-top: 0;\n      }\n    }\n\n    \n\n    @include breakpoint.max($stacked-bp) {\n      // We keep display: grid/subgrid here to respect the stacked parent grid\n      gap: var(--ulu-data-list-column-gap-stacked, get(\"column-gap-stacked\")); \n    }\n\n    @if (get(\"background-color-hover\")) {\n      &:hover {\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n  }\n\n  // Interactive z-index management for borders/shadows\n  #{ $prefix }__item:hover,\n  #{ $prefix }__item:focus-within,\n  #{ $prefix }__header #{ $prefix }__item {\n    position: relative;\n    z-index: 2;\n  }\n\n  // Columns (The cells / wrappers)\n  #{ $prefix }__column {\n    display: flex;\n    align-items: center;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    // Defensive Layout: Prevents flexbox/grid from refusing to shrink below intrinsic content size.\n    // Without this, a long unbroken word or URL could force the column to expand, blowing out the grid.\n    // It allows text-overflow: ellipsis to work safely within a column without breaking the layout.\n    min-width: 0; \n  }\n\n  // Automatic Groups (Subgrid on desktop, stack on smaller screens)\n  #{ $prefix }__column:has(> #{ $prefix }__column) {\n    display: grid;\n    grid-template-columns: subgrid;\n    // Default span is 1, use modifiers below for larger spans\n    \n    @include breakpoint.max($stacked-bp) {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: stretch;\n      gap: var(--ulu-data-list-group-gap-stacked, get(\"group-gap-stacked\")); // Tighter vertical gap when stacked\n    }\n  }\n\n  // Header Row (Optional)\n  #{ $prefix }__header {\n    display: contents; // Removes wrapper so children participate in grid\n\n    // Hide headers when stacked since columns stack\n    @include breakpoint.max($stacked-bp) {\n      display: none;\n    }\n\n    #{ $prefix }__item {\n      font-weight: get(\"header-font-weight\");\n      background-color: transparent;\n      border-bottom: element.optional-border(get(\"header-border-bottom-width\"), get(\"header-border-bottom-color\"));\n      border-radius: 0; // Prevent rounding on headers\n      &:hover {\n        background-color: transparent; // No hover effect on headers\n      }\n    }\n  }\n\n  // Modifiers\n\n  // Structural Edge Modifiers (Decorating the default 1fr track)\n  #{ $prefix }--prefixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr);\n    }\n  }\n  #{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, 1fr auto);\n    }\n  }\n  #{ $prefix }--prefixed#{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr auto);\n    }\n  }\n\n  // Striped Rows\n  #{ $prefix }--striped {\n    @if (get(\"background-color-even\")) {\n      #{ $prefix }__item:nth-child(even) {\n        background-color: color.get(get(\"background-color-even\"));\n      }\n    }\n  }\n\n  // Interactive Rows (Proxy Click Support)\n  // Applied to parent to indicate all rows are interactive\n  #{ $prefix }--clickable {\n    #{ $prefix }__item {\n      cursor: pointer;\n      &:hover,\n      &:focus-within {\n        background-color: color.get(get(\"clickable-background-color-hover\"));\n        border-color: color.get(get(\"clickable-border-color-hover\"));\n      }\n    }\n  }\n\n  // Spanning (Required when a subgrid contains multiple child columns)\n  @for $i from 2 through get(\"span-count\") {\n    #{ $prefix }__column--span-#{$i} {\n      grid-column: span #{$i};\n      \n      // Reset span when stacked so it fits the simplified grid\n      @include breakpoint.max($stacked-bp) {\n        grid-column: auto;\n      }\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 270
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'data-list');\n\n  $prefix: selector.class(\"data-list\");\n  $stacked-bp: get(\"stacked-breakpoint\");\n  $overlap: get(\"overlap-borders\");\n  $border-width: get(\"border-width\");\n  \n  #{ $prefix } {\n    display: grid;\n    \n    @if $overlap {\n      gap: 0; // Forced to 0 when borders overlap to prevent disjointed negative margins\n    } @else {\n      gap: var(--ulu-data-list-row-gap, get(\"row-gap\"));\n    }\n    \n    // Allows inline override via custom property, falls back to config default\n    grid-template-columns: var(--ulu-data-list-columns, get(\"grid-template-columns\"));\n    list-style: none;\n    margin: 0;\n    padding: 0;\n\n    @include breakpoint.max($stacked-bp) {\n      // Switch to stacked grid template (defaults to 100% stack, but can be overridden for persistent cols)\n      grid-template-columns: var(--ulu-data-list-columns-stacked, get(\"grid-template-columns-stacked\"));\n    }\n  }\n\n  // Row Item (Passes the grid down)\n  #{ $prefix }__item {\n    display: grid;\n    grid-template-columns: subgrid;\n    grid-column: 1 / -1;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    border: element.optional-border($border-width, get(\"border-color\"));\n    border-radius: get(\"border-radius\");\n    box-shadow: get(\"box-shadow\");\n\n    @if $overlap {\n      margin-top: calc(-1 * #{ $border-width });\n      &:first-child {\n        margin-top: 0;\n      }\n    }\n\n    \n\n    @include breakpoint.max($stacked-bp) {\n      // We keep display: grid/subgrid here to respect the stacked parent grid\n      gap: var(--ulu-data-list-column-gap-stacked, get(\"column-gap-stacked\")); \n    }\n\n    @if (get(\"background-color-hover\")) {\n      &:hover {\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n  }\n\n  // Interactive z-index management for borders/shadows\n  #{ $prefix }__item:hover,\n  #{ $prefix }__item:focus-within,\n  #{ $prefix }__header #{ $prefix }__item {\n    position: relative;\n    z-index: 2;\n  }\n\n  // Columns (The cells / wrappers)\n  #{ $prefix }__column {\n    display: flex;\n    align-items: center;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    // Defensive Layout: Prevents flexbox/grid from refusing to shrink below intrinsic content size.\n    // Without this, a long unbroken word or URL could force the column to expand, blowing out the grid.\n    // It allows text-overflow: ellipsis to work safely within a column without breaking the layout.\n    min-width: 0; \n  }\n\n  // Automatic Groups (Subgrid on desktop, stack on smaller screens)\n  #{ $prefix }__column:has(> #{ $prefix }__column) {\n    display: grid;\n    grid-template-columns: subgrid;\n    // Default span is 1, use modifiers below for larger spans\n    \n    @include breakpoint.max($stacked-bp) {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: stretch;\n      gap: var(--ulu-data-list-group-gap-stacked, get(\"group-gap-stacked\")); // Tighter vertical gap when stacked\n    }\n  }\n\n  // Header Row (Optional)\n  #{ $prefix }__header {\n    display: contents; // Removes wrapper so children participate in grid\n\n    // Hide headers when stacked since columns stack\n    @include breakpoint.max($stacked-bp) {\n      display: none;\n    }\n\n    #{ $prefix }__item {\n      font-weight: get(\"header-font-weight\");\n      background-color: transparent;\n      border-bottom: element.optional-border(get(\"header-border-bottom-width\"), get(\"header-border-bottom-color\"));\n      border-radius: 0; // Prevent rounding on headers\n      &:hover {\n        background-color: transparent; // No hover effect on headers\n      }\n    }\n  }\n\n  // Modifiers\n\n  // Structural Edge Modifiers (Decorating the default 1fr track)\n  #{ $prefix }--prefixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr);\n    }\n  }\n  #{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, 1fr auto);\n    }\n  }\n  #{ $prefix }--prefixed#{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr auto);\n    }\n  }\n\n  // Striped Rows\n  #{ $prefix }--striped {\n    @if (get(\"background-color-even\")) {\n      #{ $prefix }__item:nth-child(even) {\n        background-color: color.get(get(\"background-color-even\"));\n      }\n    }\n  }\n\n  // Interactive Rows (Proxy Click Support)\n  // Applied to parent to indicate all rows are interactive\n  #{ $prefix }--clickable {\n    #{ $prefix }__item {\n      cursor: pointer;\n      &:hover,\n      &:focus-within {\n        background-color: color.get(get(\"clickable-background-color-hover\"));\n        border-color: color.get(get(\"clickable-border-color-hover\"));\n      }\n    }\n  }\n\n  // Spanning (Required when a subgrid contains multiple child columns)\n  @for $i from 2 through get(\"span-count\") {\n    #{ $prefix }__column--span-#{$i} {\n      grid-column: span #{$i};\n      \n      // Reset span when stacked so it fits the simplified grid\n      @include breakpoint.max($stacked-bp) {\n        grid-column: auto;\n      }\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 270
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'data-list');\n\n  $prefix: selector.class(\"data-list\");\n  $stacked-bp: get(\"stacked-breakpoint\");\n  $overlap: get(\"overlap-borders\");\n  $border-width: get(\"border-width\");\n  \n  #{ $prefix } {\n    display: grid;\n    \n    @if $overlap {\n      gap: 0; // Forced to 0 when borders overlap to prevent disjointed negative margins\n    } @else {\n      gap: var(--ulu-data-list-row-gap, get(\"row-gap\"));\n    }\n    \n    // Allows inline override via custom property, falls back to config default\n    grid-template-columns: var(--ulu-data-list-columns, get(\"grid-template-columns\"));\n    list-style: none;\n    margin: 0;\n    padding: 0;\n\n    @include breakpoint.max($stacked-bp) {\n      // Switch to stacked grid template (defaults to 100% stack, but can be overridden for persistent cols)\n      grid-template-columns: var(--ulu-data-list-columns-stacked, get(\"grid-template-columns-stacked\"));\n    }\n  }\n\n  // Row Item (Passes the grid down)\n  #{ $prefix }__item {\n    display: grid;\n    grid-template-columns: subgrid;\n    grid-column: 1 / -1;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    border: element.optional-border($border-width, get(\"border-color\"));\n    border-radius: get(\"border-radius\");\n    box-shadow: get(\"box-shadow\");\n\n    @if $overlap {\n      margin-top: calc(-1 * #{ $border-width });\n      &:first-child {\n        margin-top: 0;\n      }\n    }\n\n    \n\n    @include breakpoint.max($stacked-bp) {\n      // We keep display: grid/subgrid here to respect the stacked parent grid\n      gap: var(--ulu-data-list-column-gap-stacked, get(\"column-gap-stacked\")); \n    }\n\n    @if (get(\"background-color-hover\")) {\n      &:hover {\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n  }\n\n  // Interactive z-index management for borders/shadows\n  #{ $prefix }__item:hover,\n  #{ $prefix }__item:focus-within,\n  #{ $prefix }__header #{ $prefix }__item {\n    position: relative;\n    z-index: 2;\n  }\n\n  // Columns (The cells / wrappers)\n  #{ $prefix }__column {\n    display: flex;\n    align-items: center;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    // Defensive Layout: Prevents flexbox/grid from refusing to shrink below intrinsic content size.\n    // Without this, a long unbroken word or URL could force the column to expand, blowing out the grid.\n    // It allows text-overflow: ellipsis to work safely within a column without breaking the layout.\n    min-width: 0; \n  }\n\n  // Automatic Groups (Subgrid on desktop, stack on smaller screens)\n  #{ $prefix }__column:has(> #{ $prefix }__column) {\n    display: grid;\n    grid-template-columns: subgrid;\n    // Default span is 1, use modifiers below for larger spans\n    \n    @include breakpoint.max($stacked-bp) {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: stretch;\n      gap: var(--ulu-data-list-group-gap-stacked, get(\"group-gap-stacked\")); // Tighter vertical gap when stacked\n    }\n  }\n\n  // Header Row (Optional)\n  #{ $prefix }__header {\n    display: contents; // Removes wrapper so children participate in grid\n\n    // Hide headers when stacked since columns stack\n    @include breakpoint.max($stacked-bp) {\n      display: none;\n    }\n\n    #{ $prefix }__item {\n      font-weight: get(\"header-font-weight\");\n      background-color: transparent;\n      border-bottom: element.optional-border(get(\"header-border-bottom-width\"), get(\"header-border-bottom-color\"));\n      border-radius: 0; // Prevent rounding on headers\n      &:hover {\n        background-color: transparent; // No hover effect on headers\n      }\n    }\n  }\n\n  // Modifiers\n\n  // Structural Edge Modifiers (Decorating the default 1fr track)\n  #{ $prefix }--prefixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr);\n    }\n  }\n  #{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, 1fr auto);\n    }\n  }\n  #{ $prefix }--prefixed#{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr auto);\n    }\n  }\n\n  // Striped Rows\n  #{ $prefix }--striped {\n    @if (get(\"background-color-even\")) {\n      #{ $prefix }__item:nth-child(even) {\n        background-color: color.get(get(\"background-color-even\"));\n      }\n    }\n  }\n\n  // Interactive Rows (Proxy Click Support)\n  // Applied to parent to indicate all rows are interactive\n  #{ $prefix }--clickable {\n    #{ $prefix }__item {\n      cursor: pointer;\n      &:hover,\n      &:focus-within {\n        background-color: color.get(get(\"clickable-background-color-hover\"));\n        border-color: color.get(get(\"clickable-border-color-hover\"));\n      }\n    }\n  }\n\n  // Spanning (Required when a subgrid contains multiple child columns)\n  @for $i from 2 through get(\"span-count\") {\n    #{ $prefix }__column--span-#{$i} {\n      grid-column: span #{$i};\n      \n      // Reset span when stacked so it fits the simplified grid\n      @include breakpoint.max($stacked-bp) {\n        grid-column: auto;\n      }\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 270
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'data-list');\n\n  $prefix: selector.class(\"data-list\");\n  $stacked-bp: get(\"stacked-breakpoint\");\n  $overlap: get(\"overlap-borders\");\n  $border-width: get(\"border-width\");\n  \n  #{ $prefix } {\n    display: grid;\n    \n    @if $overlap {\n      gap: 0; // Forced to 0 when borders overlap to prevent disjointed negative margins\n    } @else {\n      gap: var(--ulu-data-list-row-gap, get(\"row-gap\"));\n    }\n    \n    // Allows inline override via custom property, falls back to config default\n    grid-template-columns: var(--ulu-data-list-columns, get(\"grid-template-columns\"));\n    list-style: none;\n    margin: 0;\n    padding: 0;\n\n    @include breakpoint.max($stacked-bp) {\n      // Switch to stacked grid template (defaults to 100% stack, but can be overridden for persistent cols)\n      grid-template-columns: var(--ulu-data-list-columns-stacked, get(\"grid-template-columns-stacked\"));\n    }\n  }\n\n  // Row Item (Passes the grid down)\n  #{ $prefix }__item {\n    display: grid;\n    grid-template-columns: subgrid;\n    grid-column: 1 / -1;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    border: element.optional-border($border-width, get(\"border-color\"));\n    border-radius: get(\"border-radius\");\n    box-shadow: get(\"box-shadow\");\n\n    @if $overlap {\n      margin-top: calc(-1 * #{ $border-width });\n      &:first-child {\n        margin-top: 0;\n      }\n    }\n\n    \n\n    @include breakpoint.max($stacked-bp) {\n      // We keep display: grid/subgrid here to respect the stacked parent grid\n      gap: var(--ulu-data-list-column-gap-stacked, get(\"column-gap-stacked\")); \n    }\n\n    @if (get(\"background-color-hover\")) {\n      &:hover {\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n  }\n\n  // Interactive z-index management for borders/shadows\n  #{ $prefix }__item:hover,\n  #{ $prefix }__item:focus-within,\n  #{ $prefix }__header #{ $prefix }__item {\n    position: relative;\n    z-index: 2;\n  }\n\n  // Columns (The cells / wrappers)\n  #{ $prefix }__column {\n    display: flex;\n    align-items: center;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    // Defensive Layout: Prevents flexbox/grid from refusing to shrink below intrinsic content size.\n    // Without this, a long unbroken word or URL could force the column to expand, blowing out the grid.\n    // It allows text-overflow: ellipsis to work safely within a column without breaking the layout.\n    min-width: 0; \n  }\n\n  // Automatic Groups (Subgrid on desktop, stack on smaller screens)\n  #{ $prefix }__column:has(> #{ $prefix }__column) {\n    display: grid;\n    grid-template-columns: subgrid;\n    // Default span is 1, use modifiers below for larger spans\n    \n    @include breakpoint.max($stacked-bp) {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: stretch;\n      gap: var(--ulu-data-list-group-gap-stacked, get(\"group-gap-stacked\")); // Tighter vertical gap when stacked\n    }\n  }\n\n  // Header Row (Optional)\n  #{ $prefix }__header {\n    display: contents; // Removes wrapper so children participate in grid\n\n    // Hide headers when stacked since columns stack\n    @include breakpoint.max($stacked-bp) {\n      display: none;\n    }\n\n    #{ $prefix }__item {\n      font-weight: get(\"header-font-weight\");\n      background-color: transparent;\n      border-bottom: element.optional-border(get(\"header-border-bottom-width\"), get(\"header-border-bottom-color\"));\n      border-radius: 0; // Prevent rounding on headers\n      &:hover {\n        background-color: transparent; // No hover effect on headers\n      }\n    }\n  }\n\n  // Modifiers\n\n  // Structural Edge Modifiers (Decorating the default 1fr track)\n  #{ $prefix }--prefixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr);\n    }\n  }\n  #{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, 1fr auto);\n    }\n  }\n  #{ $prefix }--prefixed#{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr auto);\n    }\n  }\n\n  // Striped Rows\n  #{ $prefix }--striped {\n    @if (get(\"background-color-even\")) {\n      #{ $prefix }__item:nth-child(even) {\n        background-color: color.get(get(\"background-color-even\"));\n      }\n    }\n  }\n\n  // Interactive Rows (Proxy Click Support)\n  // Applied to parent to indicate all rows are interactive\n  #{ $prefix }--clickable {\n    #{ $prefix }__item {\n      cursor: pointer;\n      &:hover,\n      &:focus-within {\n        background-color: color.get(get(\"clickable-background-color-hover\"));\n        border-color: color.get(get(\"clickable-border-color-hover\"));\n      }\n    }\n  }\n\n  // Spanning (Required when a subgrid contains multiple child columns)\n  @for $i from 2 through get(\"span-count\") {\n    #{ $prefix }__column--span-#{$i} {\n      grid-column: span #{$i};\n      \n      // Reset span when stacked so it fits the simplified grid\n      @include breakpoint.max($stacked-bp) {\n        grid-column: auto;\n      }\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 270
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'data-list');\n\n  $prefix: selector.class(\"data-list\");\n  $stacked-bp: get(\"stacked-breakpoint\");\n  $overlap: get(\"overlap-borders\");\n  $border-width: get(\"border-width\");\n  \n  #{ $prefix } {\n    display: grid;\n    \n    @if $overlap {\n      gap: 0; // Forced to 0 when borders overlap to prevent disjointed negative margins\n    } @else {\n      gap: var(--ulu-data-list-row-gap, get(\"row-gap\"));\n    }\n    \n    // Allows inline override via custom property, falls back to config default\n    grid-template-columns: var(--ulu-data-list-columns, get(\"grid-template-columns\"));\n    list-style: none;\n    margin: 0;\n    padding: 0;\n\n    @include breakpoint.max($stacked-bp) {\n      // Switch to stacked grid template (defaults to 100% stack, but can be overridden for persistent cols)\n      grid-template-columns: var(--ulu-data-list-columns-stacked, get(\"grid-template-columns-stacked\"));\n    }\n  }\n\n  // Row Item (Passes the grid down)\n  #{ $prefix }__item {\n    display: grid;\n    grid-template-columns: subgrid;\n    grid-column: 1 / -1;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    border: element.optional-border($border-width, get(\"border-color\"));\n    border-radius: get(\"border-radius\");\n    box-shadow: get(\"box-shadow\");\n\n    @if $overlap {\n      margin-top: calc(-1 * #{ $border-width });\n      &:first-child {\n        margin-top: 0;\n      }\n    }\n\n    \n\n    @include breakpoint.max($stacked-bp) {\n      // We keep display: grid/subgrid here to respect the stacked parent grid\n      gap: var(--ulu-data-list-column-gap-stacked, get(\"column-gap-stacked\")); \n    }\n\n    @if (get(\"background-color-hover\")) {\n      &:hover {\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n  }\n\n  // Interactive z-index management for borders/shadows\n  #{ $prefix }__item:hover,\n  #{ $prefix }__item:focus-within,\n  #{ $prefix }__header #{ $prefix }__item {\n    position: relative;\n    z-index: 2;\n  }\n\n  // Columns (The cells / wrappers)\n  #{ $prefix }__column {\n    display: flex;\n    align-items: center;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    // Defensive Layout: Prevents flexbox/grid from refusing to shrink below intrinsic content size.\n    // Without this, a long unbroken word or URL could force the column to expand, blowing out the grid.\n    // It allows text-overflow: ellipsis to work safely within a column without breaking the layout.\n    min-width: 0; \n  }\n\n  // Automatic Groups (Subgrid on desktop, stack on smaller screens)\n  #{ $prefix }__column:has(> #{ $prefix }__column) {\n    display: grid;\n    grid-template-columns: subgrid;\n    // Default span is 1, use modifiers below for larger spans\n    \n    @include breakpoint.max($stacked-bp) {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: stretch;\n      gap: var(--ulu-data-list-group-gap-stacked, get(\"group-gap-stacked\")); // Tighter vertical gap when stacked\n    }\n  }\n\n  // Header Row (Optional)\n  #{ $prefix }__header {\n    display: contents; // Removes wrapper so children participate in grid\n\n    // Hide headers when stacked since columns stack\n    @include breakpoint.max($stacked-bp) {\n      display: none;\n    }\n\n    #{ $prefix }__item {\n      font-weight: get(\"header-font-weight\");\n      background-color: transparent;\n      border-bottom: element.optional-border(get(\"header-border-bottom-width\"), get(\"header-border-bottom-color\"));\n      border-radius: 0; // Prevent rounding on headers\n      &:hover {\n        background-color: transparent; // No hover effect on headers\n      }\n    }\n  }\n\n  // Modifiers\n\n  // Structural Edge Modifiers (Decorating the default 1fr track)\n  #{ $prefix }--prefixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr);\n    }\n  }\n  #{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, 1fr auto);\n    }\n  }\n  #{ $prefix }--prefixed#{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr auto);\n    }\n  }\n\n  // Striped Rows\n  #{ $prefix }--striped {\n    @if (get(\"background-color-even\")) {\n      #{ $prefix }__item:nth-child(even) {\n        background-color: color.get(get(\"background-color-even\"));\n      }\n    }\n  }\n\n  // Interactive Rows (Proxy Click Support)\n  // Applied to parent to indicate all rows are interactive\n  #{ $prefix }--clickable {\n    #{ $prefix }__item {\n      cursor: pointer;\n      &:hover,\n      &:focus-within {\n        background-color: color.get(get(\"clickable-background-color-hover\"));\n        border-color: color.get(get(\"clickable-border-color-hover\"));\n      }\n    }\n  }\n\n  // Spanning (Required when a subgrid contains multiple child columns)\n  @for $i from 2 through get(\"span-count\") {\n    #{ $prefix }__column--span-#{$i} {\n      grid-column: span #{$i};\n      \n      // Reset span when stacked so it fits the simplified grid\n      @include breakpoint.max($stacked-bp) {\n        grid-column: auto;\n      }\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 270
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'data-list');\n\n  $prefix: selector.class(\"data-list\");\n  $stacked-bp: get(\"stacked-breakpoint\");\n  $overlap: get(\"overlap-borders\");\n  $border-width: get(\"border-width\");\n  \n  #{ $prefix } {\n    display: grid;\n    \n    @if $overlap {\n      gap: 0; // Forced to 0 when borders overlap to prevent disjointed negative margins\n    } @else {\n      gap: var(--ulu-data-list-row-gap, get(\"row-gap\"));\n    }\n    \n    // Allows inline override via custom property, falls back to config default\n    grid-template-columns: var(--ulu-data-list-columns, get(\"grid-template-columns\"));\n    list-style: none;\n    margin: 0;\n    padding: 0;\n\n    @include breakpoint.max($stacked-bp) {\n      // Switch to stacked grid template (defaults to 100% stack, but can be overridden for persistent cols)\n      grid-template-columns: var(--ulu-data-list-columns-stacked, get(\"grid-template-columns-stacked\"));\n    }\n  }\n\n  // Row Item (Passes the grid down)\n  #{ $prefix }__item {\n    display: grid;\n    grid-template-columns: subgrid;\n    grid-column: 1 / -1;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    border: element.optional-border($border-width, get(\"border-color\"));\n    border-radius: get(\"border-radius\");\n    box-shadow: get(\"box-shadow\");\n\n    @if $overlap {\n      margin-top: calc(-1 * #{ $border-width });\n      &:first-child {\n        margin-top: 0;\n      }\n    }\n\n    \n\n    @include breakpoint.max($stacked-bp) {\n      // We keep display: grid/subgrid here to respect the stacked parent grid\n      gap: var(--ulu-data-list-column-gap-stacked, get(\"column-gap-stacked\")); \n    }\n\n    @if (get(\"background-color-hover\")) {\n      &:hover {\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n  }\n\n  // Interactive z-index management for borders/shadows\n  #{ $prefix }__item:hover,\n  #{ $prefix }__item:focus-within,\n  #{ $prefix }__header #{ $prefix }__item {\n    position: relative;\n    z-index: 2;\n  }\n\n  // Columns (The cells / wrappers)\n  #{ $prefix }__column {\n    display: flex;\n    align-items: center;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    // Defensive Layout: Prevents flexbox/grid from refusing to shrink below intrinsic content size.\n    // Without this, a long unbroken word or URL could force the column to expand, blowing out the grid.\n    // It allows text-overflow: ellipsis to work safely within a column without breaking the layout.\n    min-width: 0; \n  }\n\n  // Automatic Groups (Subgrid on desktop, stack on smaller screens)\n  #{ $prefix }__column:has(> #{ $prefix }__column) {\n    display: grid;\n    grid-template-columns: subgrid;\n    // Default span is 1, use modifiers below for larger spans\n    \n    @include breakpoint.max($stacked-bp) {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: stretch;\n      gap: var(--ulu-data-list-group-gap-stacked, get(\"group-gap-stacked\")); // Tighter vertical gap when stacked\n    }\n  }\n\n  // Header Row (Optional)\n  #{ $prefix }__header {\n    display: contents; // Removes wrapper so children participate in grid\n\n    // Hide headers when stacked since columns stack\n    @include breakpoint.max($stacked-bp) {\n      display: none;\n    }\n\n    #{ $prefix }__item {\n      font-weight: get(\"header-font-weight\");\n      background-color: transparent;\n      border-bottom: element.optional-border(get(\"header-border-bottom-width\"), get(\"header-border-bottom-color\"));\n      border-radius: 0; // Prevent rounding on headers\n      &:hover {\n        background-color: transparent; // No hover effect on headers\n      }\n    }\n  }\n\n  // Modifiers\n\n  // Structural Edge Modifiers (Decorating the default 1fr track)\n  #{ $prefix }--prefixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr);\n    }\n  }\n  #{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, 1fr auto);\n    }\n  }\n  #{ $prefix }--prefixed#{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr auto);\n    }\n  }\n\n  // Striped Rows\n  #{ $prefix }--striped {\n    @if (get(\"background-color-even\")) {\n      #{ $prefix }__item:nth-child(even) {\n        background-color: color.get(get(\"background-color-even\"));\n      }\n    }\n  }\n\n  // Interactive Rows (Proxy Click Support)\n  // Applied to parent to indicate all rows are interactive\n  #{ $prefix }--clickable {\n    #{ $prefix }__item {\n      cursor: pointer;\n      &:hover,\n      &:focus-within {\n        background-color: color.get(get(\"clickable-background-color-hover\"));\n        border-color: color.get(get(\"clickable-border-color-hover\"));\n      }\n    }\n  }\n\n  // Spanning (Required when a subgrid contains multiple child columns)\n  @for $i from 2 through get(\"span-count\") {\n    #{ $prefix }__column--span-#{$i} {\n      grid-column: span #{$i};\n      \n      // Reset span when stacked so it fits the simplified grid\n      @include breakpoint.max($stacked-bp) {\n        grid-column: auto;\n      }\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 270
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'data-list');\n\n  $prefix: selector.class(\"data-list\");\n  $stacked-bp: get(\"stacked-breakpoint\");\n  $overlap: get(\"overlap-borders\");\n  $border-width: get(\"border-width\");\n  \n  #{ $prefix } {\n    display: grid;\n    \n    @if $overlap {\n      gap: 0; // Forced to 0 when borders overlap to prevent disjointed negative margins\n    } @else {\n      gap: var(--ulu-data-list-row-gap, get(\"row-gap\"));\n    }\n    \n    // Allows inline override via custom property, falls back to config default\n    grid-template-columns: var(--ulu-data-list-columns, get(\"grid-template-columns\"));\n    list-style: none;\n    margin: 0;\n    padding: 0;\n\n    @include breakpoint.max($stacked-bp) {\n      // Switch to stacked grid template (defaults to 100% stack, but can be overridden for persistent cols)\n      grid-template-columns: var(--ulu-data-list-columns-stacked, get(\"grid-template-columns-stacked\"));\n    }\n  }\n\n  // Row Item (Passes the grid down)\n  #{ $prefix }__item {\n    display: grid;\n    grid-template-columns: subgrid;\n    grid-column: 1 / -1;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    border: element.optional-border($border-width, get(\"border-color\"));\n    border-radius: get(\"border-radius\");\n    box-shadow: get(\"box-shadow\");\n\n    @if $overlap {\n      margin-top: calc(-1 * #{ $border-width });\n      &:first-child {\n        margin-top: 0;\n      }\n    }\n\n    \n\n    @include breakpoint.max($stacked-bp) {\n      // We keep display: grid/subgrid here to respect the stacked parent grid\n      gap: var(--ulu-data-list-column-gap-stacked, get(\"column-gap-stacked\")); \n    }\n\n    @if (get(\"background-color-hover\")) {\n      &:hover {\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n  }\n\n  // Interactive z-index management for borders/shadows\n  #{ $prefix }__item:hover,\n  #{ $prefix }__item:focus-within,\n  #{ $prefix }__header #{ $prefix }__item {\n    position: relative;\n    z-index: 2;\n  }\n\n  // Columns (The cells / wrappers)\n  #{ $prefix }__column {\n    display: flex;\n    align-items: center;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    // Defensive Layout: Prevents flexbox/grid from refusing to shrink below intrinsic content size.\n    // Without this, a long unbroken word or URL could force the column to expand, blowing out the grid.\n    // It allows text-overflow: ellipsis to work safely within a column without breaking the layout.\n    min-width: 0; \n  }\n\n  // Automatic Groups (Subgrid on desktop, stack on smaller screens)\n  #{ $prefix }__column:has(> #{ $prefix }__column) {\n    display: grid;\n    grid-template-columns: subgrid;\n    // Default span is 1, use modifiers below for larger spans\n    \n    @include breakpoint.max($stacked-bp) {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: stretch;\n      gap: var(--ulu-data-list-group-gap-stacked, get(\"group-gap-stacked\")); // Tighter vertical gap when stacked\n    }\n  }\n\n  // Header Row (Optional)\n  #{ $prefix }__header {\n    display: contents; // Removes wrapper so children participate in grid\n\n    // Hide headers when stacked since columns stack\n    @include breakpoint.max($stacked-bp) {\n      display: none;\n    }\n\n    #{ $prefix }__item {\n      font-weight: get(\"header-font-weight\");\n      background-color: transparent;\n      border-bottom: element.optional-border(get(\"header-border-bottom-width\"), get(\"header-border-bottom-color\"));\n      border-radius: 0; // Prevent rounding on headers\n      &:hover {\n        background-color: transparent; // No hover effect on headers\n      }\n    }\n  }\n\n  // Modifiers\n\n  // Structural Edge Modifiers (Decorating the default 1fr track)\n  #{ $prefix }--prefixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr);\n    }\n  }\n  #{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, 1fr auto);\n    }\n  }\n  #{ $prefix }--prefixed#{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr auto);\n    }\n  }\n\n  // Striped Rows\n  #{ $prefix }--striped {\n    @if (get(\"background-color-even\")) {\n      #{ $prefix }__item:nth-child(even) {\n        background-color: color.get(get(\"background-color-even\"));\n      }\n    }\n  }\n\n  // Interactive Rows (Proxy Click Support)\n  // Applied to parent to indicate all rows are interactive\n  #{ $prefix }--clickable {\n    #{ $prefix }__item {\n      cursor: pointer;\n      &:hover,\n      &:focus-within {\n        background-color: color.get(get(\"clickable-background-color-hover\"));\n        border-color: color.get(get(\"clickable-border-color-hover\"));\n      }\n    }\n  }\n\n  // Spanning (Required when a subgrid contains multiple child columns)\n  @for $i from 2 through get(\"span-count\") {\n    #{ $prefix }__column--span-#{$i} {\n      grid-column: span #{$i};\n      \n      // Reset span when stacked so it fits the simplified grid\n      @include breakpoint.max($stacked-bp) {\n        grid-column: auto;\n      }\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 270
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'data-list');\n\n  $prefix: selector.class(\"data-list\");\n  $stacked-bp: get(\"stacked-breakpoint\");\n  $overlap: get(\"overlap-borders\");\n  $border-width: get(\"border-width\");\n  \n  #{ $prefix } {\n    display: grid;\n    \n    @if $overlap {\n      gap: 0; // Forced to 0 when borders overlap to prevent disjointed negative margins\n    } @else {\n      gap: var(--ulu-data-list-row-gap, get(\"row-gap\"));\n    }\n    \n    // Allows inline override via custom property, falls back to config default\n    grid-template-columns: var(--ulu-data-list-columns, get(\"grid-template-columns\"));\n    list-style: none;\n    margin: 0;\n    padding: 0;\n\n    @include breakpoint.max($stacked-bp) {\n      // Switch to stacked grid template (defaults to 100% stack, but can be overridden for persistent cols)\n      grid-template-columns: var(--ulu-data-list-columns-stacked, get(\"grid-template-columns-stacked\"));\n    }\n  }\n\n  // Row Item (Passes the grid down)\n  #{ $prefix }__item {\n    display: grid;\n    grid-template-columns: subgrid;\n    grid-column: 1 / -1;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    border: element.optional-border($border-width, get(\"border-color\"));\n    border-radius: get(\"border-radius\");\n    box-shadow: get(\"box-shadow\");\n\n    @if $overlap {\n      margin-top: calc(-1 * #{ $border-width });\n      &:first-child {\n        margin-top: 0;\n      }\n    }\n\n    \n\n    @include breakpoint.max($stacked-bp) {\n      // We keep display: grid/subgrid here to respect the stacked parent grid\n      gap: var(--ulu-data-list-column-gap-stacked, get(\"column-gap-stacked\")); \n    }\n\n    @if (get(\"background-color-hover\")) {\n      &:hover {\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n  }\n\n  // Interactive z-index management for borders/shadows\n  #{ $prefix }__item:hover,\n  #{ $prefix }__item:focus-within,\n  #{ $prefix }__header #{ $prefix }__item {\n    position: relative;\n    z-index: 2;\n  }\n\n  // Columns (The cells / wrappers)\n  #{ $prefix }__column {\n    display: flex;\n    align-items: center;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    // Defensive Layout: Prevents flexbox/grid from refusing to shrink below intrinsic content size.\n    // Without this, a long unbroken word or URL could force the column to expand, blowing out the grid.\n    // It allows text-overflow: ellipsis to work safely within a column without breaking the layout.\n    min-width: 0; \n  }\n\n  // Automatic Groups (Subgrid on desktop, stack on smaller screens)\n  #{ $prefix }__column:has(> #{ $prefix }__column) {\n    display: grid;\n    grid-template-columns: subgrid;\n    // Default span is 1, use modifiers below for larger spans\n    \n    @include breakpoint.max($stacked-bp) {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: stretch;\n      gap: var(--ulu-data-list-group-gap-stacked, get(\"group-gap-stacked\")); // Tighter vertical gap when stacked\n    }\n  }\n\n  // Header Row (Optional)\n  #{ $prefix }__header {\n    display: contents; // Removes wrapper so children participate in grid\n\n    // Hide headers when stacked since columns stack\n    @include breakpoint.max($stacked-bp) {\n      display: none;\n    }\n\n    #{ $prefix }__item {\n      font-weight: get(\"header-font-weight\");\n      background-color: transparent;\n      border-bottom: element.optional-border(get(\"header-border-bottom-width\"), get(\"header-border-bottom-color\"));\n      border-radius: 0; // Prevent rounding on headers\n      &:hover {\n        background-color: transparent; // No hover effect on headers\n      }\n    }\n  }\n\n  // Modifiers\n\n  // Structural Edge Modifiers (Decorating the default 1fr track)\n  #{ $prefix }--prefixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr);\n    }\n  }\n  #{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, 1fr auto);\n    }\n  }\n  #{ $prefix }--prefixed#{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr auto);\n    }\n  }\n\n  // Striped Rows\n  #{ $prefix }--striped {\n    @if (get(\"background-color-even\")) {\n      #{ $prefix }__item:nth-child(even) {\n        background-color: color.get(get(\"background-color-even\"));\n      }\n    }\n  }\n\n  // Interactive Rows (Proxy Click Support)\n  // Applied to parent to indicate all rows are interactive\n  #{ $prefix }--clickable {\n    #{ $prefix }__item {\n      cursor: pointer;\n      &:hover,\n      &:focus-within {\n        background-color: color.get(get(\"clickable-background-color-hover\"));\n        border-color: color.get(get(\"clickable-border-color-hover\"));\n      }\n    }\n  }\n\n  // Spanning (Required when a subgrid contains multiple child columns)\n  @for $i from 2 through get(\"span-count\") {\n    #{ $prefix }__column--span-#{$i} {\n      grid-column: span #{$i};\n      \n      // Reset span when stacked so it fits the simplified grid\n      @include breakpoint.max($stacked-bp) {\n        grid-column: auto;\n      }\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 270
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'data-list');\n\n  $prefix: selector.class(\"data-list\");\n  $stacked-bp: get(\"stacked-breakpoint\");\n  $overlap: get(\"overlap-borders\");\n  $border-width: get(\"border-width\");\n  \n  #{ $prefix } {\n    display: grid;\n    \n    @if $overlap {\n      gap: 0; // Forced to 0 when borders overlap to prevent disjointed negative margins\n    } @else {\n      gap: var(--ulu-data-list-row-gap, get(\"row-gap\"));\n    }\n    \n    // Allows inline override via custom property, falls back to config default\n    grid-template-columns: var(--ulu-data-list-columns, get(\"grid-template-columns\"));\n    list-style: none;\n    margin: 0;\n    padding: 0;\n\n    @include breakpoint.max($stacked-bp) {\n      // Switch to stacked grid template (defaults to 100% stack, but can be overridden for persistent cols)\n      grid-template-columns: var(--ulu-data-list-columns-stacked, get(\"grid-template-columns-stacked\"));\n    }\n  }\n\n  // Row Item (Passes the grid down)\n  #{ $prefix }__item {\n    display: grid;\n    grid-template-columns: subgrid;\n    grid-column: 1 / -1;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    border: element.optional-border($border-width, get(\"border-color\"));\n    border-radius: get(\"border-radius\");\n    box-shadow: get(\"box-shadow\");\n\n    @if $overlap {\n      margin-top: calc(-1 * #{ $border-width });\n      &:first-child {\n        margin-top: 0;\n      }\n    }\n\n    \n\n    @include breakpoint.max($stacked-bp) {\n      // We keep display: grid/subgrid here to respect the stacked parent grid\n      gap: var(--ulu-data-list-column-gap-stacked, get(\"column-gap-stacked\")); \n    }\n\n    @if (get(\"background-color-hover\")) {\n      &:hover {\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n  }\n\n  // Interactive z-index management for borders/shadows\n  #{ $prefix }__item:hover,\n  #{ $prefix }__item:focus-within,\n  #{ $prefix }__header #{ $prefix }__item {\n    position: relative;\n    z-index: 2;\n  }\n\n  // Columns (The cells / wrappers)\n  #{ $prefix }__column {\n    display: flex;\n    align-items: center;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    // Defensive Layout: Prevents flexbox/grid from refusing to shrink below intrinsic content size.\n    // Without this, a long unbroken word or URL could force the column to expand, blowing out the grid.\n    // It allows text-overflow: ellipsis to work safely within a column without breaking the layout.\n    min-width: 0; \n  }\n\n  // Automatic Groups (Subgrid on desktop, stack on smaller screens)\n  #{ $prefix }__column:has(> #{ $prefix }__column) {\n    display: grid;\n    grid-template-columns: subgrid;\n    // Default span is 1, use modifiers below for larger spans\n    \n    @include breakpoint.max($stacked-bp) {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: stretch;\n      gap: var(--ulu-data-list-group-gap-stacked, get(\"group-gap-stacked\")); // Tighter vertical gap when stacked\n    }\n  }\n\n  // Header Row (Optional)\n  #{ $prefix }__header {\n    display: contents; // Removes wrapper so children participate in grid\n\n    // Hide headers when stacked since columns stack\n    @include breakpoint.max($stacked-bp) {\n      display: none;\n    }\n\n    #{ $prefix }__item {\n      font-weight: get(\"header-font-weight\");\n      background-color: transparent;\n      border-bottom: element.optional-border(get(\"header-border-bottom-width\"), get(\"header-border-bottom-color\"));\n      border-radius: 0; // Prevent rounding on headers\n      &:hover {\n        background-color: transparent; // No hover effect on headers\n      }\n    }\n  }\n\n  // Modifiers\n\n  // Structural Edge Modifiers (Decorating the default 1fr track)\n  #{ $prefix }--prefixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr);\n    }\n  }\n  #{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, 1fr auto);\n    }\n  }\n  #{ $prefix }--prefixed#{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr auto);\n    }\n  }\n\n  // Striped Rows\n  #{ $prefix }--striped {\n    @if (get(\"background-color-even\")) {\n      #{ $prefix }__item:nth-child(even) {\n        background-color: color.get(get(\"background-color-even\"));\n      }\n    }\n  }\n\n  // Interactive Rows (Proxy Click Support)\n  // Applied to parent to indicate all rows are interactive\n  #{ $prefix }--clickable {\n    #{ $prefix }__item {\n      cursor: pointer;\n      &:hover,\n      &:focus-within {\n        background-color: color.get(get(\"clickable-background-color-hover\"));\n        border-color: color.get(get(\"clickable-border-color-hover\"));\n      }\n    }\n  }\n\n  // Spanning (Required when a subgrid contains multiple child columns)\n  @for $i from 2 through get(\"span-count\") {\n    #{ $prefix }__column--span-#{$i} {\n      grid-column: span #{$i};\n      \n      // Reset span when stacked so it fits the simplified grid\n      @include breakpoint.max($stacked-bp) {\n        grid-column: auto;\n      }\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 270
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'data-list');\n\n  $prefix: selector.class(\"data-list\");\n  $stacked-bp: get(\"stacked-breakpoint\");\n  $overlap: get(\"overlap-borders\");\n  $border-width: get(\"border-width\");\n  \n  #{ $prefix } {\n    display: grid;\n    \n    @if $overlap {\n      gap: 0; // Forced to 0 when borders overlap to prevent disjointed negative margins\n    } @else {\n      gap: var(--ulu-data-list-row-gap, get(\"row-gap\"));\n    }\n    \n    // Allows inline override via custom property, falls back to config default\n    grid-template-columns: var(--ulu-data-list-columns, get(\"grid-template-columns\"));\n    list-style: none;\n    margin: 0;\n    padding: 0;\n\n    @include breakpoint.max($stacked-bp) {\n      // Switch to stacked grid template (defaults to 100% stack, but can be overridden for persistent cols)\n      grid-template-columns: var(--ulu-data-list-columns-stacked, get(\"grid-template-columns-stacked\"));\n    }\n  }\n\n  // Row Item (Passes the grid down)\n  #{ $prefix }__item {\n    display: grid;\n    grid-template-columns: subgrid;\n    grid-column: 1 / -1;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    border: element.optional-border($border-width, get(\"border-color\"));\n    border-radius: get(\"border-radius\");\n    box-shadow: get(\"box-shadow\");\n\n    @if $overlap {\n      margin-top: calc(-1 * #{ $border-width });\n      &:first-child {\n        margin-top: 0;\n      }\n    }\n\n    \n\n    @include breakpoint.max($stacked-bp) {\n      // We keep display: grid/subgrid here to respect the stacked parent grid\n      gap: var(--ulu-data-list-column-gap-stacked, get(\"column-gap-stacked\")); \n    }\n\n    @if (get(\"background-color-hover\")) {\n      &:hover {\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n  }\n\n  // Interactive z-index management for borders/shadows\n  #{ $prefix }__item:hover,\n  #{ $prefix }__item:focus-within,\n  #{ $prefix }__header #{ $prefix }__item {\n    position: relative;\n    z-index: 2;\n  }\n\n  // Columns (The cells / wrappers)\n  #{ $prefix }__column {\n    display: flex;\n    align-items: center;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    // Defensive Layout: Prevents flexbox/grid from refusing to shrink below intrinsic content size.\n    // Without this, a long unbroken word or URL could force the column to expand, blowing out the grid.\n    // It allows text-overflow: ellipsis to work safely within a column without breaking the layout.\n    min-width: 0; \n  }\n\n  // Automatic Groups (Subgrid on desktop, stack on smaller screens)\n  #{ $prefix }__column:has(> #{ $prefix }__column) {\n    display: grid;\n    grid-template-columns: subgrid;\n    // Default span is 1, use modifiers below for larger spans\n    \n    @include breakpoint.max($stacked-bp) {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: stretch;\n      gap: var(--ulu-data-list-group-gap-stacked, get(\"group-gap-stacked\")); // Tighter vertical gap when stacked\n    }\n  }\n\n  // Header Row (Optional)\n  #{ $prefix }__header {\n    display: contents; // Removes wrapper so children participate in grid\n\n    // Hide headers when stacked since columns stack\n    @include breakpoint.max($stacked-bp) {\n      display: none;\n    }\n\n    #{ $prefix }__item {\n      font-weight: get(\"header-font-weight\");\n      background-color: transparent;\n      border-bottom: element.optional-border(get(\"header-border-bottom-width\"), get(\"header-border-bottom-color\"));\n      border-radius: 0; // Prevent rounding on headers\n      &:hover {\n        background-color: transparent; // No hover effect on headers\n      }\n    }\n  }\n\n  // Modifiers\n\n  // Structural Edge Modifiers (Decorating the default 1fr track)\n  #{ $prefix }--prefixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr);\n    }\n  }\n  #{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, 1fr auto);\n    }\n  }\n  #{ $prefix }--prefixed#{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr auto);\n    }\n  }\n\n  // Striped Rows\n  #{ $prefix }--striped {\n    @if (get(\"background-color-even\")) {\n      #{ $prefix }__item:nth-child(even) {\n        background-color: color.get(get(\"background-color-even\"));\n      }\n    }\n  }\n\n  // Interactive Rows (Proxy Click Support)\n  // Applied to parent to indicate all rows are interactive\n  #{ $prefix }--clickable {\n    #{ $prefix }__item {\n      cursor: pointer;\n      &:hover,\n      &:focus-within {\n        background-color: color.get(get(\"clickable-background-color-hover\"));\n        border-color: color.get(get(\"clickable-border-color-hover\"));\n      }\n    }\n  }\n\n  // Spanning (Required when a subgrid contains multiple child columns)\n  @for $i from 2 through get(\"span-count\") {\n    #{ $prefix }__column--span-#{$i} {\n      grid-column: span #{$i};\n      \n      // Reset span when stacked so it fits the simplified grid\n      @include breakpoint.max($stacked-bp) {\n        grid-column: auto;\n      }\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 270
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'data-list');\n\n  $prefix: selector.class(\"data-list\");\n  $stacked-bp: get(\"stacked-breakpoint\");\n  $overlap: get(\"overlap-borders\");\n  $border-width: get(\"border-width\");\n  \n  #{ $prefix } {\n    display: grid;\n    \n    @if $overlap {\n      gap: 0; // Forced to 0 when borders overlap to prevent disjointed negative margins\n    } @else {\n      gap: var(--ulu-data-list-row-gap, get(\"row-gap\"));\n    }\n    \n    // Allows inline override via custom property, falls back to config default\n    grid-template-columns: var(--ulu-data-list-columns, get(\"grid-template-columns\"));\n    list-style: none;\n    margin: 0;\n    padding: 0;\n\n    @include breakpoint.max($stacked-bp) {\n      // Switch to stacked grid template (defaults to 100% stack, but can be overridden for persistent cols)\n      grid-template-columns: var(--ulu-data-list-columns-stacked, get(\"grid-template-columns-stacked\"));\n    }\n  }\n\n  // Row Item (Passes the grid down)\n  #{ $prefix }__item {\n    display: grid;\n    grid-template-columns: subgrid;\n    grid-column: 1 / -1;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    border: element.optional-border($border-width, get(\"border-color\"));\n    border-radius: get(\"border-radius\");\n    box-shadow: get(\"box-shadow\");\n\n    @if $overlap {\n      margin-top: calc(-1 * #{ $border-width });\n      &:first-child {\n        margin-top: 0;\n      }\n    }\n\n    \n\n    @include breakpoint.max($stacked-bp) {\n      // We keep display: grid/subgrid here to respect the stacked parent grid\n      gap: var(--ulu-data-list-column-gap-stacked, get(\"column-gap-stacked\")); \n    }\n\n    @if (get(\"background-color-hover\")) {\n      &:hover {\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n  }\n\n  // Interactive z-index management for borders/shadows\n  #{ $prefix }__item:hover,\n  #{ $prefix }__item:focus-within,\n  #{ $prefix }__header #{ $prefix }__item {\n    position: relative;\n    z-index: 2;\n  }\n\n  // Columns (The cells / wrappers)\n  #{ $prefix }__column {\n    display: flex;\n    align-items: center;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    // Defensive Layout: Prevents flexbox/grid from refusing to shrink below intrinsic content size.\n    // Without this, a long unbroken word or URL could force the column to expand, blowing out the grid.\n    // It allows text-overflow: ellipsis to work safely within a column without breaking the layout.\n    min-width: 0; \n  }\n\n  // Automatic Groups (Subgrid on desktop, stack on smaller screens)\n  #{ $prefix }__column:has(> #{ $prefix }__column) {\n    display: grid;\n    grid-template-columns: subgrid;\n    // Default span is 1, use modifiers below for larger spans\n    \n    @include breakpoint.max($stacked-bp) {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: stretch;\n      gap: var(--ulu-data-list-group-gap-stacked, get(\"group-gap-stacked\")); // Tighter vertical gap when stacked\n    }\n  }\n\n  // Header Row (Optional)\n  #{ $prefix }__header {\n    display: contents; // Removes wrapper so children participate in grid\n\n    // Hide headers when stacked since columns stack\n    @include breakpoint.max($stacked-bp) {\n      display: none;\n    }\n\n    #{ $prefix }__item {\n      font-weight: get(\"header-font-weight\");\n      background-color: transparent;\n      border-bottom: element.optional-border(get(\"header-border-bottom-width\"), get(\"header-border-bottom-color\"));\n      border-radius: 0; // Prevent rounding on headers\n      &:hover {\n        background-color: transparent; // No hover effect on headers\n      }\n    }\n  }\n\n  // Modifiers\n\n  // Structural Edge Modifiers (Decorating the default 1fr track)\n  #{ $prefix }--prefixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr);\n    }\n  }\n  #{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, 1fr auto);\n    }\n  }\n  #{ $prefix }--prefixed#{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr auto);\n    }\n  }\n\n  // Striped Rows\n  #{ $prefix }--striped {\n    @if (get(\"background-color-even\")) {\n      #{ $prefix }__item:nth-child(even) {\n        background-color: color.get(get(\"background-color-even\"));\n      }\n    }\n  }\n\n  // Interactive Rows (Proxy Click Support)\n  // Applied to parent to indicate all rows are interactive\n  #{ $prefix }--clickable {\n    #{ $prefix }__item {\n      cursor: pointer;\n      &:hover,\n      &:focus-within {\n        background-color: color.get(get(\"clickable-background-color-hover\"));\n        border-color: color.get(get(\"clickable-border-color-hover\"));\n      }\n    }\n  }\n\n  // Spanning (Required when a subgrid contains multiple child columns)\n  @for $i from 2 through get(\"span-count\") {\n    #{ $prefix }__column--span-#{$i} {\n      grid-column: span #{$i};\n      \n      // Reset span when stacked so it fits the simplified grid\n      @include breakpoint.max($stacked-bp) {\n        grid-column: auto;\n      }\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 270
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'data-list');\n\n  $prefix: selector.class(\"data-list\");\n  $stacked-bp: get(\"stacked-breakpoint\");\n  $overlap: get(\"overlap-borders\");\n  $border-width: get(\"border-width\");\n  \n  #{ $prefix } {\n    display: grid;\n    \n    @if $overlap {\n      gap: 0; // Forced to 0 when borders overlap to prevent disjointed negative margins\n    } @else {\n      gap: var(--ulu-data-list-row-gap, get(\"row-gap\"));\n    }\n    \n    // Allows inline override via custom property, falls back to config default\n    grid-template-columns: var(--ulu-data-list-columns, get(\"grid-template-columns\"));\n    list-style: none;\n    margin: 0;\n    padding: 0;\n\n    @include breakpoint.max($stacked-bp) {\n      // Switch to stacked grid template (defaults to 100% stack, but can be overridden for persistent cols)\n      grid-template-columns: var(--ulu-data-list-columns-stacked, get(\"grid-template-columns-stacked\"));\n    }\n  }\n\n  // Row Item (Passes the grid down)\n  #{ $prefix }__item {\n    display: grid;\n    grid-template-columns: subgrid;\n    grid-column: 1 / -1;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    border: element.optional-border($border-width, get(\"border-color\"));\n    border-radius: get(\"border-radius\");\n    box-shadow: get(\"box-shadow\");\n\n    @if $overlap {\n      margin-top: calc(-1 * #{ $border-width });\n      &:first-child {\n        margin-top: 0;\n      }\n    }\n\n    \n\n    @include breakpoint.max($stacked-bp) {\n      // We keep display: grid/subgrid here to respect the stacked parent grid\n      gap: var(--ulu-data-list-column-gap-stacked, get(\"column-gap-stacked\")); \n    }\n\n    @if (get(\"background-color-hover\")) {\n      &:hover {\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n  }\n\n  // Interactive z-index management for borders/shadows\n  #{ $prefix }__item:hover,\n  #{ $prefix }__item:focus-within,\n  #{ $prefix }__header #{ $prefix }__item {\n    position: relative;\n    z-index: 2;\n  }\n\n  // Columns (The cells / wrappers)\n  #{ $prefix }__column {\n    display: flex;\n    align-items: center;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    // Defensive Layout: Prevents flexbox/grid from refusing to shrink below intrinsic content size.\n    // Without this, a long unbroken word or URL could force the column to expand, blowing out the grid.\n    // It allows text-overflow: ellipsis to work safely within a column without breaking the layout.\n    min-width: 0; \n  }\n\n  // Automatic Groups (Subgrid on desktop, stack on smaller screens)\n  #{ $prefix }__column:has(> #{ $prefix }__column) {\n    display: grid;\n    grid-template-columns: subgrid;\n    // Default span is 1, use modifiers below for larger spans\n    \n    @include breakpoint.max($stacked-bp) {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: stretch;\n      gap: var(--ulu-data-list-group-gap-stacked, get(\"group-gap-stacked\")); // Tighter vertical gap when stacked\n    }\n  }\n\n  // Header Row (Optional)\n  #{ $prefix }__header {\n    display: contents; // Removes wrapper so children participate in grid\n\n    // Hide headers when stacked since columns stack\n    @include breakpoint.max($stacked-bp) {\n      display: none;\n    }\n\n    #{ $prefix }__item {\n      font-weight: get(\"header-font-weight\");\n      background-color: transparent;\n      border-bottom: element.optional-border(get(\"header-border-bottom-width\"), get(\"header-border-bottom-color\"));\n      border-radius: 0; // Prevent rounding on headers\n      &:hover {\n        background-color: transparent; // No hover effect on headers\n      }\n    }\n  }\n\n  // Modifiers\n\n  // Structural Edge Modifiers (Decorating the default 1fr track)\n  #{ $prefix }--prefixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr);\n    }\n  }\n  #{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, 1fr auto);\n    }\n  }\n  #{ $prefix }--prefixed#{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr auto);\n    }\n  }\n\n  // Striped Rows\n  #{ $prefix }--striped {\n    @if (get(\"background-color-even\")) {\n      #{ $prefix }__item:nth-child(even) {\n        background-color: color.get(get(\"background-color-even\"));\n      }\n    }\n  }\n\n  // Interactive Rows (Proxy Click Support)\n  // Applied to parent to indicate all rows are interactive\n  #{ $prefix }--clickable {\n    #{ $prefix }__item {\n      cursor: pointer;\n      &:hover,\n      &:focus-within {\n        background-color: color.get(get(\"clickable-background-color-hover\"));\n        border-color: color.get(get(\"clickable-border-color-hover\"));\n      }\n    }\n  }\n\n  // Spanning (Required when a subgrid contains multiple child columns)\n  @for $i from 2 through get(\"span-count\") {\n    #{ $prefix }__column--span-#{$i} {\n      grid-column: span #{$i};\n      \n      // Reset span when stacked so it fits the simplified grid\n      @include breakpoint.max($stacked-bp) {\n        grid-column: auto;\n      }\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 270
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'data-list');\n\n  $prefix: selector.class(\"data-list\");\n  $stacked-bp: get(\"stacked-breakpoint\");\n  $overlap: get(\"overlap-borders\");\n  $border-width: get(\"border-width\");\n  \n  #{ $prefix } {\n    display: grid;\n    \n    @if $overlap {\n      gap: 0; // Forced to 0 when borders overlap to prevent disjointed negative margins\n    } @else {\n      gap: var(--ulu-data-list-row-gap, get(\"row-gap\"));\n    }\n    \n    // Allows inline override via custom property, falls back to config default\n    grid-template-columns: var(--ulu-data-list-columns, get(\"grid-template-columns\"));\n    list-style: none;\n    margin: 0;\n    padding: 0;\n\n    @include breakpoint.max($stacked-bp) {\n      // Switch to stacked grid template (defaults to 100% stack, but can be overridden for persistent cols)\n      grid-template-columns: var(--ulu-data-list-columns-stacked, get(\"grid-template-columns-stacked\"));\n    }\n  }\n\n  // Row Item (Passes the grid down)\n  #{ $prefix }__item {\n    display: grid;\n    grid-template-columns: subgrid;\n    grid-column: 1 / -1;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    border: element.optional-border($border-width, get(\"border-color\"));\n    border-radius: get(\"border-radius\");\n    box-shadow: get(\"box-shadow\");\n\n    @if $overlap {\n      margin-top: calc(-1 * #{ $border-width });\n      &:first-child {\n        margin-top: 0;\n      }\n    }\n\n    \n\n    @include breakpoint.max($stacked-bp) {\n      // We keep display: grid/subgrid here to respect the stacked parent grid\n      gap: var(--ulu-data-list-column-gap-stacked, get(\"column-gap-stacked\")); \n    }\n\n    @if (get(\"background-color-hover\")) {\n      &:hover {\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n  }\n\n  // Interactive z-index management for borders/shadows\n  #{ $prefix }__item:hover,\n  #{ $prefix }__item:focus-within,\n  #{ $prefix }__header #{ $prefix }__item {\n    position: relative;\n    z-index: 2;\n  }\n\n  // Columns (The cells / wrappers)\n  #{ $prefix }__column {\n    display: flex;\n    align-items: center;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    // Defensive Layout: Prevents flexbox/grid from refusing to shrink below intrinsic content size.\n    // Without this, a long unbroken word or URL could force the column to expand, blowing out the grid.\n    // It allows text-overflow: ellipsis to work safely within a column without breaking the layout.\n    min-width: 0; \n  }\n\n  // Automatic Groups (Subgrid on desktop, stack on smaller screens)\n  #{ $prefix }__column:has(> #{ $prefix }__column) {\n    display: grid;\n    grid-template-columns: subgrid;\n    // Default span is 1, use modifiers below for larger spans\n    \n    @include breakpoint.max($stacked-bp) {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: stretch;\n      gap: var(--ulu-data-list-group-gap-stacked, get(\"group-gap-stacked\")); // Tighter vertical gap when stacked\n    }\n  }\n\n  // Header Row (Optional)\n  #{ $prefix }__header {\n    display: contents; // Removes wrapper so children participate in grid\n\n    // Hide headers when stacked since columns stack\n    @include breakpoint.max($stacked-bp) {\n      display: none;\n    }\n\n    #{ $prefix }__item {\n      font-weight: get(\"header-font-weight\");\n      background-color: transparent;\n      border-bottom: element.optional-border(get(\"header-border-bottom-width\"), get(\"header-border-bottom-color\"));\n      border-radius: 0; // Prevent rounding on headers\n      &:hover {\n        background-color: transparent; // No hover effect on headers\n      }\n    }\n  }\n\n  // Modifiers\n\n  // Structural Edge Modifiers (Decorating the default 1fr track)\n  #{ $prefix }--prefixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr);\n    }\n  }\n  #{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, 1fr auto);\n    }\n  }\n  #{ $prefix }--prefixed#{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr auto);\n    }\n  }\n\n  // Striped Rows\n  #{ $prefix }--striped {\n    @if (get(\"background-color-even\")) {\n      #{ $prefix }__item:nth-child(even) {\n        background-color: color.get(get(\"background-color-even\"));\n      }\n    }\n  }\n\n  // Interactive Rows (Proxy Click Support)\n  // Applied to parent to indicate all rows are interactive\n  #{ $prefix }--clickable {\n    #{ $prefix }__item {\n      cursor: pointer;\n      &:hover,\n      &:focus-within {\n        background-color: color.get(get(\"clickable-background-color-hover\"));\n        border-color: color.get(get(\"clickable-border-color-hover\"));\n      }\n    }\n  }\n\n  // Spanning (Required when a subgrid contains multiple child columns)\n  @for $i from 2 through get(\"span-count\") {\n    #{ $prefix }__column--span-#{$i} {\n      grid-column: span #{$i};\n      \n      // Reset span when stacked so it fits the simplified grid\n      @include breakpoint.max($stacked-bp) {\n        grid-column: auto;\n      }\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 270
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'data-list');\n\n  $prefix: selector.class(\"data-list\");\n  $stacked-bp: get(\"stacked-breakpoint\");\n  $overlap: get(\"overlap-borders\");\n  $border-width: get(\"border-width\");\n  \n  #{ $prefix } {\n    display: grid;\n    \n    @if $overlap {\n      gap: 0; // Forced to 0 when borders overlap to prevent disjointed negative margins\n    } @else {\n      gap: var(--ulu-data-list-row-gap, get(\"row-gap\"));\n    }\n    \n    // Allows inline override via custom property, falls back to config default\n    grid-template-columns: var(--ulu-data-list-columns, get(\"grid-template-columns\"));\n    list-style: none;\n    margin: 0;\n    padding: 0;\n\n    @include breakpoint.max($stacked-bp) {\n      // Switch to stacked grid template (defaults to 100% stack, but can be overridden for persistent cols)\n      grid-template-columns: var(--ulu-data-list-columns-stacked, get(\"grid-template-columns-stacked\"));\n    }\n  }\n\n  // Row Item (Passes the grid down)\n  #{ $prefix }__item {\n    display: grid;\n    grid-template-columns: subgrid;\n    grid-column: 1 / -1;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    border: element.optional-border($border-width, get(\"border-color\"));\n    border-radius: get(\"border-radius\");\n    box-shadow: get(\"box-shadow\");\n\n    @if $overlap {\n      margin-top: calc(-1 * #{ $border-width });\n      &:first-child {\n        margin-top: 0;\n      }\n    }\n\n    \n\n    @include breakpoint.max($stacked-bp) {\n      // We keep display: grid/subgrid here to respect the stacked parent grid\n      gap: var(--ulu-data-list-column-gap-stacked, get(\"column-gap-stacked\")); \n    }\n\n    @if (get(\"background-color-hover\")) {\n      &:hover {\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n  }\n\n  // Interactive z-index management for borders/shadows\n  #{ $prefix }__item:hover,\n  #{ $prefix }__item:focus-within,\n  #{ $prefix }__header #{ $prefix }__item {\n    position: relative;\n    z-index: 2;\n  }\n\n  // Columns (The cells / wrappers)\n  #{ $prefix }__column {\n    display: flex;\n    align-items: center;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    // Defensive Layout: Prevents flexbox/grid from refusing to shrink below intrinsic content size.\n    // Without this, a long unbroken word or URL could force the column to expand, blowing out the grid.\n    // It allows text-overflow: ellipsis to work safely within a column without breaking the layout.\n    min-width: 0; \n  }\n\n  // Automatic Groups (Subgrid on desktop, stack on smaller screens)\n  #{ $prefix }__column:has(> #{ $prefix }__column) {\n    display: grid;\n    grid-template-columns: subgrid;\n    // Default span is 1, use modifiers below for larger spans\n    \n    @include breakpoint.max($stacked-bp) {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: stretch;\n      gap: var(--ulu-data-list-group-gap-stacked, get(\"group-gap-stacked\")); // Tighter vertical gap when stacked\n    }\n  }\n\n  // Header Row (Optional)\n  #{ $prefix }__header {\n    display: contents; // Removes wrapper so children participate in grid\n\n    // Hide headers when stacked since columns stack\n    @include breakpoint.max($stacked-bp) {\n      display: none;\n    }\n\n    #{ $prefix }__item {\n      font-weight: get(\"header-font-weight\");\n      background-color: transparent;\n      border-bottom: element.optional-border(get(\"header-border-bottom-width\"), get(\"header-border-bottom-color\"));\n      border-radius: 0; // Prevent rounding on headers\n      &:hover {\n        background-color: transparent; // No hover effect on headers\n      }\n    }\n  }\n\n  // Modifiers\n\n  // Structural Edge Modifiers (Decorating the default 1fr track)\n  #{ $prefix }--prefixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr);\n    }\n  }\n  #{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, 1fr auto);\n    }\n  }\n  #{ $prefix }--prefixed#{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr auto);\n    }\n  }\n\n  // Striped Rows\n  #{ $prefix }--striped {\n    @if (get(\"background-color-even\")) {\n      #{ $prefix }__item:nth-child(even) {\n        background-color: color.get(get(\"background-color-even\"));\n      }\n    }\n  }\n\n  // Interactive Rows (Proxy Click Support)\n  // Applied to parent to indicate all rows are interactive\n  #{ $prefix }--clickable {\n    #{ $prefix }__item {\n      cursor: pointer;\n      &:hover,\n      &:focus-within {\n        background-color: color.get(get(\"clickable-background-color-hover\"));\n        border-color: color.get(get(\"clickable-border-color-hover\"));\n      }\n    }\n  }\n\n  // Spanning (Required when a subgrid contains multiple child columns)\n  @for $i from 2 through get(\"span-count\") {\n    #{ $prefix }__column--span-#{$i} {\n      grid-column: span #{$i};\n      \n      // Reset span when stacked so it fits the simplified grid\n      @include breakpoint.max($stacked-bp) {\n        grid-column: auto;\n      }\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 270
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'data-list');\n\n  $prefix: selector.class(\"data-list\");\n  $stacked-bp: get(\"stacked-breakpoint\");\n  $overlap: get(\"overlap-borders\");\n  $border-width: get(\"border-width\");\n  \n  #{ $prefix } {\n    display: grid;\n    \n    @if $overlap {\n      gap: 0; // Forced to 0 when borders overlap to prevent disjointed negative margins\n    } @else {\n      gap: var(--ulu-data-list-row-gap, get(\"row-gap\"));\n    }\n    \n    // Allows inline override via custom property, falls back to config default\n    grid-template-columns: var(--ulu-data-list-columns, get(\"grid-template-columns\"));\n    list-style: none;\n    margin: 0;\n    padding: 0;\n\n    @include breakpoint.max($stacked-bp) {\n      // Switch to stacked grid template (defaults to 100% stack, but can be overridden for persistent cols)\n      grid-template-columns: var(--ulu-data-list-columns-stacked, get(\"grid-template-columns-stacked\"));\n    }\n  }\n\n  // Row Item (Passes the grid down)\n  #{ $prefix }__item {\n    display: grid;\n    grid-template-columns: subgrid;\n    grid-column: 1 / -1;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    border: element.optional-border($border-width, get(\"border-color\"));\n    border-radius: get(\"border-radius\");\n    box-shadow: get(\"box-shadow\");\n\n    @if $overlap {\n      margin-top: calc(-1 * #{ $border-width });\n      &:first-child {\n        margin-top: 0;\n      }\n    }\n\n    \n\n    @include breakpoint.max($stacked-bp) {\n      // We keep display: grid/subgrid here to respect the stacked parent grid\n      gap: var(--ulu-data-list-column-gap-stacked, get(\"column-gap-stacked\")); \n    }\n\n    @if (get(\"background-color-hover\")) {\n      &:hover {\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n  }\n\n  // Interactive z-index management for borders/shadows\n  #{ $prefix }__item:hover,\n  #{ $prefix }__item:focus-within,\n  #{ $prefix }__header #{ $prefix }__item {\n    position: relative;\n    z-index: 2;\n  }\n\n  // Columns (The cells / wrappers)\n  #{ $prefix }__column {\n    display: flex;\n    align-items: center;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    // Defensive Layout: Prevents flexbox/grid from refusing to shrink below intrinsic content size.\n    // Without this, a long unbroken word or URL could force the column to expand, blowing out the grid.\n    // It allows text-overflow: ellipsis to work safely within a column without breaking the layout.\n    min-width: 0; \n  }\n\n  // Automatic Groups (Subgrid on desktop, stack on smaller screens)\n  #{ $prefix }__column:has(> #{ $prefix }__column) {\n    display: grid;\n    grid-template-columns: subgrid;\n    // Default span is 1, use modifiers below for larger spans\n    \n    @include breakpoint.max($stacked-bp) {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: stretch;\n      gap: var(--ulu-data-list-group-gap-stacked, get(\"group-gap-stacked\")); // Tighter vertical gap when stacked\n    }\n  }\n\n  // Header Row (Optional)\n  #{ $prefix }__header {\n    display: contents; // Removes wrapper so children participate in grid\n\n    // Hide headers when stacked since columns stack\n    @include breakpoint.max($stacked-bp) {\n      display: none;\n    }\n\n    #{ $prefix }__item {\n      font-weight: get(\"header-font-weight\");\n      background-color: transparent;\n      border-bottom: element.optional-border(get(\"header-border-bottom-width\"), get(\"header-border-bottom-color\"));\n      border-radius: 0; // Prevent rounding on headers\n      &:hover {\n        background-color: transparent; // No hover effect on headers\n      }\n    }\n  }\n\n  // Modifiers\n\n  // Structural Edge Modifiers (Decorating the default 1fr track)\n  #{ $prefix }--prefixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr);\n    }\n  }\n  #{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, 1fr auto);\n    }\n  }\n  #{ $prefix }--prefixed#{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr auto);\n    }\n  }\n\n  // Striped Rows\n  #{ $prefix }--striped {\n    @if (get(\"background-color-even\")) {\n      #{ $prefix }__item:nth-child(even) {\n        background-color: color.get(get(\"background-color-even\"));\n      }\n    }\n  }\n\n  // Interactive Rows (Proxy Click Support)\n  // Applied to parent to indicate all rows are interactive\n  #{ $prefix }--clickable {\n    #{ $prefix }__item {\n      cursor: pointer;\n      &:hover,\n      &:focus-within {\n        background-color: color.get(get(\"clickable-background-color-hover\"));\n        border-color: color.get(get(\"clickable-border-color-hover\"));\n      }\n    }\n  }\n\n  // Spanning (Required when a subgrid contains multiple child columns)\n  @for $i from 2 through get(\"span-count\") {\n    #{ $prefix }__column--span-#{$i} {\n      grid-column: span #{$i};\n      \n      // Reset span when stacked so it fits the simplified grid\n      @include breakpoint.max($stacked-bp) {\n        grid-column: auto;\n      }\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 270
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'data-list');\n\n  $prefix: selector.class(\"data-list\");\n  $stacked-bp: get(\"stacked-breakpoint\");\n  $overlap: get(\"overlap-borders\");\n  $border-width: get(\"border-width\");\n  \n  #{ $prefix } {\n    display: grid;\n    \n    @if $overlap {\n      gap: 0; // Forced to 0 when borders overlap to prevent disjointed negative margins\n    } @else {\n      gap: var(--ulu-data-list-row-gap, get(\"row-gap\"));\n    }\n    \n    // Allows inline override via custom property, falls back to config default\n    grid-template-columns: var(--ulu-data-list-columns, get(\"grid-template-columns\"));\n    list-style: none;\n    margin: 0;\n    padding: 0;\n\n    @include breakpoint.max($stacked-bp) {\n      // Switch to stacked grid template (defaults to 100% stack, but can be overridden for persistent cols)\n      grid-template-columns: var(--ulu-data-list-columns-stacked, get(\"grid-template-columns-stacked\"));\n    }\n  }\n\n  // Row Item (Passes the grid down)\n  #{ $prefix }__item {\n    display: grid;\n    grid-template-columns: subgrid;\n    grid-column: 1 / -1;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    border: element.optional-border($border-width, get(\"border-color\"));\n    border-radius: get(\"border-radius\");\n    box-shadow: get(\"box-shadow\");\n\n    @if $overlap {\n      margin-top: calc(-1 * #{ $border-width });\n      &:first-child {\n        margin-top: 0;\n      }\n    }\n\n    \n\n    @include breakpoint.max($stacked-bp) {\n      // We keep display: grid/subgrid here to respect the stacked parent grid\n      gap: var(--ulu-data-list-column-gap-stacked, get(\"column-gap-stacked\")); \n    }\n\n    @if (get(\"background-color-hover\")) {\n      &:hover {\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n  }\n\n  // Interactive z-index management for borders/shadows\n  #{ $prefix }__item:hover,\n  #{ $prefix }__item:focus-within,\n  #{ $prefix }__header #{ $prefix }__item {\n    position: relative;\n    z-index: 2;\n  }\n\n  // Columns (The cells / wrappers)\n  #{ $prefix }__column {\n    display: flex;\n    align-items: center;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    // Defensive Layout: Prevents flexbox/grid from refusing to shrink below intrinsic content size.\n    // Without this, a long unbroken word or URL could force the column to expand, blowing out the grid.\n    // It allows text-overflow: ellipsis to work safely within a column without breaking the layout.\n    min-width: 0; \n  }\n\n  // Automatic Groups (Subgrid on desktop, stack on smaller screens)\n  #{ $prefix }__column:has(> #{ $prefix }__column) {\n    display: grid;\n    grid-template-columns: subgrid;\n    // Default span is 1, use modifiers below for larger spans\n    \n    @include breakpoint.max($stacked-bp) {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: stretch;\n      gap: var(--ulu-data-list-group-gap-stacked, get(\"group-gap-stacked\")); // Tighter vertical gap when stacked\n    }\n  }\n\n  // Header Row (Optional)\n  #{ $prefix }__header {\n    display: contents; // Removes wrapper so children participate in grid\n\n    // Hide headers when stacked since columns stack\n    @include breakpoint.max($stacked-bp) {\n      display: none;\n    }\n\n    #{ $prefix }__item {\n      font-weight: get(\"header-font-weight\");\n      background-color: transparent;\n      border-bottom: element.optional-border(get(\"header-border-bottom-width\"), get(\"header-border-bottom-color\"));\n      border-radius: 0; // Prevent rounding on headers\n      &:hover {\n        background-color: transparent; // No hover effect on headers\n      }\n    }\n  }\n\n  // Modifiers\n\n  // Structural Edge Modifiers (Decorating the default 1fr track)\n  #{ $prefix }--prefixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr);\n    }\n  }\n  #{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, 1fr auto);\n    }\n  }\n  #{ $prefix }--prefixed#{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr auto);\n    }\n  }\n\n  // Striped Rows\n  #{ $prefix }--striped {\n    @if (get(\"background-color-even\")) {\n      #{ $prefix }__item:nth-child(even) {\n        background-color: color.get(get(\"background-color-even\"));\n      }\n    }\n  }\n\n  // Interactive Rows (Proxy Click Support)\n  // Applied to parent to indicate all rows are interactive\n  #{ $prefix }--clickable {\n    #{ $prefix }__item {\n      cursor: pointer;\n      &:hover,\n      &:focus-within {\n        background-color: color.get(get(\"clickable-background-color-hover\"));\n        border-color: color.get(get(\"clickable-border-color-hover\"));\n      }\n    }\n  }\n\n  // Spanning (Required when a subgrid contains multiple child columns)\n  @for $i from 2 through get(\"span-count\") {\n    #{ $prefix }__column--span-#{$i} {\n      grid-column: span #{$i};\n      \n      // Reset span when stacked so it fits the simplified grid\n      @include breakpoint.max($stacked-bp) {\n        grid-column: auto;\n      }\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 270
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'data-list');\n\n  $prefix: selector.class(\"data-list\");\n  $stacked-bp: get(\"stacked-breakpoint\");\n  $overlap: get(\"overlap-borders\");\n  $border-width: get(\"border-width\");\n  \n  #{ $prefix } {\n    display: grid;\n    \n    @if $overlap {\n      gap: 0; // Forced to 0 when borders overlap to prevent disjointed negative margins\n    } @else {\n      gap: var(--ulu-data-list-row-gap, get(\"row-gap\"));\n    }\n    \n    // Allows inline override via custom property, falls back to config default\n    grid-template-columns: var(--ulu-data-list-columns, get(\"grid-template-columns\"));\n    list-style: none;\n    margin: 0;\n    padding: 0;\n\n    @include breakpoint.max($stacked-bp) {\n      // Switch to stacked grid template (defaults to 100% stack, but can be overridden for persistent cols)\n      grid-template-columns: var(--ulu-data-list-columns-stacked, get(\"grid-template-columns-stacked\"));\n    }\n  }\n\n  // Row Item (Passes the grid down)\n  #{ $prefix }__item {\n    display: grid;\n    grid-template-columns: subgrid;\n    grid-column: 1 / -1;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    border: element.optional-border($border-width, get(\"border-color\"));\n    border-radius: get(\"border-radius\");\n    box-shadow: get(\"box-shadow\");\n\n    @if $overlap {\n      margin-top: calc(-1 * #{ $border-width });\n      &:first-child {\n        margin-top: 0;\n      }\n    }\n\n    \n\n    @include breakpoint.max($stacked-bp) {\n      // We keep display: grid/subgrid here to respect the stacked parent grid\n      gap: var(--ulu-data-list-column-gap-stacked, get(\"column-gap-stacked\")); \n    }\n\n    @if (get(\"background-color-hover\")) {\n      &:hover {\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n  }\n\n  // Interactive z-index management for borders/shadows\n  #{ $prefix }__item:hover,\n  #{ $prefix }__item:focus-within,\n  #{ $prefix }__header #{ $prefix }__item {\n    position: relative;\n    z-index: 2;\n  }\n\n  // Columns (The cells / wrappers)\n  #{ $prefix }__column {\n    display: flex;\n    align-items: center;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    // Defensive Layout: Prevents flexbox/grid from refusing to shrink below intrinsic content size.\n    // Without this, a long unbroken word or URL could force the column to expand, blowing out the grid.\n    // It allows text-overflow: ellipsis to work safely within a column without breaking the layout.\n    min-width: 0; \n  }\n\n  // Automatic Groups (Subgrid on desktop, stack on smaller screens)\n  #{ $prefix }__column:has(> #{ $prefix }__column) {\n    display: grid;\n    grid-template-columns: subgrid;\n    // Default span is 1, use modifiers below for larger spans\n    \n    @include breakpoint.max($stacked-bp) {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: stretch;\n      gap: var(--ulu-data-list-group-gap-stacked, get(\"group-gap-stacked\")); // Tighter vertical gap when stacked\n    }\n  }\n\n  // Header Row (Optional)\n  #{ $prefix }__header {\n    display: contents; // Removes wrapper so children participate in grid\n\n    // Hide headers when stacked since columns stack\n    @include breakpoint.max($stacked-bp) {\n      display: none;\n    }\n\n    #{ $prefix }__item {\n      font-weight: get(\"header-font-weight\");\n      background-color: transparent;\n      border-bottom: element.optional-border(get(\"header-border-bottom-width\"), get(\"header-border-bottom-color\"));\n      border-radius: 0; // Prevent rounding on headers\n      &:hover {\n        background-color: transparent; // No hover effect on headers\n      }\n    }\n  }\n\n  // Modifiers\n\n  // Structural Edge Modifiers (Decorating the default 1fr track)\n  #{ $prefix }--prefixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr);\n    }\n  }\n  #{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, 1fr auto);\n    }\n  }\n  #{ $prefix }--prefixed#{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr auto);\n    }\n  }\n\n  // Striped Rows\n  #{ $prefix }--striped {\n    @if (get(\"background-color-even\")) {\n      #{ $prefix }__item:nth-child(even) {\n        background-color: color.get(get(\"background-color-even\"));\n      }\n    }\n  }\n\n  // Interactive Rows (Proxy Click Support)\n  // Applied to parent to indicate all rows are interactive\n  #{ $prefix }--clickable {\n    #{ $prefix }__item {\n      cursor: pointer;\n      &:hover,\n      &:focus-within {\n        background-color: color.get(get(\"clickable-background-color-hover\"));\n        border-color: color.get(get(\"clickable-border-color-hover\"));\n      }\n    }\n  }\n\n  // Spanning (Required when a subgrid contains multiple child columns)\n  @for $i from 2 through get(\"span-count\") {\n    #{ $prefix }__column--span-#{$i} {\n      grid-column: span #{$i};\n      \n      // Reset span when stacked so it fits the simplified grid\n      @include breakpoint.max($stacked-bp) {\n        grid-column: auto;\n      }\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 270
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'data-list');\n\n  $prefix: selector.class(\"data-list\");\n  $stacked-bp: get(\"stacked-breakpoint\");\n  $overlap: get(\"overlap-borders\");\n  $border-width: get(\"border-width\");\n  \n  #{ $prefix } {\n    display: grid;\n    \n    @if $overlap {\n      gap: 0; // Forced to 0 when borders overlap to prevent disjointed negative margins\n    } @else {\n      gap: var(--ulu-data-list-row-gap, get(\"row-gap\"));\n    }\n    \n    // Allows inline override via custom property, falls back to config default\n    grid-template-columns: var(--ulu-data-list-columns, get(\"grid-template-columns\"));\n    list-style: none;\n    margin: 0;\n    padding: 0;\n\n    @include breakpoint.max($stacked-bp) {\n      // Switch to stacked grid template (defaults to 100% stack, but can be overridden for persistent cols)\n      grid-template-columns: var(--ulu-data-list-columns-stacked, get(\"grid-template-columns-stacked\"));\n    }\n  }\n\n  // Row Item (Passes the grid down)\n  #{ $prefix }__item {\n    display: grid;\n    grid-template-columns: subgrid;\n    grid-column: 1 / -1;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    border: element.optional-border($border-width, get(\"border-color\"));\n    border-radius: get(\"border-radius\");\n    box-shadow: get(\"box-shadow\");\n\n    @if $overlap {\n      margin-top: calc(-1 * #{ $border-width });\n      &:first-child {\n        margin-top: 0;\n      }\n    }\n\n    \n\n    @include breakpoint.max($stacked-bp) {\n      // We keep display: grid/subgrid here to respect the stacked parent grid\n      gap: var(--ulu-data-list-column-gap-stacked, get(\"column-gap-stacked\")); \n    }\n\n    @if (get(\"background-color-hover\")) {\n      &:hover {\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n  }\n\n  // Interactive z-index management for borders/shadows\n  #{ $prefix }__item:hover,\n  #{ $prefix }__item:focus-within,\n  #{ $prefix }__header #{ $prefix }__item {\n    position: relative;\n    z-index: 2;\n  }\n\n  // Columns (The cells / wrappers)\n  #{ $prefix }__column {\n    display: flex;\n    align-items: center;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    // Defensive Layout: Prevents flexbox/grid from refusing to shrink below intrinsic content size.\n    // Without this, a long unbroken word or URL could force the column to expand, blowing out the grid.\n    // It allows text-overflow: ellipsis to work safely within a column without breaking the layout.\n    min-width: 0; \n  }\n\n  // Automatic Groups (Subgrid on desktop, stack on smaller screens)\n  #{ $prefix }__column:has(> #{ $prefix }__column) {\n    display: grid;\n    grid-template-columns: subgrid;\n    // Default span is 1, use modifiers below for larger spans\n    \n    @include breakpoint.max($stacked-bp) {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: stretch;\n      gap: var(--ulu-data-list-group-gap-stacked, get(\"group-gap-stacked\")); // Tighter vertical gap when stacked\n    }\n  }\n\n  // Header Row (Optional)\n  #{ $prefix }__header {\n    display: contents; // Removes wrapper so children participate in grid\n\n    // Hide headers when stacked since columns stack\n    @include breakpoint.max($stacked-bp) {\n      display: none;\n    }\n\n    #{ $prefix }__item {\n      font-weight: get(\"header-font-weight\");\n      background-color: transparent;\n      border-bottom: element.optional-border(get(\"header-border-bottom-width\"), get(\"header-border-bottom-color\"));\n      border-radius: 0; // Prevent rounding on headers\n      &:hover {\n        background-color: transparent; // No hover effect on headers\n      }\n    }\n  }\n\n  // Modifiers\n\n  // Structural Edge Modifiers (Decorating the default 1fr track)\n  #{ $prefix }--prefixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr);\n    }\n  }\n  #{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, 1fr auto);\n    }\n  }\n  #{ $prefix }--prefixed#{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr auto);\n    }\n  }\n\n  // Striped Rows\n  #{ $prefix }--striped {\n    @if (get(\"background-color-even\")) {\n      #{ $prefix }__item:nth-child(even) {\n        background-color: color.get(get(\"background-color-even\"));\n      }\n    }\n  }\n\n  // Interactive Rows (Proxy Click Support)\n  // Applied to parent to indicate all rows are interactive\n  #{ $prefix }--clickable {\n    #{ $prefix }__item {\n      cursor: pointer;\n      &:hover,\n      &:focus-within {\n        background-color: color.get(get(\"clickable-background-color-hover\"));\n        border-color: color.get(get(\"clickable-border-color-hover\"));\n      }\n    }\n  }\n\n  // Spanning (Required when a subgrid contains multiple child columns)\n  @for $i from 2 through get(\"span-count\") {\n    #{ $prefix }__column--span-#{$i} {\n      grid-column: span #{$i};\n      \n      // Reset span when stacked so it fits the simplified grid\n      @include breakpoint.max($stacked-bp) {\n        grid-column: auto;\n      }\n    }\n  }\n",
              "line": {
                "start": 99,
                "end": 270
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
              "line": {
                "start": 114,
                "end": 222
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"definition-list\");\n  $item-margin-half: math.div(get(\"item-margin\"), 2);\n  $compact-item-margin-half: math.div(get(\"compact-item-margin\"), 2);\n\n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n\n    > div {\n      margin-top: $item-margin-half;\n      padding-top: $item-margin-half;\n    }\n    dt,\n    dd {\n      display: block;\n      margin: 0;\n      font-weight: normal;\n    }\n    dt {\n      font-weight: get(\"term-font-weight\");\n      font-weight: color.get(get(\"term-color\"));\n    }\n  }\n\n  // Modifiers\n  #{ $prefix }--table {\n    @include breakpoint.min(get(\"table-breakpoint\")) {\n      > div {\n        display: grid;\n        grid-template-columns: get(\"table-template-columns\");\n        gap: get(\"table-gap\");\n      }\n    }\n  }\n\n  #{ $prefix }--inline,\n  #{ $prefix }--inline-all {\n    > div {\n      display: flex;\n      flex-wrap: wrap;\n      align-items: baseline;\n    }\n\n    dd + dd {\n      &::before {\n        content: get(\"inline-description-separator\");\n        margin-right: 0.2em;\n      }\n    }\n  }\n\n  #{ $prefix }--inline {\n    dt {\n      flex-basis: 100%;\n    }\n  }\n\n  #{ $prefix }--inline-all {\n    dt {\n      &::after {\n        content: get(\"inline-term-separator\");\n        margin-right: 0.2em;\n      }\n    }\n  }\n\n  #{ $prefix }--separated > div:not(:first-child),\n  #{ $prefix }--separated-first > div:first-child {\n    border-top: get(\"separator-border\");\n  }\n  #{ $prefix }--separated-last > div:last-child {\n    border-bottom: get(\"separator-border\");\n    padding-bottom: $item-margin-half;\n  }\n\n  #{ $prefix }--compact {\n    > div {\n      margin-top: $compact-item-margin-half;\n      padding-top: $compact-item-margin-half;\n    }\n  }\n  #{ $prefix }--compact#{ $prefix }--separated-last > div:last-child {\n    padding-bottom: $compact-item-margin-half;\n  }\n\n  // Clip margin of first\n  #{ $prefix }:not(#{ $prefix }--separated-first) {\n    > div:first-child {\n      padding-top: 0;\n      margin-top: 0;\n    }\n  }\n",
              "line": {
                "start": 88,
                "end": 181
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"definition-list\");\n  $item-margin-half: math.div(get(\"item-margin\"), 2);\n  $compact-item-margin-half: math.div(get(\"compact-item-margin\"), 2);\n\n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n\n    > div {\n      margin-top: $item-margin-half;\n      padding-top: $item-margin-half;\n    }\n    dt,\n    dd {\n      display: block;\n      margin: 0;\n      font-weight: normal;\n    }\n    dt {\n      font-weight: get(\"term-font-weight\");\n      font-weight: color.get(get(\"term-color\"));\n    }\n  }\n\n  // Modifiers\n  #{ $prefix }--table {\n    @include breakpoint.min(get(\"table-breakpoint\")) {\n      > div {\n        display: grid;\n        grid-template-columns: get(\"table-template-columns\");\n        gap: get(\"table-gap\");\n      }\n    }\n  }\n\n  #{ $prefix }--inline,\n  #{ $prefix }--inline-all {\n    > div {\n      display: flex;\n      flex-wrap: wrap;\n      align-items: baseline;\n    }\n\n    dd + dd {\n      &::before {\n        content: get(\"inline-description-separator\");\n        margin-right: 0.2em;\n      }\n    }\n  }\n\n  #{ $prefix }--inline {\n    dt {\n      flex-basis: 100%;\n    }\n  }\n\n  #{ $prefix }--inline-all {\n    dt {\n      &::after {\n        content: get(\"inline-term-separator\");\n        margin-right: 0.2em;\n      }\n    }\n  }\n\n  #{ $prefix }--separated > div:not(:first-child),\n  #{ $prefix }--separated-first > div:first-child {\n    border-top: get(\"separator-border\");\n  }\n  #{ $prefix }--separated-last > div:last-child {\n    border-bottom: get(\"separator-border\");\n    padding-bottom: $item-margin-half;\n  }\n\n  #{ $prefix }--compact {\n    > div {\n      margin-top: $compact-item-margin-half;\n      padding-top: $compact-item-margin-half;\n    }\n  }\n  #{ $prefix }--compact#{ $prefix }--separated-last > div:last-child {\n    padding-bottom: $compact-item-margin-half;\n  }\n\n  // Clip margin of first\n  #{ $prefix }:not(#{ $prefix }--separated-first) {\n    > div:first-child {\n      padding-top: 0;\n      margin-top: 0;\n    }\n  }\n",
              "line": {
                "start": 88,
                "end": 181
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"definition-list\");\n  $item-margin-half: math.div(get(\"item-margin\"), 2);\n  $compact-item-margin-half: math.div(get(\"compact-item-margin\"), 2);\n\n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n\n    > div {\n      margin-top: $item-margin-half;\n      padding-top: $item-margin-half;\n    }\n    dt,\n    dd {\n      display: block;\n      margin: 0;\n      font-weight: normal;\n    }\n    dt {\n      font-weight: get(\"term-font-weight\");\n      font-weight: color.get(get(\"term-color\"));\n    }\n  }\n\n  // Modifiers\n  #{ $prefix }--table {\n    @include breakpoint.min(get(\"table-breakpoint\")) {\n      > div {\n        display: grid;\n        grid-template-columns: get(\"table-template-columns\");\n        gap: get(\"table-gap\");\n      }\n    }\n  }\n\n  #{ $prefix }--inline,\n  #{ $prefix }--inline-all {\n    > div {\n      display: flex;\n      flex-wrap: wrap;\n      align-items: baseline;\n    }\n\n    dd + dd {\n      &::before {\n        content: get(\"inline-description-separator\");\n        margin-right: 0.2em;\n      }\n    }\n  }\n\n  #{ $prefix }--inline {\n    dt {\n      flex-basis: 100%;\n    }\n  }\n\n  #{ $prefix }--inline-all {\n    dt {\n      &::after {\n        content: get(\"inline-term-separator\");\n        margin-right: 0.2em;\n      }\n    }\n  }\n\n  #{ $prefix }--separated > div:not(:first-child),\n  #{ $prefix }--separated-first > div:first-child {\n    border-top: get(\"separator-border\");\n  }\n  #{ $prefix }--separated-last > div:last-child {\n    border-bottom: get(\"separator-border\");\n    padding-bottom: $item-margin-half;\n  }\n\n  #{ $prefix }--compact {\n    > div {\n      margin-top: $compact-item-margin-half;\n      padding-top: $compact-item-margin-half;\n    }\n  }\n  #{ $prefix }--compact#{ $prefix }--separated-last > div:last-child {\n    padding-bottom: $compact-item-margin-half;\n  }\n\n  // Clip margin of first\n  #{ $prefix }:not(#{ $prefix }--separated-first) {\n    > div:first-child {\n      padding-top: 0;\n      margin-top: 0;\n    }\n  }\n",
              "line": {
                "start": 88,
                "end": 181
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"definition-list\");\n  $item-margin-half: math.div(get(\"item-margin\"), 2);\n  $compact-item-margin-half: math.div(get(\"compact-item-margin\"), 2);\n\n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n\n    > div {\n      margin-top: $item-margin-half;\n      padding-top: $item-margin-half;\n    }\n    dt,\n    dd {\n      display: block;\n      margin: 0;\n      font-weight: normal;\n    }\n    dt {\n      font-weight: get(\"term-font-weight\");\n      font-weight: color.get(get(\"term-color\"));\n    }\n  }\n\n  // Modifiers\n  #{ $prefix }--table {\n    @include breakpoint.min(get(\"table-breakpoint\")) {\n      > div {\n        display: grid;\n        grid-template-columns: get(\"table-template-columns\");\n        gap: get(\"table-gap\");\n      }\n    }\n  }\n\n  #{ $prefix }--inline,\n  #{ $prefix }--inline-all {\n    > div {\n      display: flex;\n      flex-wrap: wrap;\n      align-items: baseline;\n    }\n\n    dd + dd {\n      &::before {\n        content: get(\"inline-description-separator\");\n        margin-right: 0.2em;\n      }\n    }\n  }\n\n  #{ $prefix }--inline {\n    dt {\n      flex-basis: 100%;\n    }\n  }\n\n  #{ $prefix }--inline-all {\n    dt {\n      &::after {\n        content: get(\"inline-term-separator\");\n        margin-right: 0.2em;\n      }\n    }\n  }\n\n  #{ $prefix }--separated > div:not(:first-child),\n  #{ $prefix }--separated-first > div:first-child {\n    border-top: get(\"separator-border\");\n  }\n  #{ $prefix }--separated-last > div:last-child {\n    border-bottom: get(\"separator-border\");\n    padding-bottom: $item-margin-half;\n  }\n\n  #{ $prefix }--compact {\n    > div {\n      margin-top: $compact-item-margin-half;\n      padding-top: $compact-item-margin-half;\n    }\n  }\n  #{ $prefix }--compact#{ $prefix }--separated-last > div:last-child {\n    padding-bottom: $compact-item-margin-half;\n  }\n\n  // Clip margin of first\n  #{ $prefix }:not(#{ $prefix }--separated-first) {\n    > div:first-child {\n      padding-top: 0;\n      margin-top: 0;\n    }\n  }\n",
              "line": {
                "start": 88,
                "end": 181
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"definition-list\");\n  $item-margin-half: math.div(get(\"item-margin\"), 2);\n  $compact-item-margin-half: math.div(get(\"compact-item-margin\"), 2);\n\n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n\n    > div {\n      margin-top: $item-margin-half;\n      padding-top: $item-margin-half;\n    }\n    dt,\n    dd {\n      display: block;\n      margin: 0;\n      font-weight: normal;\n    }\n    dt {\n      font-weight: get(\"term-font-weight\");\n      font-weight: color.get(get(\"term-color\"));\n    }\n  }\n\n  // Modifiers\n  #{ $prefix }--table {\n    @include breakpoint.min(get(\"table-breakpoint\")) {\n      > div {\n        display: grid;\n        grid-template-columns: get(\"table-template-columns\");\n        gap: get(\"table-gap\");\n      }\n    }\n  }\n\n  #{ $prefix }--inline,\n  #{ $prefix }--inline-all {\n    > div {\n      display: flex;\n      flex-wrap: wrap;\n      align-items: baseline;\n    }\n\n    dd + dd {\n      &::before {\n        content: get(\"inline-description-separator\");\n        margin-right: 0.2em;\n      }\n    }\n  }\n\n  #{ $prefix }--inline {\n    dt {\n      flex-basis: 100%;\n    }\n  }\n\n  #{ $prefix }--inline-all {\n    dt {\n      &::after {\n        content: get(\"inline-term-separator\");\n        margin-right: 0.2em;\n      }\n    }\n  }\n\n  #{ $prefix }--separated > div:not(:first-child),\n  #{ $prefix }--separated-first > div:first-child {\n    border-top: get(\"separator-border\");\n  }\n  #{ $prefix }--separated-last > div:last-child {\n    border-bottom: get(\"separator-border\");\n    padding-bottom: $item-margin-half;\n  }\n\n  #{ $prefix }--compact {\n    > div {\n      margin-top: $compact-item-margin-half;\n      padding-top: $compact-item-margin-half;\n    }\n  }\n  #{ $prefix }--compact#{ $prefix }--separated-last > div:last-child {\n    padding-bottom: $compact-item-margin-half;\n  }\n\n  // Clip margin of first\n  #{ $prefix }:not(#{ $prefix }--separated-first) {\n    > div:first-child {\n      padding-top: 0;\n      margin-top: 0;\n    }\n  }\n",
              "line": {
                "start": 88,
                "end": 181
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"definition-list\");\n  $item-margin-half: math.div(get(\"item-margin\"), 2);\n  $compact-item-margin-half: math.div(get(\"compact-item-margin\"), 2);\n\n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n\n    > div {\n      margin-top: $item-margin-half;\n      padding-top: $item-margin-half;\n    }\n    dt,\n    dd {\n      display: block;\n      margin: 0;\n      font-weight: normal;\n    }\n    dt {\n      font-weight: get(\"term-font-weight\");\n      font-weight: color.get(get(\"term-color\"));\n    }\n  }\n\n  // Modifiers\n  #{ $prefix }--table {\n    @include breakpoint.min(get(\"table-breakpoint\")) {\n      > div {\n        display: grid;\n        grid-template-columns: get(\"table-template-columns\");\n        gap: get(\"table-gap\");\n      }\n    }\n  }\n\n  #{ $prefix }--inline,\n  #{ $prefix }--inline-all {\n    > div {\n      display: flex;\n      flex-wrap: wrap;\n      align-items: baseline;\n    }\n\n    dd + dd {\n      &::before {\n        content: get(\"inline-description-separator\");\n        margin-right: 0.2em;\n      }\n    }\n  }\n\n  #{ $prefix }--inline {\n    dt {\n      flex-basis: 100%;\n    }\n  }\n\n  #{ $prefix }--inline-all {\n    dt {\n      &::after {\n        content: get(\"inline-term-separator\");\n        margin-right: 0.2em;\n      }\n    }\n  }\n\n  #{ $prefix }--separated > div:not(:first-child),\n  #{ $prefix }--separated-first > div:first-child {\n    border-top: get(\"separator-border\");\n  }\n  #{ $prefix }--separated-last > div:last-child {\n    border-bottom: get(\"separator-border\");\n    padding-bottom: $item-margin-half;\n  }\n\n  #{ $prefix }--compact {\n    > div {\n      margin-top: $compact-item-margin-half;\n      padding-top: $compact-item-margin-half;\n    }\n  }\n  #{ $prefix }--compact#{ $prefix }--separated-last > div:last-child {\n    padding-bottom: $compact-item-margin-half;\n  }\n\n  // Clip margin of first\n  #{ $prefix }:not(#{ $prefix }--separated-first) {\n    > div:first-child {\n      padding-top: 0;\n      margin-top: 0;\n    }\n  }\n",
              "line": {
                "start": 88,
                "end": 181
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"definition-list\");\n  $item-margin-half: math.div(get(\"item-margin\"), 2);\n  $compact-item-margin-half: math.div(get(\"compact-item-margin\"), 2);\n\n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n\n    > div {\n      margin-top: $item-margin-half;\n      padding-top: $item-margin-half;\n    }\n    dt,\n    dd {\n      display: block;\n      margin: 0;\n      font-weight: normal;\n    }\n    dt {\n      font-weight: get(\"term-font-weight\");\n      font-weight: color.get(get(\"term-color\"));\n    }\n  }\n\n  // Modifiers\n  #{ $prefix }--table {\n    @include breakpoint.min(get(\"table-breakpoint\")) {\n      > div {\n        display: grid;\n        grid-template-columns: get(\"table-template-columns\");\n        gap: get(\"table-gap\");\n      }\n    }\n  }\n\n  #{ $prefix }--inline,\n  #{ $prefix }--inline-all {\n    > div {\n      display: flex;\n      flex-wrap: wrap;\n      align-items: baseline;\n    }\n\n    dd + dd {\n      &::before {\n        content: get(\"inline-description-separator\");\n        margin-right: 0.2em;\n      }\n    }\n  }\n\n  #{ $prefix }--inline {\n    dt {\n      flex-basis: 100%;\n    }\n  }\n\n  #{ $prefix }--inline-all {\n    dt {\n      &::after {\n        content: get(\"inline-term-separator\");\n        margin-right: 0.2em;\n      }\n    }\n  }\n\n  #{ $prefix }--separated > div:not(:first-child),\n  #{ $prefix }--separated-first > div:first-child {\n    border-top: get(\"separator-border\");\n  }\n  #{ $prefix }--separated-last > div:last-child {\n    border-bottom: get(\"separator-border\");\n    padding-bottom: $item-margin-half;\n  }\n\n  #{ $prefix }--compact {\n    > div {\n      margin-top: $compact-item-margin-half;\n      padding-top: $compact-item-margin-half;\n    }\n  }\n  #{ $prefix }--compact#{ $prefix }--separated-last > div:last-child {\n    padding-bottom: $compact-item-margin-half;\n  }\n\n  // Clip margin of first\n  #{ $prefix }:not(#{ $prefix }--separated-first) {\n    > div:first-child {\n      padding-top: 0;\n      margin-top: 0;\n    }\n  }\n",
              "line": {
                "start": 88,
                "end": 181
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"definition-list\");\n  $item-margin-half: math.div(get(\"item-margin\"), 2);\n  $compact-item-margin-half: math.div(get(\"compact-item-margin\"), 2);\n\n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n\n    > div {\n      margin-top: $item-margin-half;\n      padding-top: $item-margin-half;\n    }\n    dt,\n    dd {\n      display: block;\n      margin: 0;\n      font-weight: normal;\n    }\n    dt {\n      font-weight: get(\"term-font-weight\");\n      font-weight: color.get(get(\"term-color\"));\n    }\n  }\n\n  // Modifiers\n  #{ $prefix }--table {\n    @include breakpoint.min(get(\"table-breakpoint\")) {\n      > div {\n        display: grid;\n        grid-template-columns: get(\"table-template-columns\");\n        gap: get(\"table-gap\");\n      }\n    }\n  }\n\n  #{ $prefix }--inline,\n  #{ $prefix }--inline-all {\n    > div {\n      display: flex;\n      flex-wrap: wrap;\n      align-items: baseline;\n    }\n\n    dd + dd {\n      &::before {\n        content: get(\"inline-description-separator\");\n        margin-right: 0.2em;\n      }\n    }\n  }\n\n  #{ $prefix }--inline {\n    dt {\n      flex-basis: 100%;\n    }\n  }\n\n  #{ $prefix }--inline-all {\n    dt {\n      &::after {\n        content: get(\"inline-term-separator\");\n        margin-right: 0.2em;\n      }\n    }\n  }\n\n  #{ $prefix }--separated > div:not(:first-child),\n  #{ $prefix }--separated-first > div:first-child {\n    border-top: get(\"separator-border\");\n  }\n  #{ $prefix }--separated-last > div:last-child {\n    border-bottom: get(\"separator-border\");\n    padding-bottom: $item-margin-half;\n  }\n\n  #{ $prefix }--compact {\n    > div {\n      margin-top: $compact-item-margin-half;\n      padding-top: $compact-item-margin-half;\n    }\n  }\n  #{ $prefix }--compact#{ $prefix }--separated-last > div:last-child {\n    padding-bottom: $compact-item-margin-half;\n  }\n\n  // Clip margin of first\n  #{ $prefix }:not(#{ $prefix }--separated-first) {\n    > div:first-child {\n      padding-top: 0;\n      margin-top: 0;\n    }\n  }\n",
              "line": {
                "start": 88,
                "end": 181
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"definition-list\");\n  $item-margin-half: math.div(get(\"item-margin\"), 2);\n  $compact-item-margin-half: math.div(get(\"compact-item-margin\"), 2);\n\n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n\n    > div {\n      margin-top: $item-margin-half;\n      padding-top: $item-margin-half;\n    }\n    dt,\n    dd {\n      display: block;\n      margin: 0;\n      font-weight: normal;\n    }\n    dt {\n      font-weight: get(\"term-font-weight\");\n      font-weight: color.get(get(\"term-color\"));\n    }\n  }\n\n  // Modifiers\n  #{ $prefix }--table {\n    @include breakpoint.min(get(\"table-breakpoint\")) {\n      > div {\n        display: grid;\n        grid-template-columns: get(\"table-template-columns\");\n        gap: get(\"table-gap\");\n      }\n    }\n  }\n\n  #{ $prefix }--inline,\n  #{ $prefix }--inline-all {\n    > div {\n      display: flex;\n      flex-wrap: wrap;\n      align-items: baseline;\n    }\n\n    dd + dd {\n      &::before {\n        content: get(\"inline-description-separator\");\n        margin-right: 0.2em;\n      }\n    }\n  }\n\n  #{ $prefix }--inline {\n    dt {\n      flex-basis: 100%;\n    }\n  }\n\n  #{ $prefix }--inline-all {\n    dt {\n      &::after {\n        content: get(\"inline-term-separator\");\n        margin-right: 0.2em;\n      }\n    }\n  }\n\n  #{ $prefix }--separated > div:not(:first-child),\n  #{ $prefix }--separated-first > div:first-child {\n    border-top: get(\"separator-border\");\n  }\n  #{ $prefix }--separated-last > div:last-child {\n    border-bottom: get(\"separator-border\");\n    padding-bottom: $item-margin-half;\n  }\n\n  #{ $prefix }--compact {\n    > div {\n      margin-top: $compact-item-margin-half;\n      padding-top: $compact-item-margin-half;\n    }\n  }\n  #{ $prefix }--compact#{ $prefix }--separated-last > div:last-child {\n    padding-bottom: $compact-item-margin-half;\n  }\n\n  // Clip margin of first\n  #{ $prefix }:not(#{ $prefix }--separated-first) {\n    > div:first-child {\n      padding-top: 0;\n      margin-top: 0;\n    }\n  }\n",
              "line": {
                "start": 88,
                "end": 181
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"definition-list\");\n  $item-margin-half: math.div(get(\"item-margin\"), 2);\n  $compact-item-margin-half: math.div(get(\"compact-item-margin\"), 2);\n\n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n\n    > div {\n      margin-top: $item-margin-half;\n      padding-top: $item-margin-half;\n    }\n    dt,\n    dd {\n      display: block;\n      margin: 0;\n      font-weight: normal;\n    }\n    dt {\n      font-weight: get(\"term-font-weight\");\n      font-weight: color.get(get(\"term-color\"));\n    }\n  }\n\n  // Modifiers\n  #{ $prefix }--table {\n    @include breakpoint.min(get(\"table-breakpoint\")) {\n      > div {\n        display: grid;\n        grid-template-columns: get(\"table-template-columns\");\n        gap: get(\"table-gap\");\n      }\n    }\n  }\n\n  #{ $prefix }--inline,\n  #{ $prefix }--inline-all {\n    > div {\n      display: flex;\n      flex-wrap: wrap;\n      align-items: baseline;\n    }\n\n    dd + dd {\n      &::before {\n        content: get(\"inline-description-separator\");\n        margin-right: 0.2em;\n      }\n    }\n  }\n\n  #{ $prefix }--inline {\n    dt {\n      flex-basis: 100%;\n    }\n  }\n\n  #{ $prefix }--inline-all {\n    dt {\n      &::after {\n        content: get(\"inline-term-separator\");\n        margin-right: 0.2em;\n      }\n    }\n  }\n\n  #{ $prefix }--separated > div:not(:first-child),\n  #{ $prefix }--separated-first > div:first-child {\n    border-top: get(\"separator-border\");\n  }\n  #{ $prefix }--separated-last > div:last-child {\n    border-bottom: get(\"separator-border\");\n    padding-bottom: $item-margin-half;\n  }\n\n  #{ $prefix }--compact {\n    > div {\n      margin-top: $compact-item-margin-half;\n      padding-top: $compact-item-margin-half;\n    }\n  }\n  #{ $prefix }--compact#{ $prefix }--separated-last > div:last-child {\n    padding-bottom: $compact-item-margin-half;\n  }\n\n  // Clip margin of first\n  #{ $prefix }:not(#{ $prefix }--separated-first) {\n    > div:first-child {\n      padding-top: 0;\n      margin-top: 0;\n    }\n  }\n",
              "line": {
                "start": 88,
                "end": 181
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"definition-list\");\n  $item-margin-half: math.div(get(\"item-margin\"), 2);\n  $compact-item-margin-half: math.div(get(\"compact-item-margin\"), 2);\n\n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n\n    > div {\n      margin-top: $item-margin-half;\n      padding-top: $item-margin-half;\n    }\n    dt,\n    dd {\n      display: block;\n      margin: 0;\n      font-weight: normal;\n    }\n    dt {\n      font-weight: get(\"term-font-weight\");\n      font-weight: color.get(get(\"term-color\"));\n    }\n  }\n\n  // Modifiers\n  #{ $prefix }--table {\n    @include breakpoint.min(get(\"table-breakpoint\")) {\n      > div {\n        display: grid;\n        grid-template-columns: get(\"table-template-columns\");\n        gap: get(\"table-gap\");\n      }\n    }\n  }\n\n  #{ $prefix }--inline,\n  #{ $prefix }--inline-all {\n    > div {\n      display: flex;\n      flex-wrap: wrap;\n      align-items: baseline;\n    }\n\n    dd + dd {\n      &::before {\n        content: get(\"inline-description-separator\");\n        margin-right: 0.2em;\n      }\n    }\n  }\n\n  #{ $prefix }--inline {\n    dt {\n      flex-basis: 100%;\n    }\n  }\n\n  #{ $prefix }--inline-all {\n    dt {\n      &::after {\n        content: get(\"inline-term-separator\");\n        margin-right: 0.2em;\n      }\n    }\n  }\n\n  #{ $prefix }--separated > div:not(:first-child),\n  #{ $prefix }--separated-first > div:first-child {\n    border-top: get(\"separator-border\");\n  }\n  #{ $prefix }--separated-last > div:last-child {\n    border-bottom: get(\"separator-border\");\n    padding-bottom: $item-margin-half;\n  }\n\n  #{ $prefix }--compact {\n    > div {\n      margin-top: $compact-item-margin-half;\n      padding-top: $compact-item-margin-half;\n    }\n  }\n  #{ $prefix }--compact#{ $prefix }--separated-last > div:last-child {\n    padding-bottom: $compact-item-margin-half;\n  }\n\n  // Clip margin of first\n  #{ $prefix }:not(#{ $prefix }--separated-first) {\n    > div:first-child {\n      padding-top: 0;\n      margin-top: 0;\n    }\n  }\n",
              "line": {
                "start": 88,
                "end": 181
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"definition-list\");\n  $item-margin-half: math.div(get(\"item-margin\"), 2);\n  $compact-item-margin-half: math.div(get(\"compact-item-margin\"), 2);\n\n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n\n    > div {\n      margin-top: $item-margin-half;\n      padding-top: $item-margin-half;\n    }\n    dt,\n    dd {\n      display: block;\n      margin: 0;\n      font-weight: normal;\n    }\n    dt {\n      font-weight: get(\"term-font-weight\");\n      font-weight: color.get(get(\"term-color\"));\n    }\n  }\n\n  // Modifiers\n  #{ $prefix }--table {\n    @include breakpoint.min(get(\"table-breakpoint\")) {\n      > div {\n        display: grid;\n        grid-template-columns: get(\"table-template-columns\");\n        gap: get(\"table-gap\");\n      }\n    }\n  }\n\n  #{ $prefix }--inline,\n  #{ $prefix }--inline-all {\n    > div {\n      display: flex;\n      flex-wrap: wrap;\n      align-items: baseline;\n    }\n\n    dd + dd {\n      &::before {\n        content: get(\"inline-description-separator\");\n        margin-right: 0.2em;\n      }\n    }\n  }\n\n  #{ $prefix }--inline {\n    dt {\n      flex-basis: 100%;\n    }\n  }\n\n  #{ $prefix }--inline-all {\n    dt {\n      &::after {\n        content: get(\"inline-term-separator\");\n        margin-right: 0.2em;\n      }\n    }\n  }\n\n  #{ $prefix }--separated > div:not(:first-child),\n  #{ $prefix }--separated-first > div:first-child {\n    border-top: get(\"separator-border\");\n  }\n  #{ $prefix }--separated-last > div:last-child {\n    border-bottom: get(\"separator-border\");\n    padding-bottom: $item-margin-half;\n  }\n\n  #{ $prefix }--compact {\n    > div {\n      margin-top: $compact-item-margin-half;\n      padding-top: $compact-item-margin-half;\n    }\n  }\n  #{ $prefix }--compact#{ $prefix }--separated-last > div:last-child {\n    padding-bottom: $compact-item-margin-half;\n  }\n\n  // Clip margin of first\n  #{ $prefix }:not(#{ $prefix }--separated-first) {\n    > div:first-child {\n      padding-top: 0;\n      margin-top: 0;\n    }\n  }\n",
              "line": {
                "start": 88,
                "end": 181
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"definition-list\");\n  $item-margin-half: math.div(get(\"item-margin\"), 2);\n  $compact-item-margin-half: math.div(get(\"compact-item-margin\"), 2);\n\n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n\n    > div {\n      margin-top: $item-margin-half;\n      padding-top: $item-margin-half;\n    }\n    dt,\n    dd {\n      display: block;\n      margin: 0;\n      font-weight: normal;\n    }\n    dt {\n      font-weight: get(\"term-font-weight\");\n      font-weight: color.get(get(\"term-color\"));\n    }\n  }\n\n  // Modifiers\n  #{ $prefix }--table {\n    @include breakpoint.min(get(\"table-breakpoint\")) {\n      > div {\n        display: grid;\n        grid-template-columns: get(\"table-template-columns\");\n        gap: get(\"table-gap\");\n      }\n    }\n  }\n\n  #{ $prefix }--inline,\n  #{ $prefix }--inline-all {\n    > div {\n      display: flex;\n      flex-wrap: wrap;\n      align-items: baseline;\n    }\n\n    dd + dd {\n      &::before {\n        content: get(\"inline-description-separator\");\n        margin-right: 0.2em;\n      }\n    }\n  }\n\n  #{ $prefix }--inline {\n    dt {\n      flex-basis: 100%;\n    }\n  }\n\n  #{ $prefix }--inline-all {\n    dt {\n      &::after {\n        content: get(\"inline-term-separator\");\n        margin-right: 0.2em;\n      }\n    }\n  }\n\n  #{ $prefix }--separated > div:not(:first-child),\n  #{ $prefix }--separated-first > div:first-child {\n    border-top: get(\"separator-border\");\n  }\n  #{ $prefix }--separated-last > div:last-child {\n    border-bottom: get(\"separator-border\");\n    padding-bottom: $item-margin-half;\n  }\n\n  #{ $prefix }--compact {\n    > div {\n      margin-top: $compact-item-margin-half;\n      padding-top: $compact-item-margin-half;\n    }\n  }\n  #{ $prefix }--compact#{ $prefix }--separated-last > div:last-child {\n    padding-bottom: $compact-item-margin-half;\n  }\n\n  // Clip margin of first\n  #{ $prefix }:not(#{ $prefix }--separated-first) {\n    > div:first-child {\n      padding-top: 0;\n      margin-top: 0;\n    }\n  }\n",
              "line": {
                "start": 88,
                "end": 181
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"definition-list\");\n  $item-margin-half: math.div(get(\"item-margin\"), 2);\n  $compact-item-margin-half: math.div(get(\"compact-item-margin\"), 2);\n\n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n\n    > div {\n      margin-top: $item-margin-half;\n      padding-top: $item-margin-half;\n    }\n    dt,\n    dd {\n      display: block;\n      margin: 0;\n      font-weight: normal;\n    }\n    dt {\n      font-weight: get(\"term-font-weight\");\n      font-weight: color.get(get(\"term-color\"));\n    }\n  }\n\n  // Modifiers\n  #{ $prefix }--table {\n    @include breakpoint.min(get(\"table-breakpoint\")) {\n      > div {\n        display: grid;\n        grid-template-columns: get(\"table-template-columns\");\n        gap: get(\"table-gap\");\n      }\n    }\n  }\n\n  #{ $prefix }--inline,\n  #{ $prefix }--inline-all {\n    > div {\n      display: flex;\n      flex-wrap: wrap;\n      align-items: baseline;\n    }\n\n    dd + dd {\n      &::before {\n        content: get(\"inline-description-separator\");\n        margin-right: 0.2em;\n      }\n    }\n  }\n\n  #{ $prefix }--inline {\n    dt {\n      flex-basis: 100%;\n    }\n  }\n\n  #{ $prefix }--inline-all {\n    dt {\n      &::after {\n        content: get(\"inline-term-separator\");\n        margin-right: 0.2em;\n      }\n    }\n  }\n\n  #{ $prefix }--separated > div:not(:first-child),\n  #{ $prefix }--separated-first > div:first-child {\n    border-top: get(\"separator-border\");\n  }\n  #{ $prefix }--separated-last > div:last-child {\n    border-bottom: get(\"separator-border\");\n    padding-bottom: $item-margin-half;\n  }\n\n  #{ $prefix }--compact {\n    > div {\n      margin-top: $compact-item-margin-half;\n      padding-top: $compact-item-margin-half;\n    }\n  }\n  #{ $prefix }--compact#{ $prefix }--separated-last > div:last-child {\n    padding-bottom: $compact-item-margin-half;\n  }\n\n  // Clip margin of first\n  #{ $prefix }:not(#{ $prefix }--separated-first) {\n    > div:first-child {\n      padding-top: 0;\n      margin-top: 0;\n    }\n  }\n",
              "line": {
                "start": 88,
                "end": 181
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
              "line": {
                "start": 103,
                "end": 325
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard-grid\");\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-auto-rows: 1fr;\n    justify-items: stretch;\n    gap: get(\"gutter\");\n    list-style: none !important; // B/c in Editor\n    padding: 0 !important; // B/c in Editor\n    @if (breakpoint.exists(get(\"breakpoint\"))) {\n      @include breakpoint.min(get(\"breakpoint\")) {\n        grid-template-columns: get(\"grid-template-columns\");\n      }\n    }\n  }\n  #{ $prefix }__item {\n    margin: 0 !important; // B/c in Editor\n  }\n",
              "line": {
                "start": 46,
                "end": 66
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard-grid\");\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-auto-rows: 1fr;\n    justify-items: stretch;\n    gap: get(\"gutter\");\n    list-style: none !important; // B/c in Editor\n    padding: 0 !important; // B/c in Editor\n    @if (breakpoint.exists(get(\"breakpoint\"))) {\n      @include breakpoint.min(get(\"breakpoint\")) {\n        grid-template-columns: get(\"grid-template-columns\");\n      }\n    }\n  }\n  #{ $prefix }__item {\n    margin: 0 !important; // B/c in Editor\n  }\n",
              "line": {
                "start": 46,
                "end": 66
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard-grid\");\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-auto-rows: 1fr;\n    justify-items: stretch;\n    gap: get(\"gutter\");\n    list-style: none !important; // B/c in Editor\n    padding: 0 !important; // B/c in Editor\n    @if (breakpoint.exists(get(\"breakpoint\"))) {\n      @include breakpoint.min(get(\"breakpoint\")) {\n        grid-template-columns: get(\"grid-template-columns\");\n      }\n    }\n  }\n  #{ $prefix }__item {\n    margin: 0 !important; // B/c in Editor\n  }\n",
              "line": {
                "start": 46,
                "end": 66
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"flipcard-grid\");\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-auto-rows: 1fr;\n    justify-items: stretch;\n    gap: get(\"gutter\");\n    list-style: none !important; // B/c in Editor\n    padding: 0 !important; // B/c in Editor\n    @if (breakpoint.exists(get(\"breakpoint\"))) {\n      @include breakpoint.min(get(\"breakpoint\")) {\n        grid-template-columns: get(\"grid-template-columns\");\n      }\n    }\n  }\n  #{ $prefix }__item {\n    margin: 0 !important; // B/c in Editor\n  }\n",
              "line": {
                "start": 46,
                "end": 66
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"form-theme\");\n\n  // Shared element styles\n  #{ $prefix } {\n    @include form-element-styles();\n  }\n\n  // Print styles differently for standard vs Drupal\n  // - Has different elements (ie. .form-item)\n  @if (get(\"drupal\")) {\n    @include drupal-layout-element-styles();\n  } @else {\n    @include layout-element-styles();\n  }\n\n  // Modifiers\n  #{ $prefix }--full-width {\n    [type=\"text\"],\n    [type=\"email\"],\n    [type=\"password\"] {\n      width: 100%;\n    }\n    textarea {\n      width: 100%;\n    }\n  }\n  #{ $prefix }--full-width-select {\n    select {\n      width: 100%;\n    }\n  }\n  #{ $prefix }--hide-labels {\n    label {\n      @include element.hidden-visually();\n    }\n  }\n",
              "line": {
                "start": 225,
                "end": 262
              }
            }
          },
          {
            "description": "Required Character styles (ie. \"*\")\n",
            "context": {
              "type": "mixin",
              "name": "element-required-char",
              "code": "\n  color: color.get(get(\"required-color\"));\n  font-size: 110%;\n  font-weight: bold;\n  &:last-child {\n    margin-left: 0.15em;\n  }\n",
              "line": {
                "start": 502,
                "end": 509
              }
            }
          },
          {
            "description": "Required Character styles (ie. \"*\")\n",
            "context": {
              "type": "mixin",
              "name": "element-required-char",
              "code": "\n  color: color.get(get(\"required-color\"));\n  font-size: 110%;\n  font-weight: bold;\n  &:last-child {\n    margin-left: 0.15em;\n  }\n",
              "line": {
                "start": 502,
                "end": 509
              }
            }
          },
          {
            "description": "Help text / Description\n",
            "context": {
              "type": "mixin",
              "name": "element-help-text",
              "code": "\n  margin: get(\"description-margin\");\n  font-style: italic;\n  @include typography.size(\"small\", null, true);\n  line-height: get(\"description-line-height\");\n  max-width: get(\"description-max-width\");\n  color: color.get(get(\"description-color\"));\n",
              "line": {
                "start": 512,
                "end": 519
              }
            }
          },
          {
            "description": "Help text / Description\n",
            "context": {
              "type": "mixin",
              "name": "element-help-text",
              "code": "\n  margin: get(\"description-margin\");\n  font-style: italic;\n  @include typography.size(\"small\", null, true);\n  line-height: get(\"description-line-height\");\n  max-width: get(\"description-max-width\");\n  color: color.get(get(\"description-color\"));\n",
              "line": {
                "start": 512,
                "end": 519
              }
            }
          },
          {
            "description": "Help text / Description\n",
            "context": {
              "type": "mixin",
              "name": "element-help-text",
              "code": "\n  margin: get(\"description-margin\");\n  font-style: italic;\n  @include typography.size(\"small\", null, true);\n  line-height: get(\"description-line-height\");\n  max-width: get(\"description-max-width\");\n  color: color.get(get(\"description-color\"));\n",
              "line": {
                "start": 512,
                "end": 519
              }
            }
          },
          {
            "description": "Help text / Description\n",
            "context": {
              "type": "mixin",
              "name": "element-help-text",
              "code": "\n  margin: get(\"description-margin\");\n  font-style: italic;\n  @include typography.size(\"small\", null, true);\n  line-height: get(\"description-line-height\");\n  max-width: get(\"description-max-width\");\n  color: color.get(get(\"description-color\"));\n",
              "line": {
                "start": 512,
                "end": 519
              }
            }
          },
          {
            "description": "Help text / Description\n",
            "context": {
              "type": "mixin",
              "name": "element-help-text",
              "code": "\n  margin: get(\"description-margin\");\n  font-style: italic;\n  @include typography.size(\"small\", null, true);\n  line-height: get(\"description-line-height\");\n  max-width: get(\"description-max-width\");\n  color: color.get(get(\"description-color\"));\n",
              "line": {
                "start": 512,
                "end": 519
              }
            }
          },
          {
            "description": "Styles for form item container (like radio, checkbox)\n",
            "context": {
              "type": "mixin",
              "name": "-element-form-item",
              "code": "\n  $errorColor: color.get(get(\"error-color\"));\n  $selectError: get(\"error-selector\");\n  $warningColor: color.get(get(\"warning-color\"));\n  $selectWarning: get(\"warning-selector\");\n\n  display: flex;\n  align-items: get(\"item-align-items\");\n  margin-bottom: get(\"item-margin-y\");\n  border-radius: get(\"item-border-radius\");\n  flex-shrink: 0; // Cannot be smaller than content within\n  @include -form-item-state($selectError, $errorColor, color.get(get(\"error-highlight-color\")));\n  @include -form-item-state($selectWarning, $warningColor, color.get(get(\"warning-highlight-color\")));\n",
              "line": {
                "start": 522,
                "end": 535
              }
            }
          },
          {
            "description": "Styles for form item container (like radio, checkbox)\n",
            "context": {
              "type": "mixin",
              "name": "-element-form-item",
              "code": "\n  $errorColor: color.get(get(\"error-color\"));\n  $selectError: get(\"error-selector\");\n  $warningColor: color.get(get(\"warning-color\"));\n  $selectWarning: get(\"warning-selector\");\n\n  display: flex;\n  align-items: get(\"item-align-items\");\n  margin-bottom: get(\"item-margin-y\");\n  border-radius: get(\"item-border-radius\");\n  flex-shrink: 0; // Cannot be smaller than content within\n  @include -form-item-state($selectError, $errorColor, color.get(get(\"error-highlight-color\")));\n  @include -form-item-state($selectWarning, $warningColor, color.get(get(\"warning-highlight-color\")));\n",
              "line": {
                "start": 522,
                "end": 535
              }
            }
          },
          {
            "description": "Styles for form item container (like radio, checkbox)\n",
            "context": {
              "type": "mixin",
              "name": "-element-form-item",
              "code": "\n  $errorColor: color.get(get(\"error-color\"));\n  $selectError: get(\"error-selector\");\n  $warningColor: color.get(get(\"warning-color\"));\n  $selectWarning: get(\"warning-selector\");\n\n  display: flex;\n  align-items: get(\"item-align-items\");\n  margin-bottom: get(\"item-margin-y\");\n  border-radius: get(\"item-border-radius\");\n  flex-shrink: 0; // Cannot be smaller than content within\n  @include -form-item-state($selectError, $errorColor, color.get(get(\"error-highlight-color\")));\n  @include -form-item-state($selectWarning, $warningColor, color.get(get(\"warning-highlight-color\")));\n",
              "line": {
                "start": 522,
                "end": 535
              }
            }
          },
          {
            "description": "Styles for form item container (like radio, checkbox)\n",
            "context": {
              "type": "mixin",
              "name": "-element-form-item",
              "code": "\n  $errorColor: color.get(get(\"error-color\"));\n  $selectError: get(\"error-selector\");\n  $warningColor: color.get(get(\"warning-color\"));\n  $selectWarning: get(\"warning-selector\");\n\n  display: flex;\n  align-items: get(\"item-align-items\");\n  margin-bottom: get(\"item-margin-y\");\n  border-radius: get(\"item-border-radius\");\n  flex-shrink: 0; // Cannot be smaller than content within\n  @include -form-item-state($selectError, $errorColor, color.get(get(\"error-highlight-color\")));\n  @include -form-item-state($selectWarning, $warningColor, color.get(get(\"warning-highlight-color\")));\n",
              "line": {
                "start": 522,
                "end": 535
              }
            }
          },
          {
            "description": "Styles for form item container (like radio, checkbox)\n",
            "context": {
              "type": "mixin",
              "name": "-element-form-item",
              "code": "\n  $errorColor: color.get(get(\"error-color\"));\n  $selectError: get(\"error-selector\");\n  $warningColor: color.get(get(\"warning-color\"));\n  $selectWarning: get(\"warning-selector\");\n\n  display: flex;\n  align-items: get(\"item-align-items\");\n  margin-bottom: get(\"item-margin-y\");\n  border-radius: get(\"item-border-radius\");\n  flex-shrink: 0; // Cannot be smaller than content within\n  @include -form-item-state($selectError, $errorColor, color.get(get(\"error-highlight-color\")));\n  @include -form-item-state($selectWarning, $warningColor, color.get(get(\"warning-highlight-color\")));\n",
              "line": {
                "start": 522,
                "end": 535
              }
            }
          },
          {
            "description": "Styles for form item container (like radio, checkbox)\n",
            "context": {
              "type": "mixin",
              "name": "-element-form-item",
              "code": "\n  $errorColor: color.get(get(\"error-color\"));\n  $selectError: get(\"error-selector\");\n  $warningColor: color.get(get(\"warning-color\"));\n  $selectWarning: get(\"warning-selector\");\n\n  display: flex;\n  align-items: get(\"item-align-items\");\n  margin-bottom: get(\"item-margin-y\");\n  border-radius: get(\"item-border-radius\");\n  flex-shrink: 0; // Cannot be smaller than content within\n  @include -form-item-state($selectError, $errorColor, color.get(get(\"error-highlight-color\")));\n  @include -form-item-state($selectWarning, $warningColor, color.get(get(\"warning-highlight-color\")));\n",
              "line": {
                "start": 522,
                "end": 535
              }
            }
          },
          {
            "description": "Styles for form item container (like radio, checkbox)\n",
            "context": {
              "type": "mixin",
              "name": "-element-form-item",
              "code": "\n  $errorColor: color.get(get(\"error-color\"));\n  $selectError: get(\"error-selector\");\n  $warningColor: color.get(get(\"warning-color\"));\n  $selectWarning: get(\"warning-selector\");\n\n  display: flex;\n  align-items: get(\"item-align-items\");\n  margin-bottom: get(\"item-margin-y\");\n  border-radius: get(\"item-border-radius\");\n  flex-shrink: 0; // Cannot be smaller than content within\n  @include -form-item-state($selectError, $errorColor, color.get(get(\"error-highlight-color\")));\n  @include -form-item-state($selectWarning, $warningColor, color.get(get(\"warning-highlight-color\")));\n",
              "line": {
                "start": 522,
                "end": 535
              }
            }
          },
          {
            "description": "Styles for form item container (like radio, checkbox)\n",
            "context": {
              "type": "mixin",
              "name": "-element-form-item",
              "code": "\n  $errorColor: color.get(get(\"error-color\"));\n  $selectError: get(\"error-selector\");\n  $warningColor: color.get(get(\"warning-color\"));\n  $selectWarning: get(\"warning-selector\");\n\n  display: flex;\n  align-items: get(\"item-align-items\");\n  margin-bottom: get(\"item-margin-y\");\n  border-radius: get(\"item-border-radius\");\n  flex-shrink: 0; // Cannot be smaller than content within\n  @include -form-item-state($selectError, $errorColor, color.get(get(\"error-highlight-color\")));\n  @include -form-item-state($selectWarning, $warningColor, color.get(get(\"warning-highlight-color\")));\n",
              "line": {
                "start": 522,
                "end": 535
              }
            }
          },
          {
            "description": "Styles for form item container (like radio, checkbox)\n",
            "context": {
              "type": "mixin",
              "name": "-element-form-item",
              "code": "\n  $errorColor: color.get(get(\"error-color\"));\n  $selectError: get(\"error-selector\");\n  $warningColor: color.get(get(\"warning-color\"));\n  $selectWarning: get(\"warning-selector\");\n\n  display: flex;\n  align-items: get(\"item-align-items\");\n  margin-bottom: get(\"item-margin-y\");\n  border-radius: get(\"item-border-radius\");\n  flex-shrink: 0; // Cannot be smaller than content within\n  @include -form-item-state($selectError, $errorColor, color.get(get(\"error-highlight-color\")));\n  @include -form-item-state($selectWarning, $warningColor, color.get(get(\"warning-highlight-color\")));\n",
              "line": {
                "start": 522,
                "end": 535
              }
            }
          },
          {
            "description": "Styles for form item container (like radio, checkbox)\n",
            "context": {
              "type": "mixin",
              "name": "-element-form-item",
              "code": "\n  $errorColor: color.get(get(\"error-color\"));\n  $selectError: get(\"error-selector\");\n  $warningColor: color.get(get(\"warning-color\"));\n  $selectWarning: get(\"warning-selector\");\n\n  display: flex;\n  align-items: get(\"item-align-items\");\n  margin-bottom: get(\"item-margin-y\");\n  border-radius: get(\"item-border-radius\");\n  flex-shrink: 0; // Cannot be smaller than content within\n  @include -form-item-state($selectError, $errorColor, color.get(get(\"error-highlight-color\")));\n  @include -form-item-state($selectWarning, $warningColor, color.get(get(\"warning-highlight-color\")));\n",
              "line": {
                "start": 522,
                "end": 535
              }
            }
          },
          {
            "description": "Styles for form item container (like radio, checkbox)\n",
            "context": {
              "type": "mixin",
              "name": "-element-form-item",
              "code": "\n  $errorColor: color.get(get(\"error-color\"));\n  $selectError: get(\"error-selector\");\n  $warningColor: color.get(get(\"warning-color\"));\n  $selectWarning: get(\"warning-selector\");\n\n  display: flex;\n  align-items: get(\"item-align-items\");\n  margin-bottom: get(\"item-margin-y\");\n  border-radius: get(\"item-border-radius\");\n  flex-shrink: 0; // Cannot be smaller than content within\n  @include -form-item-state($selectError, $errorColor, color.get(get(\"error-highlight-color\")));\n  @include -form-item-state($selectWarning, $warningColor, color.get(get(\"warning-highlight-color\")));\n",
              "line": {
                "start": 522,
                "end": 535
              }
            }
          },
          {
            "description": "Styles for form item container (like radio, checkbox)\n",
            "context": {
              "type": "mixin",
              "name": "-element-form-item",
              "code": "\n  $errorColor: color.get(get(\"error-color\"));\n  $selectError: get(\"error-selector\");\n  $warningColor: color.get(get(\"warning-color\"));\n  $selectWarning: get(\"warning-selector\");\n\n  display: flex;\n  align-items: get(\"item-align-items\");\n  margin-bottom: get(\"item-margin-y\");\n  border-radius: get(\"item-border-radius\");\n  flex-shrink: 0; // Cannot be smaller than content within\n  @include -form-item-state($selectError, $errorColor, color.get(get(\"error-highlight-color\")));\n  @include -form-item-state($selectWarning, $warningColor, color.get(get(\"warning-highlight-color\")));\n",
              "line": {
                "start": 522,
                "end": 535
              }
            }
          },
          {
            "description": "Styles for form item container (like radio, checkbox)\n",
            "context": {
              "type": "mixin",
              "name": "-element-form-item",
              "code": "\n  $errorColor: color.get(get(\"error-color\"));\n  $selectError: get(\"error-selector\");\n  $warningColor: color.get(get(\"warning-color\"));\n  $selectWarning: get(\"warning-selector\");\n\n  display: flex;\n  align-items: get(\"item-align-items\");\n  margin-bottom: get(\"item-margin-y\");\n  border-radius: get(\"item-border-radius\");\n  flex-shrink: 0; // Cannot be smaller than content within\n  @include -form-item-state($selectError, $errorColor, color.get(get(\"error-highlight-color\")));\n  @include -form-item-state($selectWarning, $warningColor, color.get(get(\"warning-highlight-color\")));\n",
              "line": {
                "start": 522,
                "end": 535
              }
            }
          },
          {
            "description": "Styles for form item that should have label as block and text input\n",
            "context": {
              "type": "mixin",
              "name": "element-form-item-block",
              "code": "\n  display: block;\n  label {\n    font-weight: get(\"font-weight-label\");\n    display: block;\n    margin-bottom: get(\"text-input-margin-bottom\");\n    margin-top: get(\"text-input-margin-top\");\n  }\n  input {\n    border-radius: get(\"input-border-radius\");\n  }\n",
              "line": {
                "start": 538,
                "end": 549
              }
            }
          },
          {
            "description": "Styles for form item that should have label as block and text input\n",
            "context": {
              "type": "mixin",
              "name": "element-form-item-block",
              "code": "\n  display: block;\n  label {\n    font-weight: get(\"font-weight-label\");\n    display: block;\n    margin-bottom: get(\"text-input-margin-bottom\");\n    margin-top: get(\"text-input-margin-top\");\n  }\n  input {\n    border-radius: get(\"input-border-radius\");\n  }\n",
              "line": {
                "start": 538,
                "end": 549
              }
            }
          },
          {
            "description": "Styles for form item that should have label as block and text input\n",
            "context": {
              "type": "mixin",
              "name": "element-form-item-block",
              "code": "\n  display: block;\n  label {\n    font-weight: get(\"font-weight-label\");\n    display: block;\n    margin-bottom: get(\"text-input-margin-bottom\");\n    margin-top: get(\"text-input-margin-top\");\n  }\n  input {\n    border-radius: get(\"input-border-radius\");\n  }\n",
              "line": {
                "start": 538,
                "end": 549
              }
            }
          },
          {
            "description": "Styles for form item that should have label as block and text input\n",
            "context": {
              "type": "mixin",
              "name": "element-form-item-block",
              "code": "\n  display: block;\n  label {\n    font-weight: get(\"font-weight-label\");\n    display: block;\n    margin-bottom: get(\"text-input-margin-bottom\");\n    margin-top: get(\"text-input-margin-top\");\n  }\n  input {\n    border-radius: get(\"input-border-radius\");\n  }\n",
              "line": {
                "start": 538,
                "end": 549
              }
            }
          },
          {
            "description": "Layout styling for static/app sites\n",
            "context": {
              "type": "mixin",
              "name": "layout-element-styles",
              "code": "\n  $prefix: selector.class(\"form-theme\");\n  $errorColor: color.get(get(\"error-color\"));\n  $selectError: get(\"error-selector\");\n  $warningColor: color.get(get(\"warning-color\"));\n  $selectWarning: get(\"warning-selector\");\n\n  #{ $prefix }__required-char {\n    @include element-required-char();\n  }\n  #{ $prefix }__description {\n    @include element-help-text();\n  }\n  #{ $prefix }__item {\n    @include -element-form-item();\n  }\n  #{ $prefix }__item--align-top {\n    align-items: flex-start;\n  }\n  #{ $prefix }__item--align-center {\n    align-items: center;\n  }\n  #{ $prefix }__item--text,\n  #{ $prefix }__item--file,\n  #{ $prefix }__item--select,\n  #{ $prefix }__item--textarea {\n    @include element-form-item-block();\n  }\n  #{ $prefix }__items-inline {\n    display: flex;\n    flex-wrap: wrap;\n    gap: get(\"inline-gap\");\n    > #{ $prefix }__item {\n      margin: 0;\n    }\n  }\n  #{ $prefix }__actions {\n    @include element-form-actions();\n  }\n  #{ $prefix }--actions-right {\n    #{ $prefix }__actions {\n      @include element-form-actions-right();\n    }\n  }\n  #{ $prefix }__error {\n    color: color.get($errorColor);\n  }\n  #{ $prefix }__warning {\n    color: color.get($warningColor);\n  }\n",
              "line": {
                "start": 564,
                "end": 614
              }
            }
          },
          {
            "description": "Layout styling for static/app sites\n",
            "context": {
              "type": "mixin",
              "name": "layout-element-styles",
              "code": "\n  $prefix: selector.class(\"form-theme\");\n  $errorColor: color.get(get(\"error-color\"));\n  $selectError: get(\"error-selector\");\n  $warningColor: color.get(get(\"warning-color\"));\n  $selectWarning: get(\"warning-selector\");\n\n  #{ $prefix }__required-char {\n    @include element-required-char();\n  }\n  #{ $prefix }__description {\n    @include element-help-text();\n  }\n  #{ $prefix }__item {\n    @include -element-form-item();\n  }\n  #{ $prefix }__item--align-top {\n    align-items: flex-start;\n  }\n  #{ $prefix }__item--align-center {\n    align-items: center;\n  }\n  #{ $prefix }__item--text,\n  #{ $prefix }__item--file,\n  #{ $prefix }__item--select,\n  #{ $prefix }__item--textarea {\n    @include element-form-item-block();\n  }\n  #{ $prefix }__items-inline {\n    display: flex;\n    flex-wrap: wrap;\n    gap: get(\"inline-gap\");\n    > #{ $prefix }__item {\n      margin: 0;\n    }\n  }\n  #{ $prefix }__actions {\n    @include element-form-actions();\n  }\n  #{ $prefix }--actions-right {\n    #{ $prefix }__actions {\n      @include element-form-actions-right();\n    }\n  }\n  #{ $prefix }__error {\n    color: color.get($errorColor);\n  }\n  #{ $prefix }__warning {\n    color: color.get($warningColor);\n  }\n",
              "line": {
                "start": 564,
                "end": 614
              }
            }
          },
          {
            "description": "Layout styling for static/app sites\n",
            "context": {
              "type": "mixin",
              "name": "layout-element-styles",
              "code": "\n  $prefix: selector.class(\"form-theme\");\n  $errorColor: color.get(get(\"error-color\"));\n  $selectError: get(\"error-selector\");\n  $warningColor: color.get(get(\"warning-color\"));\n  $selectWarning: get(\"warning-selector\");\n\n  #{ $prefix }__required-char {\n    @include element-required-char();\n  }\n  #{ $prefix }__description {\n    @include element-help-text();\n  }\n  #{ $prefix }__item {\n    @include -element-form-item();\n  }\n  #{ $prefix }__item--align-top {\n    align-items: flex-start;\n  }\n  #{ $prefix }__item--align-center {\n    align-items: center;\n  }\n  #{ $prefix }__item--text,\n  #{ $prefix }__item--file,\n  #{ $prefix }__item--select,\n  #{ $prefix }__item--textarea {\n    @include element-form-item-block();\n  }\n  #{ $prefix }__items-inline {\n    display: flex;\n    flex-wrap: wrap;\n    gap: get(\"inline-gap\");\n    > #{ $prefix }__item {\n      margin: 0;\n    }\n  }\n  #{ $prefix }__actions {\n    @include element-form-actions();\n  }\n  #{ $prefix }--actions-right {\n    #{ $prefix }__actions {\n      @include element-form-actions-right();\n    }\n  }\n  #{ $prefix }__error {\n    color: color.get($errorColor);\n  }\n  #{ $prefix }__warning {\n    color: color.get($warningColor);\n  }\n",
              "line": {
                "start": 564,
                "end": 614
              }
            }
          },
          {
            "description": "Layout styling for static/app sites\n",
            "context": {
              "type": "mixin",
              "name": "layout-element-styles",
              "code": "\n  $prefix: selector.class(\"form-theme\");\n  $errorColor: color.get(get(\"error-color\"));\n  $selectError: get(\"error-selector\");\n  $warningColor: color.get(get(\"warning-color\"));\n  $selectWarning: get(\"warning-selector\");\n\n  #{ $prefix }__required-char {\n    @include element-required-char();\n  }\n  #{ $prefix }__description {\n    @include element-help-text();\n  }\n  #{ $prefix }__item {\n    @include -element-form-item();\n  }\n  #{ $prefix }__item--align-top {\n    align-items: flex-start;\n  }\n  #{ $prefix }__item--align-center {\n    align-items: center;\n  }\n  #{ $prefix }__item--text,\n  #{ $prefix }__item--file,\n  #{ $prefix }__item--select,\n  #{ $prefix }__item--textarea {\n    @include element-form-item-block();\n  }\n  #{ $prefix }__items-inline {\n    display: flex;\n    flex-wrap: wrap;\n    gap: get(\"inline-gap\");\n    > #{ $prefix }__item {\n      margin: 0;\n    }\n  }\n  #{ $prefix }__actions {\n    @include element-form-actions();\n  }\n  #{ $prefix }--actions-right {\n    #{ $prefix }__actions {\n      @include element-form-actions-right();\n    }\n  }\n  #{ $prefix }__error {\n    color: color.get($errorColor);\n  }\n  #{ $prefix }__warning {\n    color: color.get($warningColor);\n  }\n",
              "line": {
                "start": 564,
                "end": 614
              }
            }
          },
          {
            "description": "Layout styling for static/app sites\n",
            "context": {
              "type": "mixin",
              "name": "layout-element-styles",
              "code": "\n  $prefix: selector.class(\"form-theme\");\n  $errorColor: color.get(get(\"error-color\"));\n  $selectError: get(\"error-selector\");\n  $warningColor: color.get(get(\"warning-color\"));\n  $selectWarning: get(\"warning-selector\");\n\n  #{ $prefix }__required-char {\n    @include element-required-char();\n  }\n  #{ $prefix }__description {\n    @include element-help-text();\n  }\n  #{ $prefix }__item {\n    @include -element-form-item();\n  }\n  #{ $prefix }__item--align-top {\n    align-items: flex-start;\n  }\n  #{ $prefix }__item--align-center {\n    align-items: center;\n  }\n  #{ $prefix }__item--text,\n  #{ $prefix }__item--file,\n  #{ $prefix }__item--select,\n  #{ $prefix }__item--textarea {\n    @include element-form-item-block();\n  }\n  #{ $prefix }__items-inline {\n    display: flex;\n    flex-wrap: wrap;\n    gap: get(\"inline-gap\");\n    > #{ $prefix }__item {\n      margin: 0;\n    }\n  }\n  #{ $prefix }__actions {\n    @include element-form-actions();\n  }\n  #{ $prefix }--actions-right {\n    #{ $prefix }__actions {\n      @include element-form-actions-right();\n    }\n  }\n  #{ $prefix }__error {\n    color: color.get($errorColor);\n  }\n  #{ $prefix }__warning {\n    color: color.get($warningColor);\n  }\n",
              "line": {
                "start": 564,
                "end": 614
              }
            }
          },
          {
            "description": "Layout styling for static/app sites\n",
            "context": {
              "type": "mixin",
              "name": "layout-element-styles",
              "code": "\n  $prefix: selector.class(\"form-theme\");\n  $errorColor: color.get(get(\"error-color\"));\n  $selectError: get(\"error-selector\");\n  $warningColor: color.get(get(\"warning-color\"));\n  $selectWarning: get(\"warning-selector\");\n\n  #{ $prefix }__required-char {\n    @include element-required-char();\n  }\n  #{ $prefix }__description {\n    @include element-help-text();\n  }\n  #{ $prefix }__item {\n    @include -element-form-item();\n  }\n  #{ $prefix }__item--align-top {\n    align-items: flex-start;\n  }\n  #{ $prefix }__item--align-center {\n    align-items: center;\n  }\n  #{ $prefix }__item--text,\n  #{ $prefix }__item--file,\n  #{ $prefix }__item--select,\n  #{ $prefix }__item--textarea {\n    @include element-form-item-block();\n  }\n  #{ $prefix }__items-inline {\n    display: flex;\n    flex-wrap: wrap;\n    gap: get(\"inline-gap\");\n    > #{ $prefix }__item {\n      margin: 0;\n    }\n  }\n  #{ $prefix }__actions {\n    @include element-form-actions();\n  }\n  #{ $prefix }--actions-right {\n    #{ $prefix }__actions {\n      @include element-form-actions-right();\n    }\n  }\n  #{ $prefix }__error {\n    color: color.get($errorColor);\n  }\n  #{ $prefix }__warning {\n    color: color.get($warningColor);\n  }\n",
              "line": {
                "start": 564,
                "end": 614
              }
            }
          },
          {
            "description": "Layout styling for static/app sites\n",
            "context": {
              "type": "mixin",
              "name": "layout-element-styles",
              "code": "\n  $prefix: selector.class(\"form-theme\");\n  $errorColor: color.get(get(\"error-color\"));\n  $selectError: get(\"error-selector\");\n  $warningColor: color.get(get(\"warning-color\"));\n  $selectWarning: get(\"warning-selector\");\n\n  #{ $prefix }__required-char {\n    @include element-required-char();\n  }\n  #{ $prefix }__description {\n    @include element-help-text();\n  }\n  #{ $prefix }__item {\n    @include -element-form-item();\n  }\n  #{ $prefix }__item--align-top {\n    align-items: flex-start;\n  }\n  #{ $prefix }__item--align-center {\n    align-items: center;\n  }\n  #{ $prefix }__item--text,\n  #{ $prefix }__item--file,\n  #{ $prefix }__item--select,\n  #{ $prefix }__item--textarea {\n    @include element-form-item-block();\n  }\n  #{ $prefix }__items-inline {\n    display: flex;\n    flex-wrap: wrap;\n    gap: get(\"inline-gap\");\n    > #{ $prefix }__item {\n      margin: 0;\n    }\n  }\n  #{ $prefix }__actions {\n    @include element-form-actions();\n  }\n  #{ $prefix }--actions-right {\n    #{ $prefix }__actions {\n      @include element-form-actions-right();\n    }\n  }\n  #{ $prefix }__error {\n    color: color.get($errorColor);\n  }\n  #{ $prefix }__warning {\n    color: color.get($warningColor);\n  }\n",
              "line": {
                "start": 564,
                "end": 614
              }
            }
          },
          {
            "description": "Layout styling for static/app sites\n",
            "context": {
              "type": "mixin",
              "name": "layout-element-styles",
              "code": "\n  $prefix: selector.class(\"form-theme\");\n  $errorColor: color.get(get(\"error-color\"));\n  $selectError: get(\"error-selector\");\n  $warningColor: color.get(get(\"warning-color\"));\n  $selectWarning: get(\"warning-selector\");\n\n  #{ $prefix }__required-char {\n    @include element-required-char();\n  }\n  #{ $prefix }__description {\n    @include element-help-text();\n  }\n  #{ $prefix }__item {\n    @include -element-form-item();\n  }\n  #{ $prefix }__item--align-top {\n    align-items: flex-start;\n  }\n  #{ $prefix }__item--align-center {\n    align-items: center;\n  }\n  #{ $prefix }__item--text,\n  #{ $prefix }__item--file,\n  #{ $prefix }__item--select,\n  #{ $prefix }__item--textarea {\n    @include element-form-item-block();\n  }\n  #{ $prefix }__items-inline {\n    display: flex;\n    flex-wrap: wrap;\n    gap: get(\"inline-gap\");\n    > #{ $prefix }__item {\n      margin: 0;\n    }\n  }\n  #{ $prefix }__actions {\n    @include element-form-actions();\n  }\n  #{ $prefix }--actions-right {\n    #{ $prefix }__actions {\n      @include element-form-actions-right();\n    }\n  }\n  #{ $prefix }__error {\n    color: color.get($errorColor);\n  }\n  #{ $prefix }__warning {\n    color: color.get($warningColor);\n  }\n",
              "line": {
                "start": 564,
                "end": 614
              }
            }
          },
          {
            "description": "Layout styling for static/app sites\n",
            "context": {
              "type": "mixin",
              "name": "layout-element-styles",
              "code": "\n  $prefix: selector.class(\"form-theme\");\n  $errorColor: color.get(get(\"error-color\"));\n  $selectError: get(\"error-selector\");\n  $warningColor: color.get(get(\"warning-color\"));\n  $selectWarning: get(\"warning-selector\");\n\n  #{ $prefix }__required-char {\n    @include element-required-char();\n  }\n  #{ $prefix }__description {\n    @include element-help-text();\n  }\n  #{ $prefix }__item {\n    @include -element-form-item();\n  }\n  #{ $prefix }__item--align-top {\n    align-items: flex-start;\n  }\n  #{ $prefix }__item--align-center {\n    align-items: center;\n  }\n  #{ $prefix }__item--text,\n  #{ $prefix }__item--file,\n  #{ $prefix }__item--select,\n  #{ $prefix }__item--textarea {\n    @include element-form-item-block();\n  }\n  #{ $prefix }__items-inline {\n    display: flex;\n    flex-wrap: wrap;\n    gap: get(\"inline-gap\");\n    > #{ $prefix }__item {\n      margin: 0;\n    }\n  }\n  #{ $prefix }__actions {\n    @include element-form-actions();\n  }\n  #{ $prefix }--actions-right {\n    #{ $prefix }__actions {\n      @include element-form-actions-right();\n    }\n  }\n  #{ $prefix }__error {\n    color: color.get($errorColor);\n  }\n  #{ $prefix }__warning {\n    color: color.get($warningColor);\n  }\n",
              "line": {
                "start": 564,
                "end": 614
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"graphic-text-group\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: center;\n    text-align: left;\n    gap: get(\"gap\");\n    margin: get(\"margin\");\n  }\n\n  #{ $prefix }__graphic {\n    flex-shrink: 0;\n    width: get(\"graphic-width\");\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    order: 1;\n\n    img, svg {\n      margin: 0;\n    }\n  }\n\n  #{ $prefix }__text {\n    flex-grow: 1;\n    min-width: 0;\n    order: 3;\n  }\n\n  // Separator Modifier\n  #{ $prefix }--separator {\n    gap: get(\"separator-gap\");\n    &::before {\n      content: \"\";\n      display: block;\n      order: 2;\n      align-self: stretch;\n      border-left: get(\"separator-border\");\n    }\n    &#{ $prefix }--top,\n    &#{ $prefix }--bottom {\n      &::before {\n        border-left: none;\n        border-bottom: get(\"separator-border\");\n      }\n    }\n  }\n\n  // Responsive Modifiers\n  #{ $prefix }--wrap {\n    @include breakpoint.max(get(\"wrap-breakpoint\")) {\n      flex-direction: column;\n      align-items: flex-start;\n      &#{ $prefix }--separator::before {\n        border-left: none;\n        border-bottom: get(\"separator-border\");\n      }\n    }\n  }\n\n  // Alignment Modifiers\n  #{ $prefix }--align-start {\n    align-items: flex-start;\n  }\n\n  #{ $prefix }--align-baseline {\n    align-items: baseline;\n  }\n\n  #{ $prefix }--align-end {\n    align-items: flex-end;\n  }\n\n  // Position Modifiers\n  #{ $prefix }--right {\n    > #{ $prefix }__graphic {\n      order: 3;\n    }\n    > #{ $prefix }__text {\n      order: 1;\n    }\n  }\n\n  #{ $prefix }--top {\n    flex-direction: column;\n  }\n\n  #{ $prefix }--bottom {\n    flex-direction: column;\n    > #{ $prefix }__graphic {\n      order: 3;\n    }\n    > #{ $prefix }__text {\n      order: 1;\n    }\n  }\n\n  #{ $prefix }--center {\n    align-items: center;\n    text-align: center;\n  }\n\n  // Rule Modifiers\n  #{ $prefix }--rule-top {\n    border-top: get(\"rule-border\");\n    padding-top: get(\"rule-padding\");\n  }\n\n  #{ $prefix }--rule-bottom {\n    border-bottom: get(\"rule-border\");\n    padding-bottom: get(\"rule-padding\");\n  }\n\n  // Spacing Modifiers\n  #{ $prefix }--compact {\n    gap: get(\"gap-compact\");\n  }\n\n  // Graphic Modifiers\n  #{ $prefix }--auto {\n    > #{ $prefix }__graphic {\n      width: auto;\n    }\n  }\n",
              "line": {
                "start": 75,
                "end": 200
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"graphic-text-group\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: center;\n    text-align: left;\n    gap: get(\"gap\");\n    margin: get(\"margin\");\n  }\n\n  #{ $prefix }__graphic {\n    flex-shrink: 0;\n    width: get(\"graphic-width\");\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    order: 1;\n\n    img, svg {\n      margin: 0;\n    }\n  }\n\n  #{ $prefix }__text {\n    flex-grow: 1;\n    min-width: 0;\n    order: 3;\n  }\n\n  // Separator Modifier\n  #{ $prefix }--separator {\n    gap: get(\"separator-gap\");\n    &::before {\n      content: \"\";\n      display: block;\n      order: 2;\n      align-self: stretch;\n      border-left: get(\"separator-border\");\n    }\n    &#{ $prefix }--top,\n    &#{ $prefix }--bottom {\n      &::before {\n        border-left: none;\n        border-bottom: get(\"separator-border\");\n      }\n    }\n  }\n\n  // Responsive Modifiers\n  #{ $prefix }--wrap {\n    @include breakpoint.max(get(\"wrap-breakpoint\")) {\n      flex-direction: column;\n      align-items: flex-start;\n      &#{ $prefix }--separator::before {\n        border-left: none;\n        border-bottom: get(\"separator-border\");\n      }\n    }\n  }\n\n  // Alignment Modifiers\n  #{ $prefix }--align-start {\n    align-items: flex-start;\n  }\n\n  #{ $prefix }--align-baseline {\n    align-items: baseline;\n  }\n\n  #{ $prefix }--align-end {\n    align-items: flex-end;\n  }\n\n  // Position Modifiers\n  #{ $prefix }--right {\n    > #{ $prefix }__graphic {\n      order: 3;\n    }\n    > #{ $prefix }__text {\n      order: 1;\n    }\n  }\n\n  #{ $prefix }--top {\n    flex-direction: column;\n  }\n\n  #{ $prefix }--bottom {\n    flex-direction: column;\n    > #{ $prefix }__graphic {\n      order: 3;\n    }\n    > #{ $prefix }__text {\n      order: 1;\n    }\n  }\n\n  #{ $prefix }--center {\n    align-items: center;\n    text-align: center;\n  }\n\n  // Rule Modifiers\n  #{ $prefix }--rule-top {\n    border-top: get(\"rule-border\");\n    padding-top: get(\"rule-padding\");\n  }\n\n  #{ $prefix }--rule-bottom {\n    border-bottom: get(\"rule-border\");\n    padding-bottom: get(\"rule-padding\");\n  }\n\n  // Spacing Modifiers\n  #{ $prefix }--compact {\n    gap: get(\"gap-compact\");\n  }\n\n  // Graphic Modifiers\n  #{ $prefix }--auto {\n    > #{ $prefix }__graphic {\n      width: auto;\n    }\n  }\n",
              "line": {
                "start": 75,
                "end": 200
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"graphic-text-group\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: center;\n    text-align: left;\n    gap: get(\"gap\");\n    margin: get(\"margin\");\n  }\n\n  #{ $prefix }__graphic {\n    flex-shrink: 0;\n    width: get(\"graphic-width\");\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    order: 1;\n\n    img, svg {\n      margin: 0;\n    }\n  }\n\n  #{ $prefix }__text {\n    flex-grow: 1;\n    min-width: 0;\n    order: 3;\n  }\n\n  // Separator Modifier\n  #{ $prefix }--separator {\n    gap: get(\"separator-gap\");\n    &::before {\n      content: \"\";\n      display: block;\n      order: 2;\n      align-self: stretch;\n      border-left: get(\"separator-border\");\n    }\n    &#{ $prefix }--top,\n    &#{ $prefix }--bottom {\n      &::before {\n        border-left: none;\n        border-bottom: get(\"separator-border\");\n      }\n    }\n  }\n\n  // Responsive Modifiers\n  #{ $prefix }--wrap {\n    @include breakpoint.max(get(\"wrap-breakpoint\")) {\n      flex-direction: column;\n      align-items: flex-start;\n      &#{ $prefix }--separator::before {\n        border-left: none;\n        border-bottom: get(\"separator-border\");\n      }\n    }\n  }\n\n  // Alignment Modifiers\n  #{ $prefix }--align-start {\n    align-items: flex-start;\n  }\n\n  #{ $prefix }--align-baseline {\n    align-items: baseline;\n  }\n\n  #{ $prefix }--align-end {\n    align-items: flex-end;\n  }\n\n  // Position Modifiers\n  #{ $prefix }--right {\n    > #{ $prefix }__graphic {\n      order: 3;\n    }\n    > #{ $prefix }__text {\n      order: 1;\n    }\n  }\n\n  #{ $prefix }--top {\n    flex-direction: column;\n  }\n\n  #{ $prefix }--bottom {\n    flex-direction: column;\n    > #{ $prefix }__graphic {\n      order: 3;\n    }\n    > #{ $prefix }__text {\n      order: 1;\n    }\n  }\n\n  #{ $prefix }--center {\n    align-items: center;\n    text-align: center;\n  }\n\n  // Rule Modifiers\n  #{ $prefix }--rule-top {\n    border-top: get(\"rule-border\");\n    padding-top: get(\"rule-padding\");\n  }\n\n  #{ $prefix }--rule-bottom {\n    border-bottom: get(\"rule-border\");\n    padding-bottom: get(\"rule-padding\");\n  }\n\n  // Spacing Modifiers\n  #{ $prefix }--compact {\n    gap: get(\"gap-compact\");\n  }\n\n  // Graphic Modifiers\n  #{ $prefix }--auto {\n    > #{ $prefix }__graphic {\n      width: auto;\n    }\n  }\n",
              "line": {
                "start": 75,
                "end": 200
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"graphic-text-group\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: center;\n    text-align: left;\n    gap: get(\"gap\");\n    margin: get(\"margin\");\n  }\n\n  #{ $prefix }__graphic {\n    flex-shrink: 0;\n    width: get(\"graphic-width\");\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    order: 1;\n\n    img, svg {\n      margin: 0;\n    }\n  }\n\n  #{ $prefix }__text {\n    flex-grow: 1;\n    min-width: 0;\n    order: 3;\n  }\n\n  // Separator Modifier\n  #{ $prefix }--separator {\n    gap: get(\"separator-gap\");\n    &::before {\n      content: \"\";\n      display: block;\n      order: 2;\n      align-self: stretch;\n      border-left: get(\"separator-border\");\n    }\n    &#{ $prefix }--top,\n    &#{ $prefix }--bottom {\n      &::before {\n        border-left: none;\n        border-bottom: get(\"separator-border\");\n      }\n    }\n  }\n\n  // Responsive Modifiers\n  #{ $prefix }--wrap {\n    @include breakpoint.max(get(\"wrap-breakpoint\")) {\n      flex-direction: column;\n      align-items: flex-start;\n      &#{ $prefix }--separator::before {\n        border-left: none;\n        border-bottom: get(\"separator-border\");\n      }\n    }\n  }\n\n  // Alignment Modifiers\n  #{ $prefix }--align-start {\n    align-items: flex-start;\n  }\n\n  #{ $prefix }--align-baseline {\n    align-items: baseline;\n  }\n\n  #{ $prefix }--align-end {\n    align-items: flex-end;\n  }\n\n  // Position Modifiers\n  #{ $prefix }--right {\n    > #{ $prefix }__graphic {\n      order: 3;\n    }\n    > #{ $prefix }__text {\n      order: 1;\n    }\n  }\n\n  #{ $prefix }--top {\n    flex-direction: column;\n  }\n\n  #{ $prefix }--bottom {\n    flex-direction: column;\n    > #{ $prefix }__graphic {\n      order: 3;\n    }\n    > #{ $prefix }__text {\n      order: 1;\n    }\n  }\n\n  #{ $prefix }--center {\n    align-items: center;\n    text-align: center;\n  }\n\n  // Rule Modifiers\n  #{ $prefix }--rule-top {\n    border-top: get(\"rule-border\");\n    padding-top: get(\"rule-padding\");\n  }\n\n  #{ $prefix }--rule-bottom {\n    border-bottom: get(\"rule-border\");\n    padding-bottom: get(\"rule-padding\");\n  }\n\n  // Spacing Modifiers\n  #{ $prefix }--compact {\n    gap: get(\"gap-compact\");\n  }\n\n  // Graphic Modifiers\n  #{ $prefix }--auto {\n    > #{ $prefix }__graphic {\n      width: auto;\n    }\n  }\n",
              "line": {
                "start": 75,
                "end": 200
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"graphic-text-group\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: center;\n    text-align: left;\n    gap: get(\"gap\");\n    margin: get(\"margin\");\n  }\n\n  #{ $prefix }__graphic {\n    flex-shrink: 0;\n    width: get(\"graphic-width\");\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    order: 1;\n\n    img, svg {\n      margin: 0;\n    }\n  }\n\n  #{ $prefix }__text {\n    flex-grow: 1;\n    min-width: 0;\n    order: 3;\n  }\n\n  // Separator Modifier\n  #{ $prefix }--separator {\n    gap: get(\"separator-gap\");\n    &::before {\n      content: \"\";\n      display: block;\n      order: 2;\n      align-self: stretch;\n      border-left: get(\"separator-border\");\n    }\n    &#{ $prefix }--top,\n    &#{ $prefix }--bottom {\n      &::before {\n        border-left: none;\n        border-bottom: get(\"separator-border\");\n      }\n    }\n  }\n\n  // Responsive Modifiers\n  #{ $prefix }--wrap {\n    @include breakpoint.max(get(\"wrap-breakpoint\")) {\n      flex-direction: column;\n      align-items: flex-start;\n      &#{ $prefix }--separator::before {\n        border-left: none;\n        border-bottom: get(\"separator-border\");\n      }\n    }\n  }\n\n  // Alignment Modifiers\n  #{ $prefix }--align-start {\n    align-items: flex-start;\n  }\n\n  #{ $prefix }--align-baseline {\n    align-items: baseline;\n  }\n\n  #{ $prefix }--align-end {\n    align-items: flex-end;\n  }\n\n  // Position Modifiers\n  #{ $prefix }--right {\n    > #{ $prefix }__graphic {\n      order: 3;\n    }\n    > #{ $prefix }__text {\n      order: 1;\n    }\n  }\n\n  #{ $prefix }--top {\n    flex-direction: column;\n  }\n\n  #{ $prefix }--bottom {\n    flex-direction: column;\n    > #{ $prefix }__graphic {\n      order: 3;\n    }\n    > #{ $prefix }__text {\n      order: 1;\n    }\n  }\n\n  #{ $prefix }--center {\n    align-items: center;\n    text-align: center;\n  }\n\n  // Rule Modifiers\n  #{ $prefix }--rule-top {\n    border-top: get(\"rule-border\");\n    padding-top: get(\"rule-padding\");\n  }\n\n  #{ $prefix }--rule-bottom {\n    border-bottom: get(\"rule-border\");\n    padding-bottom: get(\"rule-padding\");\n  }\n\n  // Spacing Modifiers\n  #{ $prefix }--compact {\n    gap: get(\"gap-compact\");\n  }\n\n  // Graphic Modifiers\n  #{ $prefix }--auto {\n    > #{ $prefix }__graphic {\n      width: auto;\n    }\n  }\n",
              "line": {
                "start": 75,
                "end": 200
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"graphic-text-group\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: center;\n    text-align: left;\n    gap: get(\"gap\");\n    margin: get(\"margin\");\n  }\n\n  #{ $prefix }__graphic {\n    flex-shrink: 0;\n    width: get(\"graphic-width\");\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    order: 1;\n\n    img, svg {\n      margin: 0;\n    }\n  }\n\n  #{ $prefix }__text {\n    flex-grow: 1;\n    min-width: 0;\n    order: 3;\n  }\n\n  // Separator Modifier\n  #{ $prefix }--separator {\n    gap: get(\"separator-gap\");\n    &::before {\n      content: \"\";\n      display: block;\n      order: 2;\n      align-self: stretch;\n      border-left: get(\"separator-border\");\n    }\n    &#{ $prefix }--top,\n    &#{ $prefix }--bottom {\n      &::before {\n        border-left: none;\n        border-bottom: get(\"separator-border\");\n      }\n    }\n  }\n\n  // Responsive Modifiers\n  #{ $prefix }--wrap {\n    @include breakpoint.max(get(\"wrap-breakpoint\")) {\n      flex-direction: column;\n      align-items: flex-start;\n      &#{ $prefix }--separator::before {\n        border-left: none;\n        border-bottom: get(\"separator-border\");\n      }\n    }\n  }\n\n  // Alignment Modifiers\n  #{ $prefix }--align-start {\n    align-items: flex-start;\n  }\n\n  #{ $prefix }--align-baseline {\n    align-items: baseline;\n  }\n\n  #{ $prefix }--align-end {\n    align-items: flex-end;\n  }\n\n  // Position Modifiers\n  #{ $prefix }--right {\n    > #{ $prefix }__graphic {\n      order: 3;\n    }\n    > #{ $prefix }__text {\n      order: 1;\n    }\n  }\n\n  #{ $prefix }--top {\n    flex-direction: column;\n  }\n\n  #{ $prefix }--bottom {\n    flex-direction: column;\n    > #{ $prefix }__graphic {\n      order: 3;\n    }\n    > #{ $prefix }__text {\n      order: 1;\n    }\n  }\n\n  #{ $prefix }--center {\n    align-items: center;\n    text-align: center;\n  }\n\n  // Rule Modifiers\n  #{ $prefix }--rule-top {\n    border-top: get(\"rule-border\");\n    padding-top: get(\"rule-padding\");\n  }\n\n  #{ $prefix }--rule-bottom {\n    border-bottom: get(\"rule-border\");\n    padding-bottom: get(\"rule-padding\");\n  }\n\n  // Spacing Modifiers\n  #{ $prefix }--compact {\n    gap: get(\"gap-compact\");\n  }\n\n  // Graphic Modifiers\n  #{ $prefix }--auto {\n    > #{ $prefix }__graphic {\n      width: auto;\n    }\n  }\n",
              "line": {
                "start": 75,
                "end": 200
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"graphic-text-group\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: center;\n    text-align: left;\n    gap: get(\"gap\");\n    margin: get(\"margin\");\n  }\n\n  #{ $prefix }__graphic {\n    flex-shrink: 0;\n    width: get(\"graphic-width\");\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    order: 1;\n\n    img, svg {\n      margin: 0;\n    }\n  }\n\n  #{ $prefix }__text {\n    flex-grow: 1;\n    min-width: 0;\n    order: 3;\n  }\n\n  // Separator Modifier\n  #{ $prefix }--separator {\n    gap: get(\"separator-gap\");\n    &::before {\n      content: \"\";\n      display: block;\n      order: 2;\n      align-self: stretch;\n      border-left: get(\"separator-border\");\n    }\n    &#{ $prefix }--top,\n    &#{ $prefix }--bottom {\n      &::before {\n        border-left: none;\n        border-bottom: get(\"separator-border\");\n      }\n    }\n  }\n\n  // Responsive Modifiers\n  #{ $prefix }--wrap {\n    @include breakpoint.max(get(\"wrap-breakpoint\")) {\n      flex-direction: column;\n      align-items: flex-start;\n      &#{ $prefix }--separator::before {\n        border-left: none;\n        border-bottom: get(\"separator-border\");\n      }\n    }\n  }\n\n  // Alignment Modifiers\n  #{ $prefix }--align-start {\n    align-items: flex-start;\n  }\n\n  #{ $prefix }--align-baseline {\n    align-items: baseline;\n  }\n\n  #{ $prefix }--align-end {\n    align-items: flex-end;\n  }\n\n  // Position Modifiers\n  #{ $prefix }--right {\n    > #{ $prefix }__graphic {\n      order: 3;\n    }\n    > #{ $prefix }__text {\n      order: 1;\n    }\n  }\n\n  #{ $prefix }--top {\n    flex-direction: column;\n  }\n\n  #{ $prefix }--bottom {\n    flex-direction: column;\n    > #{ $prefix }__graphic {\n      order: 3;\n    }\n    > #{ $prefix }__text {\n      order: 1;\n    }\n  }\n\n  #{ $prefix }--center {\n    align-items: center;\n    text-align: center;\n  }\n\n  // Rule Modifiers\n  #{ $prefix }--rule-top {\n    border-top: get(\"rule-border\");\n    padding-top: get(\"rule-padding\");\n  }\n\n  #{ $prefix }--rule-bottom {\n    border-bottom: get(\"rule-border\");\n    padding-bottom: get(\"rule-padding\");\n  }\n\n  // Spacing Modifiers\n  #{ $prefix }--compact {\n    gap: get(\"gap-compact\");\n  }\n\n  // Graphic Modifiers\n  #{ $prefix }--auto {\n    > #{ $prefix }__graphic {\n      width: auto;\n    }\n  }\n",
              "line": {
                "start": 75,
                "end": 200
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"graphic-text-group\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: center;\n    text-align: left;\n    gap: get(\"gap\");\n    margin: get(\"margin\");\n  }\n\n  #{ $prefix }__graphic {\n    flex-shrink: 0;\n    width: get(\"graphic-width\");\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    order: 1;\n\n    img, svg {\n      margin: 0;\n    }\n  }\n\n  #{ $prefix }__text {\n    flex-grow: 1;\n    min-width: 0;\n    order: 3;\n  }\n\n  // Separator Modifier\n  #{ $prefix }--separator {\n    gap: get(\"separator-gap\");\n    &::before {\n      content: \"\";\n      display: block;\n      order: 2;\n      align-self: stretch;\n      border-left: get(\"separator-border\");\n    }\n    &#{ $prefix }--top,\n    &#{ $prefix }--bottom {\n      &::before {\n        border-left: none;\n        border-bottom: get(\"separator-border\");\n      }\n    }\n  }\n\n  // Responsive Modifiers\n  #{ $prefix }--wrap {\n    @include breakpoint.max(get(\"wrap-breakpoint\")) {\n      flex-direction: column;\n      align-items: flex-start;\n      &#{ $prefix }--separator::before {\n        border-left: none;\n        border-bottom: get(\"separator-border\");\n      }\n    }\n  }\n\n  // Alignment Modifiers\n  #{ $prefix }--align-start {\n    align-items: flex-start;\n  }\n\n  #{ $prefix }--align-baseline {\n    align-items: baseline;\n  }\n\n  #{ $prefix }--align-end {\n    align-items: flex-end;\n  }\n\n  // Position Modifiers\n  #{ $prefix }--right {\n    > #{ $prefix }__graphic {\n      order: 3;\n    }\n    > #{ $prefix }__text {\n      order: 1;\n    }\n  }\n\n  #{ $prefix }--top {\n    flex-direction: column;\n  }\n\n  #{ $prefix }--bottom {\n    flex-direction: column;\n    > #{ $prefix }__graphic {\n      order: 3;\n    }\n    > #{ $prefix }__text {\n      order: 1;\n    }\n  }\n\n  #{ $prefix }--center {\n    align-items: center;\n    text-align: center;\n  }\n\n  // Rule Modifiers\n  #{ $prefix }--rule-top {\n    border-top: get(\"rule-border\");\n    padding-top: get(\"rule-padding\");\n  }\n\n  #{ $prefix }--rule-bottom {\n    border-bottom: get(\"rule-border\");\n    padding-bottom: get(\"rule-padding\");\n  }\n\n  // Spacing Modifiers\n  #{ $prefix }--compact {\n    gap: get(\"gap-compact\");\n  }\n\n  // Graphic Modifiers\n  #{ $prefix }--auto {\n    > #{ $prefix }__graphic {\n      width: auto;\n    }\n  }\n",
              "line": {
                "start": 75,
                "end": 200
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"graphic-text-group\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: center;\n    text-align: left;\n    gap: get(\"gap\");\n    margin: get(\"margin\");\n  }\n\n  #{ $prefix }__graphic {\n    flex-shrink: 0;\n    width: get(\"graphic-width\");\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    order: 1;\n\n    img, svg {\n      margin: 0;\n    }\n  }\n\n  #{ $prefix }__text {\n    flex-grow: 1;\n    min-width: 0;\n    order: 3;\n  }\n\n  // Separator Modifier\n  #{ $prefix }--separator {\n    gap: get(\"separator-gap\");\n    &::before {\n      content: \"\";\n      display: block;\n      order: 2;\n      align-self: stretch;\n      border-left: get(\"separator-border\");\n    }\n    &#{ $prefix }--top,\n    &#{ $prefix }--bottom {\n      &::before {\n        border-left: none;\n        border-bottom: get(\"separator-border\");\n      }\n    }\n  }\n\n  // Responsive Modifiers\n  #{ $prefix }--wrap {\n    @include breakpoint.max(get(\"wrap-breakpoint\")) {\n      flex-direction: column;\n      align-items: flex-start;\n      &#{ $prefix }--separator::before {\n        border-left: none;\n        border-bottom: get(\"separator-border\");\n      }\n    }\n  }\n\n  // Alignment Modifiers\n  #{ $prefix }--align-start {\n    align-items: flex-start;\n  }\n\n  #{ $prefix }--align-baseline {\n    align-items: baseline;\n  }\n\n  #{ $prefix }--align-end {\n    align-items: flex-end;\n  }\n\n  // Position Modifiers\n  #{ $prefix }--right {\n    > #{ $prefix }__graphic {\n      order: 3;\n    }\n    > #{ $prefix }__text {\n      order: 1;\n    }\n  }\n\n  #{ $prefix }--top {\n    flex-direction: column;\n  }\n\n  #{ $prefix }--bottom {\n    flex-direction: column;\n    > #{ $prefix }__graphic {\n      order: 3;\n    }\n    > #{ $prefix }__text {\n      order: 1;\n    }\n  }\n\n  #{ $prefix }--center {\n    align-items: center;\n    text-align: center;\n  }\n\n  // Rule Modifiers\n  #{ $prefix }--rule-top {\n    border-top: get(\"rule-border\");\n    padding-top: get(\"rule-padding\");\n  }\n\n  #{ $prefix }--rule-bottom {\n    border-bottom: get(\"rule-border\");\n    padding-bottom: get(\"rule-padding\");\n  }\n\n  // Spacing Modifiers\n  #{ $prefix }--compact {\n    gap: get(\"gap-compact\");\n  }\n\n  // Graphic Modifiers\n  #{ $prefix }--auto {\n    > #{ $prefix }__graphic {\n      width: auto;\n    }\n  }\n",
              "line": {
                "start": 75,
                "end": 200
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"graphic-text-group\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: center;\n    text-align: left;\n    gap: get(\"gap\");\n    margin: get(\"margin\");\n  }\n\n  #{ $prefix }__graphic {\n    flex-shrink: 0;\n    width: get(\"graphic-width\");\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    order: 1;\n\n    img, svg {\n      margin: 0;\n    }\n  }\n\n  #{ $prefix }__text {\n    flex-grow: 1;\n    min-width: 0;\n    order: 3;\n  }\n\n  // Separator Modifier\n  #{ $prefix }--separator {\n    gap: get(\"separator-gap\");\n    &::before {\n      content: \"\";\n      display: block;\n      order: 2;\n      align-self: stretch;\n      border-left: get(\"separator-border\");\n    }\n    &#{ $prefix }--top,\n    &#{ $prefix }--bottom {\n      &::before {\n        border-left: none;\n        border-bottom: get(\"separator-border\");\n      }\n    }\n  }\n\n  // Responsive Modifiers\n  #{ $prefix }--wrap {\n    @include breakpoint.max(get(\"wrap-breakpoint\")) {\n      flex-direction: column;\n      align-items: flex-start;\n      &#{ $prefix }--separator::before {\n        border-left: none;\n        border-bottom: get(\"separator-border\");\n      }\n    }\n  }\n\n  // Alignment Modifiers\n  #{ $prefix }--align-start {\n    align-items: flex-start;\n  }\n\n  #{ $prefix }--align-baseline {\n    align-items: baseline;\n  }\n\n  #{ $prefix }--align-end {\n    align-items: flex-end;\n  }\n\n  // Position Modifiers\n  #{ $prefix }--right {\n    > #{ $prefix }__graphic {\n      order: 3;\n    }\n    > #{ $prefix }__text {\n      order: 1;\n    }\n  }\n\n  #{ $prefix }--top {\n    flex-direction: column;\n  }\n\n  #{ $prefix }--bottom {\n    flex-direction: column;\n    > #{ $prefix }__graphic {\n      order: 3;\n    }\n    > #{ $prefix }__text {\n      order: 1;\n    }\n  }\n\n  #{ $prefix }--center {\n    align-items: center;\n    text-align: center;\n  }\n\n  // Rule Modifiers\n  #{ $prefix }--rule-top {\n    border-top: get(\"rule-border\");\n    padding-top: get(\"rule-padding\");\n  }\n\n  #{ $prefix }--rule-bottom {\n    border-bottom: get(\"rule-border\");\n    padding-bottom: get(\"rule-padding\");\n  }\n\n  // Spacing Modifiers\n  #{ $prefix }--compact {\n    gap: get(\"gap-compact\");\n  }\n\n  // Graphic Modifiers\n  #{ $prefix }--auto {\n    > #{ $prefix }__graphic {\n      width: auto;\n    }\n  }\n",
              "line": {
                "start": 75,
                "end": 200
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"graphic-text-group\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: center;\n    text-align: left;\n    gap: get(\"gap\");\n    margin: get(\"margin\");\n  }\n\n  #{ $prefix }__graphic {\n    flex-shrink: 0;\n    width: get(\"graphic-width\");\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    order: 1;\n\n    img, svg {\n      margin: 0;\n    }\n  }\n\n  #{ $prefix }__text {\n    flex-grow: 1;\n    min-width: 0;\n    order: 3;\n  }\n\n  // Separator Modifier\n  #{ $prefix }--separator {\n    gap: get(\"separator-gap\");\n    &::before {\n      content: \"\";\n      display: block;\n      order: 2;\n      align-self: stretch;\n      border-left: get(\"separator-border\");\n    }\n    &#{ $prefix }--top,\n    &#{ $prefix }--bottom {\n      &::before {\n        border-left: none;\n        border-bottom: get(\"separator-border\");\n      }\n    }\n  }\n\n  // Responsive Modifiers\n  #{ $prefix }--wrap {\n    @include breakpoint.max(get(\"wrap-breakpoint\")) {\n      flex-direction: column;\n      align-items: flex-start;\n      &#{ $prefix }--separator::before {\n        border-left: none;\n        border-bottom: get(\"separator-border\");\n      }\n    }\n  }\n\n  // Alignment Modifiers\n  #{ $prefix }--align-start {\n    align-items: flex-start;\n  }\n\n  #{ $prefix }--align-baseline {\n    align-items: baseline;\n  }\n\n  #{ $prefix }--align-end {\n    align-items: flex-end;\n  }\n\n  // Position Modifiers\n  #{ $prefix }--right {\n    > #{ $prefix }__graphic {\n      order: 3;\n    }\n    > #{ $prefix }__text {\n      order: 1;\n    }\n  }\n\n  #{ $prefix }--top {\n    flex-direction: column;\n  }\n\n  #{ $prefix }--bottom {\n    flex-direction: column;\n    > #{ $prefix }__graphic {\n      order: 3;\n    }\n    > #{ $prefix }__text {\n      order: 1;\n    }\n  }\n\n  #{ $prefix }--center {\n    align-items: center;\n    text-align: center;\n  }\n\n  // Rule Modifiers\n  #{ $prefix }--rule-top {\n    border-top: get(\"rule-border\");\n    padding-top: get(\"rule-padding\");\n  }\n\n  #{ $prefix }--rule-bottom {\n    border-bottom: get(\"rule-border\");\n    padding-bottom: get(\"rule-padding\");\n  }\n\n  // Spacing Modifiers\n  #{ $prefix }--compact {\n    gap: get(\"gap-compact\");\n  }\n\n  // Graphic Modifiers\n  #{ $prefix }--auto {\n    > #{ $prefix }__graphic {\n      width: auto;\n    }\n  }\n",
              "line": {
                "start": 75,
                "end": 200
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"graphic-text-group\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: center;\n    text-align: left;\n    gap: get(\"gap\");\n    margin: get(\"margin\");\n  }\n\n  #{ $prefix }__graphic {\n    flex-shrink: 0;\n    width: get(\"graphic-width\");\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    order: 1;\n\n    img, svg {\n      margin: 0;\n    }\n  }\n\n  #{ $prefix }__text {\n    flex-grow: 1;\n    min-width: 0;\n    order: 3;\n  }\n\n  // Separator Modifier\n  #{ $prefix }--separator {\n    gap: get(\"separator-gap\");\n    &::before {\n      content: \"\";\n      display: block;\n      order: 2;\n      align-self: stretch;\n      border-left: get(\"separator-border\");\n    }\n    &#{ $prefix }--top,\n    &#{ $prefix }--bottom {\n      &::before {\n        border-left: none;\n        border-bottom: get(\"separator-border\");\n      }\n    }\n  }\n\n  // Responsive Modifiers\n  #{ $prefix }--wrap {\n    @include breakpoint.max(get(\"wrap-breakpoint\")) {\n      flex-direction: column;\n      align-items: flex-start;\n      &#{ $prefix }--separator::before {\n        border-left: none;\n        border-bottom: get(\"separator-border\");\n      }\n    }\n  }\n\n  // Alignment Modifiers\n  #{ $prefix }--align-start {\n    align-items: flex-start;\n  }\n\n  #{ $prefix }--align-baseline {\n    align-items: baseline;\n  }\n\n  #{ $prefix }--align-end {\n    align-items: flex-end;\n  }\n\n  // Position Modifiers\n  #{ $prefix }--right {\n    > #{ $prefix }__graphic {\n      order: 3;\n    }\n    > #{ $prefix }__text {\n      order: 1;\n    }\n  }\n\n  #{ $prefix }--top {\n    flex-direction: column;\n  }\n\n  #{ $prefix }--bottom {\n    flex-direction: column;\n    > #{ $prefix }__graphic {\n      order: 3;\n    }\n    > #{ $prefix }__text {\n      order: 1;\n    }\n  }\n\n  #{ $prefix }--center {\n    align-items: center;\n    text-align: center;\n  }\n\n  // Rule Modifiers\n  #{ $prefix }--rule-top {\n    border-top: get(\"rule-border\");\n    padding-top: get(\"rule-padding\");\n  }\n\n  #{ $prefix }--rule-bottom {\n    border-bottom: get(\"rule-border\");\n    padding-bottom: get(\"rule-padding\");\n  }\n\n  // Spacing Modifiers\n  #{ $prefix }--compact {\n    gap: get(\"gap-compact\");\n  }\n\n  // Graphic Modifiers\n  #{ $prefix }--auto {\n    > #{ $prefix }__graphic {\n      width: auto;\n    }\n  }\n",
              "line": {
                "start": 75,
                "end": 200
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"graphic-text-group\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: center;\n    text-align: left;\n    gap: get(\"gap\");\n    margin: get(\"margin\");\n  }\n\n  #{ $prefix }__graphic {\n    flex-shrink: 0;\n    width: get(\"graphic-width\");\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    order: 1;\n\n    img, svg {\n      margin: 0;\n    }\n  }\n\n  #{ $prefix }__text {\n    flex-grow: 1;\n    min-width: 0;\n    order: 3;\n  }\n\n  // Separator Modifier\n  #{ $prefix }--separator {\n    gap: get(\"separator-gap\");\n    &::before {\n      content: \"\";\n      display: block;\n      order: 2;\n      align-self: stretch;\n      border-left: get(\"separator-border\");\n    }\n    &#{ $prefix }--top,\n    &#{ $prefix }--bottom {\n      &::before {\n        border-left: none;\n        border-bottom: get(\"separator-border\");\n      }\n    }\n  }\n\n  // Responsive Modifiers\n  #{ $prefix }--wrap {\n    @include breakpoint.max(get(\"wrap-breakpoint\")) {\n      flex-direction: column;\n      align-items: flex-start;\n      &#{ $prefix }--separator::before {\n        border-left: none;\n        border-bottom: get(\"separator-border\");\n      }\n    }\n  }\n\n  // Alignment Modifiers\n  #{ $prefix }--align-start {\n    align-items: flex-start;\n  }\n\n  #{ $prefix }--align-baseline {\n    align-items: baseline;\n  }\n\n  #{ $prefix }--align-end {\n    align-items: flex-end;\n  }\n\n  // Position Modifiers\n  #{ $prefix }--right {\n    > #{ $prefix }__graphic {\n      order: 3;\n    }\n    > #{ $prefix }__text {\n      order: 1;\n    }\n  }\n\n  #{ $prefix }--top {\n    flex-direction: column;\n  }\n\n  #{ $prefix }--bottom {\n    flex-direction: column;\n    > #{ $prefix }__graphic {\n      order: 3;\n    }\n    > #{ $prefix }__text {\n      order: 1;\n    }\n  }\n\n  #{ $prefix }--center {\n    align-items: center;\n    text-align: center;\n  }\n\n  // Rule Modifiers\n  #{ $prefix }--rule-top {\n    border-top: get(\"rule-border\");\n    padding-top: get(\"rule-padding\");\n  }\n\n  #{ $prefix }--rule-bottom {\n    border-bottom: get(\"rule-border\");\n    padding-bottom: get(\"rule-padding\");\n  }\n\n  // Spacing Modifiers\n  #{ $prefix }--compact {\n    gap: get(\"gap-compact\");\n  }\n\n  // Graphic Modifiers\n  #{ $prefix }--auto {\n    > #{ $prefix }__graphic {\n      width: auto;\n    }\n  }\n",
              "line": {
                "start": 75,
                "end": 200
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .headline-label {\n    display: block;\n    margin-bottom: get(\"margin-bottom\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    text-transform: get(\"text-transform\");\n    color: color.get(get(\"color\"));\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n  }\n",
              "line": {
                "start": 70,
                "end": 83
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .headline-label {\n    display: block;\n    margin-bottom: get(\"margin-bottom\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    text-transform: get(\"text-transform\");\n    color: color.get(get(\"color\"));\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n  }\n",
              "line": {
                "start": 70,
                "end": 83
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .headline-label {\n    display: block;\n    margin-bottom: get(\"margin-bottom\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    text-transform: get(\"text-transform\");\n    color: color.get(get(\"color\"));\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n  }\n",
              "line": {
                "start": 70,
                "end": 83
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .headline-label {\n    display: block;\n    margin-bottom: get(\"margin-bottom\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    text-transform: get(\"text-transform\");\n    color: color.get(get(\"color\"));\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n  }\n",
              "line": {
                "start": 70,
                "end": 83
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .headline-label {\n    display: block;\n    margin-bottom: get(\"margin-bottom\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    text-transform: get(\"text-transform\");\n    color: color.get(get(\"color\"));\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n  }\n",
              "line": {
                "start": 70,
                "end": 83
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .headline-label {\n    display: block;\n    margin-bottom: get(\"margin-bottom\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    text-transform: get(\"text-transform\");\n    color: color.get(get(\"color\"));\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n  }\n",
              "line": {
                "start": 70,
                "end": 83
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .headline-label {\n    display: block;\n    margin-bottom: get(\"margin-bottom\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    text-transform: get(\"text-transform\");\n    color: color.get(get(\"color\"));\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n  }\n",
              "line": {
                "start": 70,
                "end": 83
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .headline-label {\n    display: block;\n    margin-bottom: get(\"margin-bottom\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    text-transform: get(\"text-transform\");\n    color: color.get(get(\"color\"));\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n  }\n",
              "line": {
                "start": 70,
                "end": 83
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .headline-label {\n    display: block;\n    margin-bottom: get(\"margin-bottom\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    text-transform: get(\"text-transform\");\n    color: color.get(get(\"color\"));\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n  }\n",
              "line": {
                "start": 70,
                "end": 83
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"hero\");\n  $height: get(\"height\");\n  $breakpoint: get(\"breakpoint\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    text-align: get(\"text-align\");\n  }\n  #{ $prefix }__content-container {\n    padding-top: get(\"content-padding-top\");\n    padding-top: get(\"content-padding-bottom\");\n  }\n  #{ $prefix }__content-inner {\n    max-width: get(\"content-max-width\");\n    margin-left: auto;\n    margin-right: auto;\n  }\n  #{ $prefix }__graphic {\n    position: relative;\n    flex-grow: 1;\n    width: 100%;\n  }\n  #{ $prefix }__graphic-media {\n    @include layout.absolute-fill(true);\n    object-fit: cover;\n  }\n  \n  \n  \n  // This doesn't interfere with overlay\n  #{ $prefix }--top {\n    #{ $prefix }__graphic {\n      @include breakpoint.min($breakpoint) {\n        order: -1;\n      }\n    }\n  }\n  // These are shared between overlay and split style\n  @include breakpoint.min($breakpoint) {\n    #{ $prefix }--right,\n    #{ $prefix }--left {\n      text-align: right;\n      flex-direction: row;\n      #{ $prefix }__graphic,\n      #{ $prefix }__content {\n        flex: 1 0 50%;\n      }\n      #{ $prefix }__content {\n        display: flex;\n        flex-direction: column;\n        justify-content: center;\n      }\n    }\n    #{ $prefix }--right {\n      #{ $prefix }__content-inner {\n        margin-right: 0;\n      }\n    }\n    #{ $prefix }--left {\n      text-align: left;\n      #{ $prefix }__graphic {\n        order: -1;\n      }\n      #{ $prefix }__content-inner {\n        margin-left: 0;\n      }\n    }\n  }\n  #{ $prefix }--split {\n    @include breakpoint.min($breakpoint) {\n      min-height: $height;\n    }\n    #{ $prefix }__graphic {\n      @include breakpoint.max($breakpoint) {\n        height: get(\"graphic-height-stacked\");\n      }\n    }\n  }\n\n  @if get(\"extra-split-ratios\") {\n    @include breakpoint.min($breakpoint) {\n      @each $name, $ratio in get(\"extra-split-ratios\") {\n        #{ $prefix }--split-graphic-#{ $name } #{ $prefix }__graphic,\n        #{ $prefix }--split-content-#{ $name } #{ $prefix }__content {\n          flex-basis: list.nth($ratio, 1);\n        }\n        #{ $prefix }--split-graphic-#{ $name } #{ $prefix }__content,\n        #{ $prefix }--split-content-#{ $name } #{ $prefix }__graphic {\n          flex-basis: list.nth($ratio, 2);\n        }\n      }\n    }\n  }\n  \n\n  #{ $prefix }--overlay {\n    position: relative;\n    justify-content: center;\n    min-height: $height;\n    #{ $prefix }__content { \n      position: relative;\n      z-index: 2;\n    }\n    #{ $prefix }__graphic {\n      @include layout.absolute-fill();\n    }\n    &#{ $prefix }--bottom,\n    &#{ $prefix }--bottom #{ $prefix }__content {\n      justify-content: flex-end;\n    }\n    &#{ $prefix }--top,\n    &#{ $prefix }--top #{ $prefix }__content {\n      justify-content: flex-start;\n    }\n  }\n  #{ $prefix }--compact {\n    min-height: get(\"height-compact\");\n  }\n",
              "line": {
                "start": 65,
                "end": 185
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"hero\");\n  $height: get(\"height\");\n  $breakpoint: get(\"breakpoint\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    text-align: get(\"text-align\");\n  }\n  #{ $prefix }__content-container {\n    padding-top: get(\"content-padding-top\");\n    padding-top: get(\"content-padding-bottom\");\n  }\n  #{ $prefix }__content-inner {\n    max-width: get(\"content-max-width\");\n    margin-left: auto;\n    margin-right: auto;\n  }\n  #{ $prefix }__graphic {\n    position: relative;\n    flex-grow: 1;\n    width: 100%;\n  }\n  #{ $prefix }__graphic-media {\n    @include layout.absolute-fill(true);\n    object-fit: cover;\n  }\n  \n  \n  \n  // This doesn't interfere with overlay\n  #{ $prefix }--top {\n    #{ $prefix }__graphic {\n      @include breakpoint.min($breakpoint) {\n        order: -1;\n      }\n    }\n  }\n  // These are shared between overlay and split style\n  @include breakpoint.min($breakpoint) {\n    #{ $prefix }--right,\n    #{ $prefix }--left {\n      text-align: right;\n      flex-direction: row;\n      #{ $prefix }__graphic,\n      #{ $prefix }__content {\n        flex: 1 0 50%;\n      }\n      #{ $prefix }__content {\n        display: flex;\n        flex-direction: column;\n        justify-content: center;\n      }\n    }\n    #{ $prefix }--right {\n      #{ $prefix }__content-inner {\n        margin-right: 0;\n      }\n    }\n    #{ $prefix }--left {\n      text-align: left;\n      #{ $prefix }__graphic {\n        order: -1;\n      }\n      #{ $prefix }__content-inner {\n        margin-left: 0;\n      }\n    }\n  }\n  #{ $prefix }--split {\n    @include breakpoint.min($breakpoint) {\n      min-height: $height;\n    }\n    #{ $prefix }__graphic {\n      @include breakpoint.max($breakpoint) {\n        height: get(\"graphic-height-stacked\");\n      }\n    }\n  }\n\n  @if get(\"extra-split-ratios\") {\n    @include breakpoint.min($breakpoint) {\n      @each $name, $ratio in get(\"extra-split-ratios\") {\n        #{ $prefix }--split-graphic-#{ $name } #{ $prefix }__graphic,\n        #{ $prefix }--split-content-#{ $name } #{ $prefix }__content {\n          flex-basis: list.nth($ratio, 1);\n        }\n        #{ $prefix }--split-graphic-#{ $name } #{ $prefix }__content,\n        #{ $prefix }--split-content-#{ $name } #{ $prefix }__graphic {\n          flex-basis: list.nth($ratio, 2);\n        }\n      }\n    }\n  }\n  \n\n  #{ $prefix }--overlay {\n    position: relative;\n    justify-content: center;\n    min-height: $height;\n    #{ $prefix }__content { \n      position: relative;\n      z-index: 2;\n    }\n    #{ $prefix }__graphic {\n      @include layout.absolute-fill();\n    }\n    &#{ $prefix }--bottom,\n    &#{ $prefix }--bottom #{ $prefix }__content {\n      justify-content: flex-end;\n    }\n    &#{ $prefix }--top,\n    &#{ $prefix }--top #{ $prefix }__content {\n      justify-content: flex-start;\n    }\n  }\n  #{ $prefix }--compact {\n    min-height: get(\"height-compact\");\n  }\n",
              "line": {
                "start": 65,
                "end": 185
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"hero\");\n  $height: get(\"height\");\n  $breakpoint: get(\"breakpoint\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    text-align: get(\"text-align\");\n  }\n  #{ $prefix }__content-container {\n    padding-top: get(\"content-padding-top\");\n    padding-top: get(\"content-padding-bottom\");\n  }\n  #{ $prefix }__content-inner {\n    max-width: get(\"content-max-width\");\n    margin-left: auto;\n    margin-right: auto;\n  }\n  #{ $prefix }__graphic {\n    position: relative;\n    flex-grow: 1;\n    width: 100%;\n  }\n  #{ $prefix }__graphic-media {\n    @include layout.absolute-fill(true);\n    object-fit: cover;\n  }\n  \n  \n  \n  // This doesn't interfere with overlay\n  #{ $prefix }--top {\n    #{ $prefix }__graphic {\n      @include breakpoint.min($breakpoint) {\n        order: -1;\n      }\n    }\n  }\n  // These are shared between overlay and split style\n  @include breakpoint.min($breakpoint) {\n    #{ $prefix }--right,\n    #{ $prefix }--left {\n      text-align: right;\n      flex-direction: row;\n      #{ $prefix }__graphic,\n      #{ $prefix }__content {\n        flex: 1 0 50%;\n      }\n      #{ $prefix }__content {\n        display: flex;\n        flex-direction: column;\n        justify-content: center;\n      }\n    }\n    #{ $prefix }--right {\n      #{ $prefix }__content-inner {\n        margin-right: 0;\n      }\n    }\n    #{ $prefix }--left {\n      text-align: left;\n      #{ $prefix }__graphic {\n        order: -1;\n      }\n      #{ $prefix }__content-inner {\n        margin-left: 0;\n      }\n    }\n  }\n  #{ $prefix }--split {\n    @include breakpoint.min($breakpoint) {\n      min-height: $height;\n    }\n    #{ $prefix }__graphic {\n      @include breakpoint.max($breakpoint) {\n        height: get(\"graphic-height-stacked\");\n      }\n    }\n  }\n\n  @if get(\"extra-split-ratios\") {\n    @include breakpoint.min($breakpoint) {\n      @each $name, $ratio in get(\"extra-split-ratios\") {\n        #{ $prefix }--split-graphic-#{ $name } #{ $prefix }__graphic,\n        #{ $prefix }--split-content-#{ $name } #{ $prefix }__content {\n          flex-basis: list.nth($ratio, 1);\n        }\n        #{ $prefix }--split-graphic-#{ $name } #{ $prefix }__content,\n        #{ $prefix }--split-content-#{ $name } #{ $prefix }__graphic {\n          flex-basis: list.nth($ratio, 2);\n        }\n      }\n    }\n  }\n  \n\n  #{ $prefix }--overlay {\n    position: relative;\n    justify-content: center;\n    min-height: $height;\n    #{ $prefix }__content { \n      position: relative;\n      z-index: 2;\n    }\n    #{ $prefix }__graphic {\n      @include layout.absolute-fill();\n    }\n    &#{ $prefix }--bottom,\n    &#{ $prefix }--bottom #{ $prefix }__content {\n      justify-content: flex-end;\n    }\n    &#{ $prefix }--top,\n    &#{ $prefix }--top #{ $prefix }__content {\n      justify-content: flex-start;\n    }\n  }\n  #{ $prefix }--compact {\n    min-height: get(\"height-compact\");\n  }\n",
              "line": {
                "start": 65,
                "end": 185
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"hero\");\n  $height: get(\"height\");\n  $breakpoint: get(\"breakpoint\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    text-align: get(\"text-align\");\n  }\n  #{ $prefix }__content-container {\n    padding-top: get(\"content-padding-top\");\n    padding-top: get(\"content-padding-bottom\");\n  }\n  #{ $prefix }__content-inner {\n    max-width: get(\"content-max-width\");\n    margin-left: auto;\n    margin-right: auto;\n  }\n  #{ $prefix }__graphic {\n    position: relative;\n    flex-grow: 1;\n    width: 100%;\n  }\n  #{ $prefix }__graphic-media {\n    @include layout.absolute-fill(true);\n    object-fit: cover;\n  }\n  \n  \n  \n  // This doesn't interfere with overlay\n  #{ $prefix }--top {\n    #{ $prefix }__graphic {\n      @include breakpoint.min($breakpoint) {\n        order: -1;\n      }\n    }\n  }\n  // These are shared between overlay and split style\n  @include breakpoint.min($breakpoint) {\n    #{ $prefix }--right,\n    #{ $prefix }--left {\n      text-align: right;\n      flex-direction: row;\n      #{ $prefix }__graphic,\n      #{ $prefix }__content {\n        flex: 1 0 50%;\n      }\n      #{ $prefix }__content {\n        display: flex;\n        flex-direction: column;\n        justify-content: center;\n      }\n    }\n    #{ $prefix }--right {\n      #{ $prefix }__content-inner {\n        margin-right: 0;\n      }\n    }\n    #{ $prefix }--left {\n      text-align: left;\n      #{ $prefix }__graphic {\n        order: -1;\n      }\n      #{ $prefix }__content-inner {\n        margin-left: 0;\n      }\n    }\n  }\n  #{ $prefix }--split {\n    @include breakpoint.min($breakpoint) {\n      min-height: $height;\n    }\n    #{ $prefix }__graphic {\n      @include breakpoint.max($breakpoint) {\n        height: get(\"graphic-height-stacked\");\n      }\n    }\n  }\n\n  @if get(\"extra-split-ratios\") {\n    @include breakpoint.min($breakpoint) {\n      @each $name, $ratio in get(\"extra-split-ratios\") {\n        #{ $prefix }--split-graphic-#{ $name } #{ $prefix }__graphic,\n        #{ $prefix }--split-content-#{ $name } #{ $prefix }__content {\n          flex-basis: list.nth($ratio, 1);\n        }\n        #{ $prefix }--split-graphic-#{ $name } #{ $prefix }__content,\n        #{ $prefix }--split-content-#{ $name } #{ $prefix }__graphic {\n          flex-basis: list.nth($ratio, 2);\n        }\n      }\n    }\n  }\n  \n\n  #{ $prefix }--overlay {\n    position: relative;\n    justify-content: center;\n    min-height: $height;\n    #{ $prefix }__content { \n      position: relative;\n      z-index: 2;\n    }\n    #{ $prefix }__graphic {\n      @include layout.absolute-fill();\n    }\n    &#{ $prefix }--bottom,\n    &#{ $prefix }--bottom #{ $prefix }__content {\n      justify-content: flex-end;\n    }\n    &#{ $prefix }--top,\n    &#{ $prefix }--top #{ $prefix }__content {\n      justify-content: flex-start;\n    }\n  }\n  #{ $prefix }--compact {\n    min-height: get(\"height-compact\");\n  }\n",
              "line": {
                "start": 65,
                "end": 185
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"hero\");\n  $height: get(\"height\");\n  $breakpoint: get(\"breakpoint\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    text-align: get(\"text-align\");\n  }\n  #{ $prefix }__content-container {\n    padding-top: get(\"content-padding-top\");\n    padding-top: get(\"content-padding-bottom\");\n  }\n  #{ $prefix }__content-inner {\n    max-width: get(\"content-max-width\");\n    margin-left: auto;\n    margin-right: auto;\n  }\n  #{ $prefix }__graphic {\n    position: relative;\n    flex-grow: 1;\n    width: 100%;\n  }\n  #{ $prefix }__graphic-media {\n    @include layout.absolute-fill(true);\n    object-fit: cover;\n  }\n  \n  \n  \n  // This doesn't interfere with overlay\n  #{ $prefix }--top {\n    #{ $prefix }__graphic {\n      @include breakpoint.min($breakpoint) {\n        order: -1;\n      }\n    }\n  }\n  // These are shared between overlay and split style\n  @include breakpoint.min($breakpoint) {\n    #{ $prefix }--right,\n    #{ $prefix }--left {\n      text-align: right;\n      flex-direction: row;\n      #{ $prefix }__graphic,\n      #{ $prefix }__content {\n        flex: 1 0 50%;\n      }\n      #{ $prefix }__content {\n        display: flex;\n        flex-direction: column;\n        justify-content: center;\n      }\n    }\n    #{ $prefix }--right {\n      #{ $prefix }__content-inner {\n        margin-right: 0;\n      }\n    }\n    #{ $prefix }--left {\n      text-align: left;\n      #{ $prefix }__graphic {\n        order: -1;\n      }\n      #{ $prefix }__content-inner {\n        margin-left: 0;\n      }\n    }\n  }\n  #{ $prefix }--split {\n    @include breakpoint.min($breakpoint) {\n      min-height: $height;\n    }\n    #{ $prefix }__graphic {\n      @include breakpoint.max($breakpoint) {\n        height: get(\"graphic-height-stacked\");\n      }\n    }\n  }\n\n  @if get(\"extra-split-ratios\") {\n    @include breakpoint.min($breakpoint) {\n      @each $name, $ratio in get(\"extra-split-ratios\") {\n        #{ $prefix }--split-graphic-#{ $name } #{ $prefix }__graphic,\n        #{ $prefix }--split-content-#{ $name } #{ $prefix }__content {\n          flex-basis: list.nth($ratio, 1);\n        }\n        #{ $prefix }--split-graphic-#{ $name } #{ $prefix }__content,\n        #{ $prefix }--split-content-#{ $name } #{ $prefix }__graphic {\n          flex-basis: list.nth($ratio, 2);\n        }\n      }\n    }\n  }\n  \n\n  #{ $prefix }--overlay {\n    position: relative;\n    justify-content: center;\n    min-height: $height;\n    #{ $prefix }__content { \n      position: relative;\n      z-index: 2;\n    }\n    #{ $prefix }__graphic {\n      @include layout.absolute-fill();\n    }\n    &#{ $prefix }--bottom,\n    &#{ $prefix }--bottom #{ $prefix }__content {\n      justify-content: flex-end;\n    }\n    &#{ $prefix }--top,\n    &#{ $prefix }--top #{ $prefix }__content {\n      justify-content: flex-start;\n    }\n  }\n  #{ $prefix }--compact {\n    min-height: get(\"height-compact\");\n  }\n",
              "line": {
                "start": 65,
                "end": 185
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"hero\");\n  $height: get(\"height\");\n  $breakpoint: get(\"breakpoint\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    text-align: get(\"text-align\");\n  }\n  #{ $prefix }__content-container {\n    padding-top: get(\"content-padding-top\");\n    padding-top: get(\"content-padding-bottom\");\n  }\n  #{ $prefix }__content-inner {\n    max-width: get(\"content-max-width\");\n    margin-left: auto;\n    margin-right: auto;\n  }\n  #{ $prefix }__graphic {\n    position: relative;\n    flex-grow: 1;\n    width: 100%;\n  }\n  #{ $prefix }__graphic-media {\n    @include layout.absolute-fill(true);\n    object-fit: cover;\n  }\n  \n  \n  \n  // This doesn't interfere with overlay\n  #{ $prefix }--top {\n    #{ $prefix }__graphic {\n      @include breakpoint.min($breakpoint) {\n        order: -1;\n      }\n    }\n  }\n  // These are shared between overlay and split style\n  @include breakpoint.min($breakpoint) {\n    #{ $prefix }--right,\n    #{ $prefix }--left {\n      text-align: right;\n      flex-direction: row;\n      #{ $prefix }__graphic,\n      #{ $prefix }__content {\n        flex: 1 0 50%;\n      }\n      #{ $prefix }__content {\n        display: flex;\n        flex-direction: column;\n        justify-content: center;\n      }\n    }\n    #{ $prefix }--right {\n      #{ $prefix }__content-inner {\n        margin-right: 0;\n      }\n    }\n    #{ $prefix }--left {\n      text-align: left;\n      #{ $prefix }__graphic {\n        order: -1;\n      }\n      #{ $prefix }__content-inner {\n        margin-left: 0;\n      }\n    }\n  }\n  #{ $prefix }--split {\n    @include breakpoint.min($breakpoint) {\n      min-height: $height;\n    }\n    #{ $prefix }__graphic {\n      @include breakpoint.max($breakpoint) {\n        height: get(\"graphic-height-stacked\");\n      }\n    }\n  }\n\n  @if get(\"extra-split-ratios\") {\n    @include breakpoint.min($breakpoint) {\n      @each $name, $ratio in get(\"extra-split-ratios\") {\n        #{ $prefix }--split-graphic-#{ $name } #{ $prefix }__graphic,\n        #{ $prefix }--split-content-#{ $name } #{ $prefix }__content {\n          flex-basis: list.nth($ratio, 1);\n        }\n        #{ $prefix }--split-graphic-#{ $name } #{ $prefix }__content,\n        #{ $prefix }--split-content-#{ $name } #{ $prefix }__graphic {\n          flex-basis: list.nth($ratio, 2);\n        }\n      }\n    }\n  }\n  \n\n  #{ $prefix }--overlay {\n    position: relative;\n    justify-content: center;\n    min-height: $height;\n    #{ $prefix }__content { \n      position: relative;\n      z-index: 2;\n    }\n    #{ $prefix }__graphic {\n      @include layout.absolute-fill();\n    }\n    &#{ $prefix }--bottom,\n    &#{ $prefix }--bottom #{ $prefix }__content {\n      justify-content: flex-end;\n    }\n    &#{ $prefix }--top,\n    &#{ $prefix }--top #{ $prefix }__content {\n      justify-content: flex-start;\n    }\n  }\n  #{ $prefix }--compact {\n    min-height: get(\"height-compact\");\n  }\n",
              "line": {
                "start": 65,
                "end": 185
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"hero\");\n  $height: get(\"height\");\n  $breakpoint: get(\"breakpoint\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    text-align: get(\"text-align\");\n  }\n  #{ $prefix }__content-container {\n    padding-top: get(\"content-padding-top\");\n    padding-top: get(\"content-padding-bottom\");\n  }\n  #{ $prefix }__content-inner {\n    max-width: get(\"content-max-width\");\n    margin-left: auto;\n    margin-right: auto;\n  }\n  #{ $prefix }__graphic {\n    position: relative;\n    flex-grow: 1;\n    width: 100%;\n  }\n  #{ $prefix }__graphic-media {\n    @include layout.absolute-fill(true);\n    object-fit: cover;\n  }\n  \n  \n  \n  // This doesn't interfere with overlay\n  #{ $prefix }--top {\n    #{ $prefix }__graphic {\n      @include breakpoint.min($breakpoint) {\n        order: -1;\n      }\n    }\n  }\n  // These are shared between overlay and split style\n  @include breakpoint.min($breakpoint) {\n    #{ $prefix }--right,\n    #{ $prefix }--left {\n      text-align: right;\n      flex-direction: row;\n      #{ $prefix }__graphic,\n      #{ $prefix }__content {\n        flex: 1 0 50%;\n      }\n      #{ $prefix }__content {\n        display: flex;\n        flex-direction: column;\n        justify-content: center;\n      }\n    }\n    #{ $prefix }--right {\n      #{ $prefix }__content-inner {\n        margin-right: 0;\n      }\n    }\n    #{ $prefix }--left {\n      text-align: left;\n      #{ $prefix }__graphic {\n        order: -1;\n      }\n      #{ $prefix }__content-inner {\n        margin-left: 0;\n      }\n    }\n  }\n  #{ $prefix }--split {\n    @include breakpoint.min($breakpoint) {\n      min-height: $height;\n    }\n    #{ $prefix }__graphic {\n      @include breakpoint.max($breakpoint) {\n        height: get(\"graphic-height-stacked\");\n      }\n    }\n  }\n\n  @if get(\"extra-split-ratios\") {\n    @include breakpoint.min($breakpoint) {\n      @each $name, $ratio in get(\"extra-split-ratios\") {\n        #{ $prefix }--split-graphic-#{ $name } #{ $prefix }__graphic,\n        #{ $prefix }--split-content-#{ $name } #{ $prefix }__content {\n          flex-basis: list.nth($ratio, 1);\n        }\n        #{ $prefix }--split-graphic-#{ $name } #{ $prefix }__content,\n        #{ $prefix }--split-content-#{ $name } #{ $prefix }__graphic {\n          flex-basis: list.nth($ratio, 2);\n        }\n      }\n    }\n  }\n  \n\n  #{ $prefix }--overlay {\n    position: relative;\n    justify-content: center;\n    min-height: $height;\n    #{ $prefix }__content { \n      position: relative;\n      z-index: 2;\n    }\n    #{ $prefix }__graphic {\n      @include layout.absolute-fill();\n    }\n    &#{ $prefix }--bottom,\n    &#{ $prefix }--bottom #{ $prefix }__content {\n      justify-content: flex-end;\n    }\n    &#{ $prefix }--top,\n    &#{ $prefix }--top #{ $prefix }__content {\n      justify-content: flex-start;\n    }\n  }\n  #{ $prefix }--compact {\n    min-height: get(\"height-compact\");\n  }\n",
              "line": {
                "start": 65,
                "end": 185
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"hero\");\n  $height: get(\"height\");\n  $breakpoint: get(\"breakpoint\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    text-align: get(\"text-align\");\n  }\n  #{ $prefix }__content-container {\n    padding-top: get(\"content-padding-top\");\n    padding-top: get(\"content-padding-bottom\");\n  }\n  #{ $prefix }__content-inner {\n    max-width: get(\"content-max-width\");\n    margin-left: auto;\n    margin-right: auto;\n  }\n  #{ $prefix }__graphic {\n    position: relative;\n    flex-grow: 1;\n    width: 100%;\n  }\n  #{ $prefix }__graphic-media {\n    @include layout.absolute-fill(true);\n    object-fit: cover;\n  }\n  \n  \n  \n  // This doesn't interfere with overlay\n  #{ $prefix }--top {\n    #{ $prefix }__graphic {\n      @include breakpoint.min($breakpoint) {\n        order: -1;\n      }\n    }\n  }\n  // These are shared between overlay and split style\n  @include breakpoint.min($breakpoint) {\n    #{ $prefix }--right,\n    #{ $prefix }--left {\n      text-align: right;\n      flex-direction: row;\n      #{ $prefix }__graphic,\n      #{ $prefix }__content {\n        flex: 1 0 50%;\n      }\n      #{ $prefix }__content {\n        display: flex;\n        flex-direction: column;\n        justify-content: center;\n      }\n    }\n    #{ $prefix }--right {\n      #{ $prefix }__content-inner {\n        margin-right: 0;\n      }\n    }\n    #{ $prefix }--left {\n      text-align: left;\n      #{ $prefix }__graphic {\n        order: -1;\n      }\n      #{ $prefix }__content-inner {\n        margin-left: 0;\n      }\n    }\n  }\n  #{ $prefix }--split {\n    @include breakpoint.min($breakpoint) {\n      min-height: $height;\n    }\n    #{ $prefix }__graphic {\n      @include breakpoint.max($breakpoint) {\n        height: get(\"graphic-height-stacked\");\n      }\n    }\n  }\n\n  @if get(\"extra-split-ratios\") {\n    @include breakpoint.min($breakpoint) {\n      @each $name, $ratio in get(\"extra-split-ratios\") {\n        #{ $prefix }--split-graphic-#{ $name } #{ $prefix }__graphic,\n        #{ $prefix }--split-content-#{ $name } #{ $prefix }__content {\n          flex-basis: list.nth($ratio, 1);\n        }\n        #{ $prefix }--split-graphic-#{ $name } #{ $prefix }__content,\n        #{ $prefix }--split-content-#{ $name } #{ $prefix }__graphic {\n          flex-basis: list.nth($ratio, 2);\n        }\n      }\n    }\n  }\n  \n\n  #{ $prefix }--overlay {\n    position: relative;\n    justify-content: center;\n    min-height: $height;\n    #{ $prefix }__content { \n      position: relative;\n      z-index: 2;\n    }\n    #{ $prefix }__graphic {\n      @include layout.absolute-fill();\n    }\n    &#{ $prefix }--bottom,\n    &#{ $prefix }--bottom #{ $prefix }__content {\n      justify-content: flex-end;\n    }\n    &#{ $prefix }--top,\n    &#{ $prefix }--top #{ $prefix }__content {\n      justify-content: flex-start;\n    }\n  }\n  #{ $prefix }--compact {\n    min-height: get(\"height-compact\");\n  }\n",
              "line": {
                "start": 65,
                "end": 185
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"hero\");\n  $height: get(\"height\");\n  $breakpoint: get(\"breakpoint\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    text-align: get(\"text-align\");\n  }\n  #{ $prefix }__content-container {\n    padding-top: get(\"content-padding-top\");\n    padding-top: get(\"content-padding-bottom\");\n  }\n  #{ $prefix }__content-inner {\n    max-width: get(\"content-max-width\");\n    margin-left: auto;\n    margin-right: auto;\n  }\n  #{ $prefix }__graphic {\n    position: relative;\n    flex-grow: 1;\n    width: 100%;\n  }\n  #{ $prefix }__graphic-media {\n    @include layout.absolute-fill(true);\n    object-fit: cover;\n  }\n  \n  \n  \n  // This doesn't interfere with overlay\n  #{ $prefix }--top {\n    #{ $prefix }__graphic {\n      @include breakpoint.min($breakpoint) {\n        order: -1;\n      }\n    }\n  }\n  // These are shared between overlay and split style\n  @include breakpoint.min($breakpoint) {\n    #{ $prefix }--right,\n    #{ $prefix }--left {\n      text-align: right;\n      flex-direction: row;\n      #{ $prefix }__graphic,\n      #{ $prefix }__content {\n        flex: 1 0 50%;\n      }\n      #{ $prefix }__content {\n        display: flex;\n        flex-direction: column;\n        justify-content: center;\n      }\n    }\n    #{ $prefix }--right {\n      #{ $prefix }__content-inner {\n        margin-right: 0;\n      }\n    }\n    #{ $prefix }--left {\n      text-align: left;\n      #{ $prefix }__graphic {\n        order: -1;\n      }\n      #{ $prefix }__content-inner {\n        margin-left: 0;\n      }\n    }\n  }\n  #{ $prefix }--split {\n    @include breakpoint.min($breakpoint) {\n      min-height: $height;\n    }\n    #{ $prefix }__graphic {\n      @include breakpoint.max($breakpoint) {\n        height: get(\"graphic-height-stacked\");\n      }\n    }\n  }\n\n  @if get(\"extra-split-ratios\") {\n    @include breakpoint.min($breakpoint) {\n      @each $name, $ratio in get(\"extra-split-ratios\") {\n        #{ $prefix }--split-graphic-#{ $name } #{ $prefix }__graphic,\n        #{ $prefix }--split-content-#{ $name } #{ $prefix }__content {\n          flex-basis: list.nth($ratio, 1);\n        }\n        #{ $prefix }--split-graphic-#{ $name } #{ $prefix }__content,\n        #{ $prefix }--split-content-#{ $name } #{ $prefix }__graphic {\n          flex-basis: list.nth($ratio, 2);\n        }\n      }\n    }\n  }\n  \n\n  #{ $prefix }--overlay {\n    position: relative;\n    justify-content: center;\n    min-height: $height;\n    #{ $prefix }__content { \n      position: relative;\n      z-index: 2;\n    }\n    #{ $prefix }__graphic {\n      @include layout.absolute-fill();\n    }\n    &#{ $prefix }--bottom,\n    &#{ $prefix }--bottom #{ $prefix }__content {\n      justify-content: flex-end;\n    }\n    &#{ $prefix }--top,\n    &#{ $prefix }--top #{ $prefix }__content {\n      justify-content: flex-start;\n    }\n  }\n  #{ $prefix }--compact {\n    min-height: get(\"height-compact\");\n  }\n",
              "line": {
                "start": 65,
                "end": 185
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"hero\");\n  $height: get(\"height\");\n  $breakpoint: get(\"breakpoint\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    text-align: get(\"text-align\");\n  }\n  #{ $prefix }__content-container {\n    padding-top: get(\"content-padding-top\");\n    padding-top: get(\"content-padding-bottom\");\n  }\n  #{ $prefix }__content-inner {\n    max-width: get(\"content-max-width\");\n    margin-left: auto;\n    margin-right: auto;\n  }\n  #{ $prefix }__graphic {\n    position: relative;\n    flex-grow: 1;\n    width: 100%;\n  }\n  #{ $prefix }__graphic-media {\n    @include layout.absolute-fill(true);\n    object-fit: cover;\n  }\n  \n  \n  \n  // This doesn't interfere with overlay\n  #{ $prefix }--top {\n    #{ $prefix }__graphic {\n      @include breakpoint.min($breakpoint) {\n        order: -1;\n      }\n    }\n  }\n  // These are shared between overlay and split style\n  @include breakpoint.min($breakpoint) {\n    #{ $prefix }--right,\n    #{ $prefix }--left {\n      text-align: right;\n      flex-direction: row;\n      #{ $prefix }__graphic,\n      #{ $prefix }__content {\n        flex: 1 0 50%;\n      }\n      #{ $prefix }__content {\n        display: flex;\n        flex-direction: column;\n        justify-content: center;\n      }\n    }\n    #{ $prefix }--right {\n      #{ $prefix }__content-inner {\n        margin-right: 0;\n      }\n    }\n    #{ $prefix }--left {\n      text-align: left;\n      #{ $prefix }__graphic {\n        order: -1;\n      }\n      #{ $prefix }__content-inner {\n        margin-left: 0;\n      }\n    }\n  }\n  #{ $prefix }--split {\n    @include breakpoint.min($breakpoint) {\n      min-height: $height;\n    }\n    #{ $prefix }__graphic {\n      @include breakpoint.max($breakpoint) {\n        height: get(\"graphic-height-stacked\");\n      }\n    }\n  }\n\n  @if get(\"extra-split-ratios\") {\n    @include breakpoint.min($breakpoint) {\n      @each $name, $ratio in get(\"extra-split-ratios\") {\n        #{ $prefix }--split-graphic-#{ $name } #{ $prefix }__graphic,\n        #{ $prefix }--split-content-#{ $name } #{ $prefix }__content {\n          flex-basis: list.nth($ratio, 1);\n        }\n        #{ $prefix }--split-graphic-#{ $name } #{ $prefix }__content,\n        #{ $prefix }--split-content-#{ $name } #{ $prefix }__graphic {\n          flex-basis: list.nth($ratio, 2);\n        }\n      }\n    }\n  }\n  \n\n  #{ $prefix }--overlay {\n    position: relative;\n    justify-content: center;\n    min-height: $height;\n    #{ $prefix }__content { \n      position: relative;\n      z-index: 2;\n    }\n    #{ $prefix }__graphic {\n      @include layout.absolute-fill();\n    }\n    &#{ $prefix }--bottom,\n    &#{ $prefix }--bottom #{ $prefix }__content {\n      justify-content: flex-end;\n    }\n    &#{ $prefix }--top,\n    &#{ $prefix }--top #{ $prefix }__content {\n      justify-content: flex-start;\n    }\n  }\n  #{ $prefix }--compact {\n    min-height: get(\"height-compact\");\n  }\n",
              "line": {
                "start": 65,
                "end": 185
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  $prefix: selector.class(\"image-grid\");\n  $gap: get(\"gap\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-wrap: wrap;\n    margin: -($gap);\n    overflow: hidden;\n  }\n  #{ $prefix }__item {\n    // Have to use borders vs flexbox gap (adds to percentages) @important\n    border-bottom: $gap solid transparent;\n    border-top: $gap solid transparent;\n    @include breakpoint.min(get(\"breakpoint\")) {\n      border: $gap solid transparent;\n      flex: 1 1;\n      min-width: get(\"min-width\");\n    }\n    > img {\n      width: 100%;\n    }\n  }\n",
              "line": {
                "start": 47,
                "end": 71
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  $prefix: selector.class(\"image-grid\");\n  $gap: get(\"gap\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-wrap: wrap;\n    margin: -($gap);\n    overflow: hidden;\n  }\n  #{ $prefix }__item {\n    // Have to use borders vs flexbox gap (adds to percentages) @important\n    border-bottom: $gap solid transparent;\n    border-top: $gap solid transparent;\n    @include breakpoint.min(get(\"breakpoint\")) {\n      border: $gap solid transparent;\n      flex: 1 1;\n      min-width: get(\"min-width\");\n    }\n    > img {\n      width: 100%;\n    }\n  }\n",
              "line": {
                "start": 47,
                "end": 71
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  $prefix: selector.class(\"image-grid\");\n  $gap: get(\"gap\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-wrap: wrap;\n    margin: -($gap);\n    overflow: hidden;\n  }\n  #{ $prefix }__item {\n    // Have to use borders vs flexbox gap (adds to percentages) @important\n    border-bottom: $gap solid transparent;\n    border-top: $gap solid transparent;\n    @include breakpoint.min(get(\"breakpoint\")) {\n      border: $gap solid transparent;\n      flex: 1 1;\n      min-width: get(\"min-width\");\n    }\n    > img {\n      width: 100%;\n    }\n  }\n",
              "line": {
                "start": 47,
                "end": 71
              }
            }
          },
          {
            "description": "Prints component stylesheets\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"input-group\");\n  \n  $radius: get(\"border-radius\") or form-theme.get(\"input-border-radius\");\n  $border-info: utils.border-info(form-theme.get(\"input-border\"));\n  $overlap: get(\"overlap-margin\") or map.get($border-info, \"width\");\n  \n  $padding-y: get(\"item-padding-y\") or utils.get-spacing-top(button.get(\"padding\"));\n  $padding-x: get(\"item-padding-x\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: stretch;\n    max-width: 100%;\n    gap: get(\"gap\");\n  }\n\n  #{ $prefix }__item {\n    position: relative; // For z-index management\n    display: flex;\n    align-items: stretch;\n    flex: 0 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-item-min-width\", get(\"item-min-width\"));\n  }\n\n  #{ $prefix }__item--field {\n    flex: 1 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-field-min-width\", get(\"field-min-width\"));\n  }\n\n  #{ $prefix }__item--cue {\n    padding: $padding-y $padding-x;\n    align-items: center;\n    background-color: cssvar.use-ulu(\"input-group-cue-background\", get(\"cue-background-color\"));\n    border: form-theme.get(\"input-border\");\n    border-radius: $radius;\n    color: form-theme.get(\"color\");\n    line-height: typography.get(\"line-height-dense\");\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n  }\n\n  // Specificity overrides for internal elements\n  #{ $prefix } {\n    #{ $prefix }__input,\n    #{ $prefix }__button {\n      height: 100%;\n      margin: 0;\n      min-width: 0; \n      max-width: none;\n    }\n    \n    #{ $prefix }__input {\n      width: 100%;\n    }\n  }\n\n  // Removes internal border-radius and overlaps borders\n  #{ $prefix }--joined {\n    gap: 0;\n\n    // Remove default button padding when joined only\n    #{ $prefix }__button { \n      padding-left: $padding-x;\n      padding-right: $padding-x;\n      @if (get(\"joined-button-radius-match\")) {\n        border-radius: $radius;\n      }\n    }\n\n    // Interactive items pop to front (cues do not have focus/hover states)\n    #{ $prefix }__item:not(#{ $prefix }__item--cue) {\n      &:hover,\n      &:focus-within {\n        z-index: 2;\n      }\n    }\n\n    // Strip left radius for items after the first\n    #{ $prefix }__item:not(:first-child) {\n      margin-left: -#{ $overlap }; // Use resolved overlap width\n\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-left-radius: 0;\n        border-bottom-left-radius: 0;\n      }\n    }\n\n    // Strip right radius for items before the last\n    #{ $prefix }__item:not(:last-child) {\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-right-radius: 0;\n        border-bottom-right-radius: 0;\n      }\n    }\n  }\n",
              "line": {
                "start": 64,
                "end": 165
              }
            }
          },
          {
            "description": "Prints component stylesheets\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"input-group\");\n  \n  $radius: get(\"border-radius\") or form-theme.get(\"input-border-radius\");\n  $border-info: utils.border-info(form-theme.get(\"input-border\"));\n  $overlap: get(\"overlap-margin\") or map.get($border-info, \"width\");\n  \n  $padding-y: get(\"item-padding-y\") or utils.get-spacing-top(button.get(\"padding\"));\n  $padding-x: get(\"item-padding-x\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: stretch;\n    max-width: 100%;\n    gap: get(\"gap\");\n  }\n\n  #{ $prefix }__item {\n    position: relative; // For z-index management\n    display: flex;\n    align-items: stretch;\n    flex: 0 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-item-min-width\", get(\"item-min-width\"));\n  }\n\n  #{ $prefix }__item--field {\n    flex: 1 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-field-min-width\", get(\"field-min-width\"));\n  }\n\n  #{ $prefix }__item--cue {\n    padding: $padding-y $padding-x;\n    align-items: center;\n    background-color: cssvar.use-ulu(\"input-group-cue-background\", get(\"cue-background-color\"));\n    border: form-theme.get(\"input-border\");\n    border-radius: $radius;\n    color: form-theme.get(\"color\");\n    line-height: typography.get(\"line-height-dense\");\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n  }\n\n  // Specificity overrides for internal elements\n  #{ $prefix } {\n    #{ $prefix }__input,\n    #{ $prefix }__button {\n      height: 100%;\n      margin: 0;\n      min-width: 0; \n      max-width: none;\n    }\n    \n    #{ $prefix }__input {\n      width: 100%;\n    }\n  }\n\n  // Removes internal border-radius and overlaps borders\n  #{ $prefix }--joined {\n    gap: 0;\n\n    // Remove default button padding when joined only\n    #{ $prefix }__button { \n      padding-left: $padding-x;\n      padding-right: $padding-x;\n      @if (get(\"joined-button-radius-match\")) {\n        border-radius: $radius;\n      }\n    }\n\n    // Interactive items pop to front (cues do not have focus/hover states)\n    #{ $prefix }__item:not(#{ $prefix }__item--cue) {\n      &:hover,\n      &:focus-within {\n        z-index: 2;\n      }\n    }\n\n    // Strip left radius for items after the first\n    #{ $prefix }__item:not(:first-child) {\n      margin-left: -#{ $overlap }; // Use resolved overlap width\n\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-left-radius: 0;\n        border-bottom-left-radius: 0;\n      }\n    }\n\n    // Strip right radius for items before the last\n    #{ $prefix }__item:not(:last-child) {\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-right-radius: 0;\n        border-bottom-right-radius: 0;\n      }\n    }\n  }\n",
              "line": {
                "start": 64,
                "end": 165
              }
            }
          },
          {
            "description": "Prints component stylesheets\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"input-group\");\n  \n  $radius: get(\"border-radius\") or form-theme.get(\"input-border-radius\");\n  $border-info: utils.border-info(form-theme.get(\"input-border\"));\n  $overlap: get(\"overlap-margin\") or map.get($border-info, \"width\");\n  \n  $padding-y: get(\"item-padding-y\") or utils.get-spacing-top(button.get(\"padding\"));\n  $padding-x: get(\"item-padding-x\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: stretch;\n    max-width: 100%;\n    gap: get(\"gap\");\n  }\n\n  #{ $prefix }__item {\n    position: relative; // For z-index management\n    display: flex;\n    align-items: stretch;\n    flex: 0 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-item-min-width\", get(\"item-min-width\"));\n  }\n\n  #{ $prefix }__item--field {\n    flex: 1 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-field-min-width\", get(\"field-min-width\"));\n  }\n\n  #{ $prefix }__item--cue {\n    padding: $padding-y $padding-x;\n    align-items: center;\n    background-color: cssvar.use-ulu(\"input-group-cue-background\", get(\"cue-background-color\"));\n    border: form-theme.get(\"input-border\");\n    border-radius: $radius;\n    color: form-theme.get(\"color\");\n    line-height: typography.get(\"line-height-dense\");\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n  }\n\n  // Specificity overrides for internal elements\n  #{ $prefix } {\n    #{ $prefix }__input,\n    #{ $prefix }__button {\n      height: 100%;\n      margin: 0;\n      min-width: 0; \n      max-width: none;\n    }\n    \n    #{ $prefix }__input {\n      width: 100%;\n    }\n  }\n\n  // Removes internal border-radius and overlaps borders\n  #{ $prefix }--joined {\n    gap: 0;\n\n    // Remove default button padding when joined only\n    #{ $prefix }__button { \n      padding-left: $padding-x;\n      padding-right: $padding-x;\n      @if (get(\"joined-button-radius-match\")) {\n        border-radius: $radius;\n      }\n    }\n\n    // Interactive items pop to front (cues do not have focus/hover states)\n    #{ $prefix }__item:not(#{ $prefix }__item--cue) {\n      &:hover,\n      &:focus-within {\n        z-index: 2;\n      }\n    }\n\n    // Strip left radius for items after the first\n    #{ $prefix }__item:not(:first-child) {\n      margin-left: -#{ $overlap }; // Use resolved overlap width\n\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-left-radius: 0;\n        border-bottom-left-radius: 0;\n      }\n    }\n\n    // Strip right radius for items before the last\n    #{ $prefix }__item:not(:last-child) {\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-right-radius: 0;\n        border-bottom-right-radius: 0;\n      }\n    }\n  }\n",
              "line": {
                "start": 64,
                "end": 165
              }
            }
          },
          {
            "description": "Prints component stylesheets\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"input-group\");\n  \n  $radius: get(\"border-radius\") or form-theme.get(\"input-border-radius\");\n  $border-info: utils.border-info(form-theme.get(\"input-border\"));\n  $overlap: get(\"overlap-margin\") or map.get($border-info, \"width\");\n  \n  $padding-y: get(\"item-padding-y\") or utils.get-spacing-top(button.get(\"padding\"));\n  $padding-x: get(\"item-padding-x\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: stretch;\n    max-width: 100%;\n    gap: get(\"gap\");\n  }\n\n  #{ $prefix }__item {\n    position: relative; // For z-index management\n    display: flex;\n    align-items: stretch;\n    flex: 0 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-item-min-width\", get(\"item-min-width\"));\n  }\n\n  #{ $prefix }__item--field {\n    flex: 1 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-field-min-width\", get(\"field-min-width\"));\n  }\n\n  #{ $prefix }__item--cue {\n    padding: $padding-y $padding-x;\n    align-items: center;\n    background-color: cssvar.use-ulu(\"input-group-cue-background\", get(\"cue-background-color\"));\n    border: form-theme.get(\"input-border\");\n    border-radius: $radius;\n    color: form-theme.get(\"color\");\n    line-height: typography.get(\"line-height-dense\");\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n  }\n\n  // Specificity overrides for internal elements\n  #{ $prefix } {\n    #{ $prefix }__input,\n    #{ $prefix }__button {\n      height: 100%;\n      margin: 0;\n      min-width: 0; \n      max-width: none;\n    }\n    \n    #{ $prefix }__input {\n      width: 100%;\n    }\n  }\n\n  // Removes internal border-radius and overlaps borders\n  #{ $prefix }--joined {\n    gap: 0;\n\n    // Remove default button padding when joined only\n    #{ $prefix }__button { \n      padding-left: $padding-x;\n      padding-right: $padding-x;\n      @if (get(\"joined-button-radius-match\")) {\n        border-radius: $radius;\n      }\n    }\n\n    // Interactive items pop to front (cues do not have focus/hover states)\n    #{ $prefix }__item:not(#{ $prefix }__item--cue) {\n      &:hover,\n      &:focus-within {\n        z-index: 2;\n      }\n    }\n\n    // Strip left radius for items after the first\n    #{ $prefix }__item:not(:first-child) {\n      margin-left: -#{ $overlap }; // Use resolved overlap width\n\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-left-radius: 0;\n        border-bottom-left-radius: 0;\n      }\n    }\n\n    // Strip right radius for items before the last\n    #{ $prefix }__item:not(:last-child) {\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-right-radius: 0;\n        border-bottom-right-radius: 0;\n      }\n    }\n  }\n",
              "line": {
                "start": 64,
                "end": 165
              }
            }
          },
          {
            "description": "Prints component stylesheets\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"input-group\");\n  \n  $radius: get(\"border-radius\") or form-theme.get(\"input-border-radius\");\n  $border-info: utils.border-info(form-theme.get(\"input-border\"));\n  $overlap: get(\"overlap-margin\") or map.get($border-info, \"width\");\n  \n  $padding-y: get(\"item-padding-y\") or utils.get-spacing-top(button.get(\"padding\"));\n  $padding-x: get(\"item-padding-x\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: stretch;\n    max-width: 100%;\n    gap: get(\"gap\");\n  }\n\n  #{ $prefix }__item {\n    position: relative; // For z-index management\n    display: flex;\n    align-items: stretch;\n    flex: 0 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-item-min-width\", get(\"item-min-width\"));\n  }\n\n  #{ $prefix }__item--field {\n    flex: 1 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-field-min-width\", get(\"field-min-width\"));\n  }\n\n  #{ $prefix }__item--cue {\n    padding: $padding-y $padding-x;\n    align-items: center;\n    background-color: cssvar.use-ulu(\"input-group-cue-background\", get(\"cue-background-color\"));\n    border: form-theme.get(\"input-border\");\n    border-radius: $radius;\n    color: form-theme.get(\"color\");\n    line-height: typography.get(\"line-height-dense\");\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n  }\n\n  // Specificity overrides for internal elements\n  #{ $prefix } {\n    #{ $prefix }__input,\n    #{ $prefix }__button {\n      height: 100%;\n      margin: 0;\n      min-width: 0; \n      max-width: none;\n    }\n    \n    #{ $prefix }__input {\n      width: 100%;\n    }\n  }\n\n  // Removes internal border-radius and overlaps borders\n  #{ $prefix }--joined {\n    gap: 0;\n\n    // Remove default button padding when joined only\n    #{ $prefix }__button { \n      padding-left: $padding-x;\n      padding-right: $padding-x;\n      @if (get(\"joined-button-radius-match\")) {\n        border-radius: $radius;\n      }\n    }\n\n    // Interactive items pop to front (cues do not have focus/hover states)\n    #{ $prefix }__item:not(#{ $prefix }__item--cue) {\n      &:hover,\n      &:focus-within {\n        z-index: 2;\n      }\n    }\n\n    // Strip left radius for items after the first\n    #{ $prefix }__item:not(:first-child) {\n      margin-left: -#{ $overlap }; // Use resolved overlap width\n\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-left-radius: 0;\n        border-bottom-left-radius: 0;\n      }\n    }\n\n    // Strip right radius for items before the last\n    #{ $prefix }__item:not(:last-child) {\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-right-radius: 0;\n        border-bottom-right-radius: 0;\n      }\n    }\n  }\n",
              "line": {
                "start": 64,
                "end": 165
              }
            }
          },
          {
            "description": "Prints component stylesheets\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"input-group\");\n  \n  $radius: get(\"border-radius\") or form-theme.get(\"input-border-radius\");\n  $border-info: utils.border-info(form-theme.get(\"input-border\"));\n  $overlap: get(\"overlap-margin\") or map.get($border-info, \"width\");\n  \n  $padding-y: get(\"item-padding-y\") or utils.get-spacing-top(button.get(\"padding\"));\n  $padding-x: get(\"item-padding-x\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: stretch;\n    max-width: 100%;\n    gap: get(\"gap\");\n  }\n\n  #{ $prefix }__item {\n    position: relative; // For z-index management\n    display: flex;\n    align-items: stretch;\n    flex: 0 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-item-min-width\", get(\"item-min-width\"));\n  }\n\n  #{ $prefix }__item--field {\n    flex: 1 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-field-min-width\", get(\"field-min-width\"));\n  }\n\n  #{ $prefix }__item--cue {\n    padding: $padding-y $padding-x;\n    align-items: center;\n    background-color: cssvar.use-ulu(\"input-group-cue-background\", get(\"cue-background-color\"));\n    border: form-theme.get(\"input-border\");\n    border-radius: $radius;\n    color: form-theme.get(\"color\");\n    line-height: typography.get(\"line-height-dense\");\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n  }\n\n  // Specificity overrides for internal elements\n  #{ $prefix } {\n    #{ $prefix }__input,\n    #{ $prefix }__button {\n      height: 100%;\n      margin: 0;\n      min-width: 0; \n      max-width: none;\n    }\n    \n    #{ $prefix }__input {\n      width: 100%;\n    }\n  }\n\n  // Removes internal border-radius and overlaps borders\n  #{ $prefix }--joined {\n    gap: 0;\n\n    // Remove default button padding when joined only\n    #{ $prefix }__button { \n      padding-left: $padding-x;\n      padding-right: $padding-x;\n      @if (get(\"joined-button-radius-match\")) {\n        border-radius: $radius;\n      }\n    }\n\n    // Interactive items pop to front (cues do not have focus/hover states)\n    #{ $prefix }__item:not(#{ $prefix }__item--cue) {\n      &:hover,\n      &:focus-within {\n        z-index: 2;\n      }\n    }\n\n    // Strip left radius for items after the first\n    #{ $prefix }__item:not(:first-child) {\n      margin-left: -#{ $overlap }; // Use resolved overlap width\n\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-left-radius: 0;\n        border-bottom-left-radius: 0;\n      }\n    }\n\n    // Strip right radius for items before the last\n    #{ $prefix }__item:not(:last-child) {\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-right-radius: 0;\n        border-bottom-right-radius: 0;\n      }\n    }\n  }\n",
              "line": {
                "start": 64,
                "end": 165
              }
            }
          },
          {
            "description": "Prints component stylesheets\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"input-group\");\n  \n  $radius: get(\"border-radius\") or form-theme.get(\"input-border-radius\");\n  $border-info: utils.border-info(form-theme.get(\"input-border\"));\n  $overlap: get(\"overlap-margin\") or map.get($border-info, \"width\");\n  \n  $padding-y: get(\"item-padding-y\") or utils.get-spacing-top(button.get(\"padding\"));\n  $padding-x: get(\"item-padding-x\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: stretch;\n    max-width: 100%;\n    gap: get(\"gap\");\n  }\n\n  #{ $prefix }__item {\n    position: relative; // For z-index management\n    display: flex;\n    align-items: stretch;\n    flex: 0 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-item-min-width\", get(\"item-min-width\"));\n  }\n\n  #{ $prefix }__item--field {\n    flex: 1 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-field-min-width\", get(\"field-min-width\"));\n  }\n\n  #{ $prefix }__item--cue {\n    padding: $padding-y $padding-x;\n    align-items: center;\n    background-color: cssvar.use-ulu(\"input-group-cue-background\", get(\"cue-background-color\"));\n    border: form-theme.get(\"input-border\");\n    border-radius: $radius;\n    color: form-theme.get(\"color\");\n    line-height: typography.get(\"line-height-dense\");\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n  }\n\n  // Specificity overrides for internal elements\n  #{ $prefix } {\n    #{ $prefix }__input,\n    #{ $prefix }__button {\n      height: 100%;\n      margin: 0;\n      min-width: 0; \n      max-width: none;\n    }\n    \n    #{ $prefix }__input {\n      width: 100%;\n    }\n  }\n\n  // Removes internal border-radius and overlaps borders\n  #{ $prefix }--joined {\n    gap: 0;\n\n    // Remove default button padding when joined only\n    #{ $prefix }__button { \n      padding-left: $padding-x;\n      padding-right: $padding-x;\n      @if (get(\"joined-button-radius-match\")) {\n        border-radius: $radius;\n      }\n    }\n\n    // Interactive items pop to front (cues do not have focus/hover states)\n    #{ $prefix }__item:not(#{ $prefix }__item--cue) {\n      &:hover,\n      &:focus-within {\n        z-index: 2;\n      }\n    }\n\n    // Strip left radius for items after the first\n    #{ $prefix }__item:not(:first-child) {\n      margin-left: -#{ $overlap }; // Use resolved overlap width\n\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-left-radius: 0;\n        border-bottom-left-radius: 0;\n      }\n    }\n\n    // Strip right radius for items before the last\n    #{ $prefix }__item:not(:last-child) {\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-right-radius: 0;\n        border-bottom-right-radius: 0;\n      }\n    }\n  }\n",
              "line": {
                "start": 64,
                "end": 165
              }
            }
          },
          {
            "description": "Prints component stylesheets\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"input-group\");\n  \n  $radius: get(\"border-radius\") or form-theme.get(\"input-border-radius\");\n  $border-info: utils.border-info(form-theme.get(\"input-border\"));\n  $overlap: get(\"overlap-margin\") or map.get($border-info, \"width\");\n  \n  $padding-y: get(\"item-padding-y\") or utils.get-spacing-top(button.get(\"padding\"));\n  $padding-x: get(\"item-padding-x\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: stretch;\n    max-width: 100%;\n    gap: get(\"gap\");\n  }\n\n  #{ $prefix }__item {\n    position: relative; // For z-index management\n    display: flex;\n    align-items: stretch;\n    flex: 0 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-item-min-width\", get(\"item-min-width\"));\n  }\n\n  #{ $prefix }__item--field {\n    flex: 1 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-field-min-width\", get(\"field-min-width\"));\n  }\n\n  #{ $prefix }__item--cue {\n    padding: $padding-y $padding-x;\n    align-items: center;\n    background-color: cssvar.use-ulu(\"input-group-cue-background\", get(\"cue-background-color\"));\n    border: form-theme.get(\"input-border\");\n    border-radius: $radius;\n    color: form-theme.get(\"color\");\n    line-height: typography.get(\"line-height-dense\");\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n  }\n\n  // Specificity overrides for internal elements\n  #{ $prefix } {\n    #{ $prefix }__input,\n    #{ $prefix }__button {\n      height: 100%;\n      margin: 0;\n      min-width: 0; \n      max-width: none;\n    }\n    \n    #{ $prefix }__input {\n      width: 100%;\n    }\n  }\n\n  // Removes internal border-radius and overlaps borders\n  #{ $prefix }--joined {\n    gap: 0;\n\n    // Remove default button padding when joined only\n    #{ $prefix }__button { \n      padding-left: $padding-x;\n      padding-right: $padding-x;\n      @if (get(\"joined-button-radius-match\")) {\n        border-radius: $radius;\n      }\n    }\n\n    // Interactive items pop to front (cues do not have focus/hover states)\n    #{ $prefix }__item:not(#{ $prefix }__item--cue) {\n      &:hover,\n      &:focus-within {\n        z-index: 2;\n      }\n    }\n\n    // Strip left radius for items after the first\n    #{ $prefix }__item:not(:first-child) {\n      margin-left: -#{ $overlap }; // Use resolved overlap width\n\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-left-radius: 0;\n        border-bottom-left-radius: 0;\n      }\n    }\n\n    // Strip right radius for items before the last\n    #{ $prefix }__item:not(:last-child) {\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-right-radius: 0;\n        border-bottom-right-radius: 0;\n      }\n    }\n  }\n",
              "line": {
                "start": 64,
                "end": 165
              }
            }
          },
          {
            "description": "Prints component stylesheets\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"input-group\");\n  \n  $radius: get(\"border-radius\") or form-theme.get(\"input-border-radius\");\n  $border-info: utils.border-info(form-theme.get(\"input-border\"));\n  $overlap: get(\"overlap-margin\") or map.get($border-info, \"width\");\n  \n  $padding-y: get(\"item-padding-y\") or utils.get-spacing-top(button.get(\"padding\"));\n  $padding-x: get(\"item-padding-x\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: stretch;\n    max-width: 100%;\n    gap: get(\"gap\");\n  }\n\n  #{ $prefix }__item {\n    position: relative; // For z-index management\n    display: flex;\n    align-items: stretch;\n    flex: 0 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-item-min-width\", get(\"item-min-width\"));\n  }\n\n  #{ $prefix }__item--field {\n    flex: 1 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-field-min-width\", get(\"field-min-width\"));\n  }\n\n  #{ $prefix }__item--cue {\n    padding: $padding-y $padding-x;\n    align-items: center;\n    background-color: cssvar.use-ulu(\"input-group-cue-background\", get(\"cue-background-color\"));\n    border: form-theme.get(\"input-border\");\n    border-radius: $radius;\n    color: form-theme.get(\"color\");\n    line-height: typography.get(\"line-height-dense\");\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n  }\n\n  // Specificity overrides for internal elements\n  #{ $prefix } {\n    #{ $prefix }__input,\n    #{ $prefix }__button {\n      height: 100%;\n      margin: 0;\n      min-width: 0; \n      max-width: none;\n    }\n    \n    #{ $prefix }__input {\n      width: 100%;\n    }\n  }\n\n  // Removes internal border-radius and overlaps borders\n  #{ $prefix }--joined {\n    gap: 0;\n\n    // Remove default button padding when joined only\n    #{ $prefix }__button { \n      padding-left: $padding-x;\n      padding-right: $padding-x;\n      @if (get(\"joined-button-radius-match\")) {\n        border-radius: $radius;\n      }\n    }\n\n    // Interactive items pop to front (cues do not have focus/hover states)\n    #{ $prefix }__item:not(#{ $prefix }__item--cue) {\n      &:hover,\n      &:focus-within {\n        z-index: 2;\n      }\n    }\n\n    // Strip left radius for items after the first\n    #{ $prefix }__item:not(:first-child) {\n      margin-left: -#{ $overlap }; // Use resolved overlap width\n\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-left-radius: 0;\n        border-bottom-left-radius: 0;\n      }\n    }\n\n    // Strip right radius for items before the last\n    #{ $prefix }__item:not(:last-child) {\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-right-radius: 0;\n        border-bottom-right-radius: 0;\n      }\n    }\n  }\n",
              "line": {
                "start": 64,
                "end": 165
              }
            }
          },
          {
            "description": "Prints component stylesheets\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"input-group\");\n  \n  $radius: get(\"border-radius\") or form-theme.get(\"input-border-radius\");\n  $border-info: utils.border-info(form-theme.get(\"input-border\"));\n  $overlap: get(\"overlap-margin\") or map.get($border-info, \"width\");\n  \n  $padding-y: get(\"item-padding-y\") or utils.get-spacing-top(button.get(\"padding\"));\n  $padding-x: get(\"item-padding-x\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: stretch;\n    max-width: 100%;\n    gap: get(\"gap\");\n  }\n\n  #{ $prefix }__item {\n    position: relative; // For z-index management\n    display: flex;\n    align-items: stretch;\n    flex: 0 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-item-min-width\", get(\"item-min-width\"));\n  }\n\n  #{ $prefix }__item--field {\n    flex: 1 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-field-min-width\", get(\"field-min-width\"));\n  }\n\n  #{ $prefix }__item--cue {\n    padding: $padding-y $padding-x;\n    align-items: center;\n    background-color: cssvar.use-ulu(\"input-group-cue-background\", get(\"cue-background-color\"));\n    border: form-theme.get(\"input-border\");\n    border-radius: $radius;\n    color: form-theme.get(\"color\");\n    line-height: typography.get(\"line-height-dense\");\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n  }\n\n  // Specificity overrides for internal elements\n  #{ $prefix } {\n    #{ $prefix }__input,\n    #{ $prefix }__button {\n      height: 100%;\n      margin: 0;\n      min-width: 0; \n      max-width: none;\n    }\n    \n    #{ $prefix }__input {\n      width: 100%;\n    }\n  }\n\n  // Removes internal border-radius and overlaps borders\n  #{ $prefix }--joined {\n    gap: 0;\n\n    // Remove default button padding when joined only\n    #{ $prefix }__button { \n      padding-left: $padding-x;\n      padding-right: $padding-x;\n      @if (get(\"joined-button-radius-match\")) {\n        border-radius: $radius;\n      }\n    }\n\n    // Interactive items pop to front (cues do not have focus/hover states)\n    #{ $prefix }__item:not(#{ $prefix }__item--cue) {\n      &:hover,\n      &:focus-within {\n        z-index: 2;\n      }\n    }\n\n    // Strip left radius for items after the first\n    #{ $prefix }__item:not(:first-child) {\n      margin-left: -#{ $overlap }; // Use resolved overlap width\n\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-left-radius: 0;\n        border-bottom-left-radius: 0;\n      }\n    }\n\n    // Strip right radius for items before the last\n    #{ $prefix }__item:not(:last-child) {\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-right-radius: 0;\n        border-bottom-right-radius: 0;\n      }\n    }\n  }\n",
              "line": {
                "start": 64,
                "end": 165
              }
            }
          },
          {
            "description": "Prints component stylesheets\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"input-group\");\n  \n  $radius: get(\"border-radius\") or form-theme.get(\"input-border-radius\");\n  $border-info: utils.border-info(form-theme.get(\"input-border\"));\n  $overlap: get(\"overlap-margin\") or map.get($border-info, \"width\");\n  \n  $padding-y: get(\"item-padding-y\") or utils.get-spacing-top(button.get(\"padding\"));\n  $padding-x: get(\"item-padding-x\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: stretch;\n    max-width: 100%;\n    gap: get(\"gap\");\n  }\n\n  #{ $prefix }__item {\n    position: relative; // For z-index management\n    display: flex;\n    align-items: stretch;\n    flex: 0 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-item-min-width\", get(\"item-min-width\"));\n  }\n\n  #{ $prefix }__item--field {\n    flex: 1 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-field-min-width\", get(\"field-min-width\"));\n  }\n\n  #{ $prefix }__item--cue {\n    padding: $padding-y $padding-x;\n    align-items: center;\n    background-color: cssvar.use-ulu(\"input-group-cue-background\", get(\"cue-background-color\"));\n    border: form-theme.get(\"input-border\");\n    border-radius: $radius;\n    color: form-theme.get(\"color\");\n    line-height: typography.get(\"line-height-dense\");\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n  }\n\n  // Specificity overrides for internal elements\n  #{ $prefix } {\n    #{ $prefix }__input,\n    #{ $prefix }__button {\n      height: 100%;\n      margin: 0;\n      min-width: 0; \n      max-width: none;\n    }\n    \n    #{ $prefix }__input {\n      width: 100%;\n    }\n  }\n\n  // Removes internal border-radius and overlaps borders\n  #{ $prefix }--joined {\n    gap: 0;\n\n    // Remove default button padding when joined only\n    #{ $prefix }__button { \n      padding-left: $padding-x;\n      padding-right: $padding-x;\n      @if (get(\"joined-button-radius-match\")) {\n        border-radius: $radius;\n      }\n    }\n\n    // Interactive items pop to front (cues do not have focus/hover states)\n    #{ $prefix }__item:not(#{ $prefix }__item--cue) {\n      &:hover,\n      &:focus-within {\n        z-index: 2;\n      }\n    }\n\n    // Strip left radius for items after the first\n    #{ $prefix }__item:not(:first-child) {\n      margin-left: -#{ $overlap }; // Use resolved overlap width\n\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-left-radius: 0;\n        border-bottom-left-radius: 0;\n      }\n    }\n\n    // Strip right radius for items before the last\n    #{ $prefix }__item:not(:last-child) {\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-right-radius: 0;\n        border-bottom-right-radius: 0;\n      }\n    }\n  }\n",
              "line": {
                "start": 64,
                "end": 165
              }
            }
          },
          {
            "description": "Prints component stylesheets\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"input-group\");\n  \n  $radius: get(\"border-radius\") or form-theme.get(\"input-border-radius\");\n  $border-info: utils.border-info(form-theme.get(\"input-border\"));\n  $overlap: get(\"overlap-margin\") or map.get($border-info, \"width\");\n  \n  $padding-y: get(\"item-padding-y\") or utils.get-spacing-top(button.get(\"padding\"));\n  $padding-x: get(\"item-padding-x\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: stretch;\n    max-width: 100%;\n    gap: get(\"gap\");\n  }\n\n  #{ $prefix }__item {\n    position: relative; // For z-index management\n    display: flex;\n    align-items: stretch;\n    flex: 0 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-item-min-width\", get(\"item-min-width\"));\n  }\n\n  #{ $prefix }__item--field {\n    flex: 1 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-field-min-width\", get(\"field-min-width\"));\n  }\n\n  #{ $prefix }__item--cue {\n    padding: $padding-y $padding-x;\n    align-items: center;\n    background-color: cssvar.use-ulu(\"input-group-cue-background\", get(\"cue-background-color\"));\n    border: form-theme.get(\"input-border\");\n    border-radius: $radius;\n    color: form-theme.get(\"color\");\n    line-height: typography.get(\"line-height-dense\");\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n  }\n\n  // Specificity overrides for internal elements\n  #{ $prefix } {\n    #{ $prefix }__input,\n    #{ $prefix }__button {\n      height: 100%;\n      margin: 0;\n      min-width: 0; \n      max-width: none;\n    }\n    \n    #{ $prefix }__input {\n      width: 100%;\n    }\n  }\n\n  // Removes internal border-radius and overlaps borders\n  #{ $prefix }--joined {\n    gap: 0;\n\n    // Remove default button padding when joined only\n    #{ $prefix }__button { \n      padding-left: $padding-x;\n      padding-right: $padding-x;\n      @if (get(\"joined-button-radius-match\")) {\n        border-radius: $radius;\n      }\n    }\n\n    // Interactive items pop to front (cues do not have focus/hover states)\n    #{ $prefix }__item:not(#{ $prefix }__item--cue) {\n      &:hover,\n      &:focus-within {\n        z-index: 2;\n      }\n    }\n\n    // Strip left radius for items after the first\n    #{ $prefix }__item:not(:first-child) {\n      margin-left: -#{ $overlap }; // Use resolved overlap width\n\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-left-radius: 0;\n        border-bottom-left-radius: 0;\n      }\n    }\n\n    // Strip right radius for items before the last\n    #{ $prefix }__item:not(:last-child) {\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-right-radius: 0;\n        border-bottom-right-radius: 0;\n      }\n    }\n  }\n",
              "line": {
                "start": 64,
                "end": 165
              }
            }
          },
          {
            "description": "Prints component stylesheets\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"input-group\");\n  \n  $radius: get(\"border-radius\") or form-theme.get(\"input-border-radius\");\n  $border-info: utils.border-info(form-theme.get(\"input-border\"));\n  $overlap: get(\"overlap-margin\") or map.get($border-info, \"width\");\n  \n  $padding-y: get(\"item-padding-y\") or utils.get-spacing-top(button.get(\"padding\"));\n  $padding-x: get(\"item-padding-x\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: stretch;\n    max-width: 100%;\n    gap: get(\"gap\");\n  }\n\n  #{ $prefix }__item {\n    position: relative; // For z-index management\n    display: flex;\n    align-items: stretch;\n    flex: 0 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-item-min-width\", get(\"item-min-width\"));\n  }\n\n  #{ $prefix }__item--field {\n    flex: 1 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-field-min-width\", get(\"field-min-width\"));\n  }\n\n  #{ $prefix }__item--cue {\n    padding: $padding-y $padding-x;\n    align-items: center;\n    background-color: cssvar.use-ulu(\"input-group-cue-background\", get(\"cue-background-color\"));\n    border: form-theme.get(\"input-border\");\n    border-radius: $radius;\n    color: form-theme.get(\"color\");\n    line-height: typography.get(\"line-height-dense\");\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n  }\n\n  // Specificity overrides for internal elements\n  #{ $prefix } {\n    #{ $prefix }__input,\n    #{ $prefix }__button {\n      height: 100%;\n      margin: 0;\n      min-width: 0; \n      max-width: none;\n    }\n    \n    #{ $prefix }__input {\n      width: 100%;\n    }\n  }\n\n  // Removes internal border-radius and overlaps borders\n  #{ $prefix }--joined {\n    gap: 0;\n\n    // Remove default button padding when joined only\n    #{ $prefix }__button { \n      padding-left: $padding-x;\n      padding-right: $padding-x;\n      @if (get(\"joined-button-radius-match\")) {\n        border-radius: $radius;\n      }\n    }\n\n    // Interactive items pop to front (cues do not have focus/hover states)\n    #{ $prefix }__item:not(#{ $prefix }__item--cue) {\n      &:hover,\n      &:focus-within {\n        z-index: 2;\n      }\n    }\n\n    // Strip left radius for items after the first\n    #{ $prefix }__item:not(:first-child) {\n      margin-left: -#{ $overlap }; // Use resolved overlap width\n\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-left-radius: 0;\n        border-bottom-left-radius: 0;\n      }\n    }\n\n    // Strip right radius for items before the last\n    #{ $prefix }__item:not(:last-child) {\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-right-radius: 0;\n        border-bottom-right-radius: 0;\n      }\n    }\n  }\n",
              "line": {
                "start": 64,
                "end": 165
              }
            }
          },
          {
            "description": "Prints component stylesheets\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"input-group\");\n  \n  $radius: get(\"border-radius\") or form-theme.get(\"input-border-radius\");\n  $border-info: utils.border-info(form-theme.get(\"input-border\"));\n  $overlap: get(\"overlap-margin\") or map.get($border-info, \"width\");\n  \n  $padding-y: get(\"item-padding-y\") or utils.get-spacing-top(button.get(\"padding\"));\n  $padding-x: get(\"item-padding-x\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: stretch;\n    max-width: 100%;\n    gap: get(\"gap\");\n  }\n\n  #{ $prefix }__item {\n    position: relative; // For z-index management\n    display: flex;\n    align-items: stretch;\n    flex: 0 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-item-min-width\", get(\"item-min-width\"));\n  }\n\n  #{ $prefix }__item--field {\n    flex: 1 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-field-min-width\", get(\"field-min-width\"));\n  }\n\n  #{ $prefix }__item--cue {\n    padding: $padding-y $padding-x;\n    align-items: center;\n    background-color: cssvar.use-ulu(\"input-group-cue-background\", get(\"cue-background-color\"));\n    border: form-theme.get(\"input-border\");\n    border-radius: $radius;\n    color: form-theme.get(\"color\");\n    line-height: typography.get(\"line-height-dense\");\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n  }\n\n  // Specificity overrides for internal elements\n  #{ $prefix } {\n    #{ $prefix }__input,\n    #{ $prefix }__button {\n      height: 100%;\n      margin: 0;\n      min-width: 0; \n      max-width: none;\n    }\n    \n    #{ $prefix }__input {\n      width: 100%;\n    }\n  }\n\n  // Removes internal border-radius and overlaps borders\n  #{ $prefix }--joined {\n    gap: 0;\n\n    // Remove default button padding when joined only\n    #{ $prefix }__button { \n      padding-left: $padding-x;\n      padding-right: $padding-x;\n      @if (get(\"joined-button-radius-match\")) {\n        border-radius: $radius;\n      }\n    }\n\n    // Interactive items pop to front (cues do not have focus/hover states)\n    #{ $prefix }__item:not(#{ $prefix }__item--cue) {\n      &:hover,\n      &:focus-within {\n        z-index: 2;\n      }\n    }\n\n    // Strip left radius for items after the first\n    #{ $prefix }__item:not(:first-child) {\n      margin-left: -#{ $overlap }; // Use resolved overlap width\n\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-left-radius: 0;\n        border-bottom-left-radius: 0;\n      }\n    }\n\n    // Strip right radius for items before the last\n    #{ $prefix }__item:not(:last-child) {\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-right-radius: 0;\n        border-bottom-right-radius: 0;\n      }\n    }\n  }\n",
              "line": {
                "start": 64,
                "end": 165
              }
            }
          },
          {
            "description": "Prints component stylesheets\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"input-group\");\n  \n  $radius: get(\"border-radius\") or form-theme.get(\"input-border-radius\");\n  $border-info: utils.border-info(form-theme.get(\"input-border\"));\n  $overlap: get(\"overlap-margin\") or map.get($border-info, \"width\");\n  \n  $padding-y: get(\"item-padding-y\") or utils.get-spacing-top(button.get(\"padding\"));\n  $padding-x: get(\"item-padding-x\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: stretch;\n    max-width: 100%;\n    gap: get(\"gap\");\n  }\n\n  #{ $prefix }__item {\n    position: relative; // For z-index management\n    display: flex;\n    align-items: stretch;\n    flex: 0 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-item-min-width\", get(\"item-min-width\"));\n  }\n\n  #{ $prefix }__item--field {\n    flex: 1 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-field-min-width\", get(\"field-min-width\"));\n  }\n\n  #{ $prefix }__item--cue {\n    padding: $padding-y $padding-x;\n    align-items: center;\n    background-color: cssvar.use-ulu(\"input-group-cue-background\", get(\"cue-background-color\"));\n    border: form-theme.get(\"input-border\");\n    border-radius: $radius;\n    color: form-theme.get(\"color\");\n    line-height: typography.get(\"line-height-dense\");\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n  }\n\n  // Specificity overrides for internal elements\n  #{ $prefix } {\n    #{ $prefix }__input,\n    #{ $prefix }__button {\n      height: 100%;\n      margin: 0;\n      min-width: 0; \n      max-width: none;\n    }\n    \n    #{ $prefix }__input {\n      width: 100%;\n    }\n  }\n\n  // Removes internal border-radius and overlaps borders\n  #{ $prefix }--joined {\n    gap: 0;\n\n    // Remove default button padding when joined only\n    #{ $prefix }__button { \n      padding-left: $padding-x;\n      padding-right: $padding-x;\n      @if (get(\"joined-button-radius-match\")) {\n        border-radius: $radius;\n      }\n    }\n\n    // Interactive items pop to front (cues do not have focus/hover states)\n    #{ $prefix }__item:not(#{ $prefix }__item--cue) {\n      &:hover,\n      &:focus-within {\n        z-index: 2;\n      }\n    }\n\n    // Strip left radius for items after the first\n    #{ $prefix }__item:not(:first-child) {\n      margin-left: -#{ $overlap }; // Use resolved overlap width\n\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-left-radius: 0;\n        border-bottom-left-radius: 0;\n      }\n    }\n\n    // Strip right radius for items before the last\n    #{ $prefix }__item:not(:last-child) {\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-right-radius: 0;\n        border-bottom-right-radius: 0;\n      }\n    }\n  }\n",
              "line": {
                "start": 64,
                "end": 165
              }
            }
          },
          {
            "description": "Prints component stylesheets\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"input-group\");\n  \n  $radius: get(\"border-radius\") or form-theme.get(\"input-border-radius\");\n  $border-info: utils.border-info(form-theme.get(\"input-border\"));\n  $overlap: get(\"overlap-margin\") or map.get($border-info, \"width\");\n  \n  $padding-y: get(\"item-padding-y\") or utils.get-spacing-top(button.get(\"padding\"));\n  $padding-x: get(\"item-padding-x\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: stretch;\n    max-width: 100%;\n    gap: get(\"gap\");\n  }\n\n  #{ $prefix }__item {\n    position: relative; // For z-index management\n    display: flex;\n    align-items: stretch;\n    flex: 0 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-item-min-width\", get(\"item-min-width\"));\n  }\n\n  #{ $prefix }__item--field {\n    flex: 1 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-field-min-width\", get(\"field-min-width\"));\n  }\n\n  #{ $prefix }__item--cue {\n    padding: $padding-y $padding-x;\n    align-items: center;\n    background-color: cssvar.use-ulu(\"input-group-cue-background\", get(\"cue-background-color\"));\n    border: form-theme.get(\"input-border\");\n    border-radius: $radius;\n    color: form-theme.get(\"color\");\n    line-height: typography.get(\"line-height-dense\");\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n  }\n\n  // Specificity overrides for internal elements\n  #{ $prefix } {\n    #{ $prefix }__input,\n    #{ $prefix }__button {\n      height: 100%;\n      margin: 0;\n      min-width: 0; \n      max-width: none;\n    }\n    \n    #{ $prefix }__input {\n      width: 100%;\n    }\n  }\n\n  // Removes internal border-radius and overlaps borders\n  #{ $prefix }--joined {\n    gap: 0;\n\n    // Remove default button padding when joined only\n    #{ $prefix }__button { \n      padding-left: $padding-x;\n      padding-right: $padding-x;\n      @if (get(\"joined-button-radius-match\")) {\n        border-radius: $radius;\n      }\n    }\n\n    // Interactive items pop to front (cues do not have focus/hover states)\n    #{ $prefix }__item:not(#{ $prefix }__item--cue) {\n      &:hover,\n      &:focus-within {\n        z-index: 2;\n      }\n    }\n\n    // Strip left radius for items after the first\n    #{ $prefix }__item:not(:first-child) {\n      margin-left: -#{ $overlap }; // Use resolved overlap width\n\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-left-radius: 0;\n        border-bottom-left-radius: 0;\n      }\n    }\n\n    // Strip right radius for items before the last\n    #{ $prefix }__item:not(:last-child) {\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-right-radius: 0;\n        border-bottom-right-radius: 0;\n      }\n    }\n  }\n",
              "line": {
                "start": 64,
                "end": 165
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"list-inline\");\n  $border: element.get-rule-style(get(\"rule-style\"));\n  \n  ul#{ $prefix },\n  #{ $prefix } ul {\n    list-style: none;\n    display: inline-flex;\n    flex-wrap: wrap;\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n  }\n  #{ $prefix } {\n    li {\n      // Not using flex gap because we would need to position\n      // pseudo for divider, so we would still need to use math\n      // So custom properties couldn't be used (no benefit)\n      padding-right: get(\"space-between\");\n      margin-right: get(\"space-between\");\n      border-right: $border;\n      &:last-child {\n        border-right: none;\n        padding-right: 0;\n        margin-right: 0;\n      }\n    }\n  }\n  #{ $prefix }--large-gap {\n    li {\n      padding-right: get(\"space-between-large\");\n      margin-right: get(\"space-between-large\");\n    }\n  }\n",
              "line": {
                "start": 48,
                "end": 80
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"list-inline\");\n  $border: element.get-rule-style(get(\"rule-style\"));\n  \n  ul#{ $prefix },\n  #{ $prefix } ul {\n    list-style: none;\n    display: inline-flex;\n    flex-wrap: wrap;\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n  }\n  #{ $prefix } {\n    li {\n      // Not using flex gap because we would need to position\n      // pseudo for divider, so we would still need to use math\n      // So custom properties couldn't be used (no benefit)\n      padding-right: get(\"space-between\");\n      margin-right: get(\"space-between\");\n      border-right: $border;\n      &:last-child {\n        border-right: none;\n        padding-right: 0;\n        margin-right: 0;\n      }\n    }\n  }\n  #{ $prefix }--large-gap {\n    li {\n      padding-right: get(\"space-between-large\");\n      margin-right: get(\"space-between-large\");\n    }\n  }\n",
              "line": {
                "start": 48,
                "end": 80
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"list-inline\");\n  $border: element.get-rule-style(get(\"rule-style\"));\n  \n  ul#{ $prefix },\n  #{ $prefix } ul {\n    list-style: none;\n    display: inline-flex;\n    flex-wrap: wrap;\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n  }\n  #{ $prefix } {\n    li {\n      // Not using flex gap because we would need to position\n      // pseudo for divider, so we would still need to use math\n      // So custom properties couldn't be used (no benefit)\n      padding-right: get(\"space-between\");\n      margin-right: get(\"space-between\");\n      border-right: $border;\n      &:last-child {\n        border-right: none;\n        padding-right: 0;\n        margin-right: 0;\n      }\n    }\n  }\n  #{ $prefix }--large-gap {\n    li {\n      padding-right: get(\"space-between-large\");\n      margin-right: get(\"space-between-large\");\n    }\n  }\n",
              "line": {
                "start": 48,
                "end": 80
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"list-inline\");\n  $border: element.get-rule-style(get(\"rule-style\"));\n  \n  ul#{ $prefix },\n  #{ $prefix } ul {\n    list-style: none;\n    display: inline-flex;\n    flex-wrap: wrap;\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n  }\n  #{ $prefix } {\n    li {\n      // Not using flex gap because we would need to position\n      // pseudo for divider, so we would still need to use math\n      // So custom properties couldn't be used (no benefit)\n      padding-right: get(\"space-between\");\n      margin-right: get(\"space-between\");\n      border-right: $border;\n      &:last-child {\n        border-right: none;\n        padding-right: 0;\n        margin-right: 0;\n      }\n    }\n  }\n  #{ $prefix }--large-gap {\n    li {\n      padding-right: get(\"space-between-large\");\n      margin-right: get(\"space-between-large\");\n    }\n  }\n",
              "line": {
                "start": 48,
                "end": 80
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"list-inline\");\n  $border: element.get-rule-style(get(\"rule-style\"));\n  \n  ul#{ $prefix },\n  #{ $prefix } ul {\n    list-style: none;\n    display: inline-flex;\n    flex-wrap: wrap;\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n  }\n  #{ $prefix } {\n    li {\n      // Not using flex gap because we would need to position\n      // pseudo for divider, so we would still need to use math\n      // So custom properties couldn't be used (no benefit)\n      padding-right: get(\"space-between\");\n      margin-right: get(\"space-between\");\n      border-right: $border;\n      &:last-child {\n        border-right: none;\n        padding-right: 0;\n        margin-right: 0;\n      }\n    }\n  }\n  #{ $prefix }--large-gap {\n    li {\n      padding-right: get(\"space-between-large\");\n      margin-right: get(\"space-between-large\");\n    }\n  }\n",
              "line": {
                "start": 48,
                "end": 80
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"list-inline\");\n  $border: element.get-rule-style(get(\"rule-style\"));\n  \n  ul#{ $prefix },\n  #{ $prefix } ul {\n    list-style: none;\n    display: inline-flex;\n    flex-wrap: wrap;\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n  }\n  #{ $prefix } {\n    li {\n      // Not using flex gap because we would need to position\n      // pseudo for divider, so we would still need to use math\n      // So custom properties couldn't be used (no benefit)\n      padding-right: get(\"space-between\");\n      margin-right: get(\"space-between\");\n      border-right: $border;\n      &:last-child {\n        border-right: none;\n        padding-right: 0;\n        margin-right: 0;\n      }\n    }\n  }\n  #{ $prefix }--large-gap {\n    li {\n      padding-right: get(\"space-between-large\");\n      margin-right: get(\"space-between-large\");\n    }\n  }\n",
              "line": {
                "start": 48,
                "end": 80
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"list-inline\");\n  $border: element.get-rule-style(get(\"rule-style\"));\n  \n  ul#{ $prefix },\n  #{ $prefix } ul {\n    list-style: none;\n    display: inline-flex;\n    flex-wrap: wrap;\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n  }\n  #{ $prefix } {\n    li {\n      // Not using flex gap because we would need to position\n      // pseudo for divider, so we would still need to use math\n      // So custom properties couldn't be used (no benefit)\n      padding-right: get(\"space-between\");\n      margin-right: get(\"space-between\");\n      border-right: $border;\n      &:last-child {\n        border-right: none;\n        padding-right: 0;\n        margin-right: 0;\n      }\n    }\n  }\n  #{ $prefix }--large-gap {\n    li {\n      padding-right: get(\"space-between-large\");\n      margin-right: get(\"space-between-large\");\n    }\n  }\n",
              "line": {
                "start": 48,
                "end": 80
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"list-lines\");\n  $border: element.get-rule-style(get(\"rule-style\"));\n\n  #{ $prefix } {\n    list-style: none;\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n    padding: 0;\n    @if (get(\"border-first\")) {\n      border-top: $border;\n    }\n    >li {\n      border-bottom: $border;\n      padding: get(\"padding-between\") 0;\n      >*:last-child {\n        margin-bottom: 0;\n      }\n      @if (not get(\"border-last\")) {\n        &:last-child {\n          border-bottom-width: 0;\n        }\n      }\n    }\n  }\n  #{ $prefix }--dense {\n    >li {\n      padding: get(\"dense-padding-between\") 0;\n      line-height: get(\"dense-line-height\");\n    }\n  }\n",
              "line": {
                "start": 65,
                "end": 95
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"list-lines\");\n  $border: element.get-rule-style(get(\"rule-style\"));\n\n  #{ $prefix } {\n    list-style: none;\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n    padding: 0;\n    @if (get(\"border-first\")) {\n      border-top: $border;\n    }\n    >li {\n      border-bottom: $border;\n      padding: get(\"padding-between\") 0;\n      >*:last-child {\n        margin-bottom: 0;\n      }\n      @if (not get(\"border-last\")) {\n        &:last-child {\n          border-bottom-width: 0;\n        }\n      }\n    }\n  }\n  #{ $prefix }--dense {\n    >li {\n      padding: get(\"dense-padding-between\") 0;\n      line-height: get(\"dense-line-height\");\n    }\n  }\n",
              "line": {
                "start": 65,
                "end": 95
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"list-lines\");\n  $border: element.get-rule-style(get(\"rule-style\"));\n\n  #{ $prefix } {\n    list-style: none;\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n    padding: 0;\n    @if (get(\"border-first\")) {\n      border-top: $border;\n    }\n    >li {\n      border-bottom: $border;\n      padding: get(\"padding-between\") 0;\n      >*:last-child {\n        margin-bottom: 0;\n      }\n      @if (not get(\"border-last\")) {\n        &:last-child {\n          border-bottom-width: 0;\n        }\n      }\n    }\n  }\n  #{ $prefix }--dense {\n    >li {\n      padding: get(\"dense-padding-between\") 0;\n      line-height: get(\"dense-line-height\");\n    }\n  }\n",
              "line": {
                "start": 65,
                "end": 95
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"list-lines\");\n  $border: element.get-rule-style(get(\"rule-style\"));\n\n  #{ $prefix } {\n    list-style: none;\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n    padding: 0;\n    @if (get(\"border-first\")) {\n      border-top: $border;\n    }\n    >li {\n      border-bottom: $border;\n      padding: get(\"padding-between\") 0;\n      >*:last-child {\n        margin-bottom: 0;\n      }\n      @if (not get(\"border-last\")) {\n        &:last-child {\n          border-bottom-width: 0;\n        }\n      }\n    }\n  }\n  #{ $prefix }--dense {\n    >li {\n      padding: get(\"dense-padding-between\") 0;\n      line-height: get(\"dense-line-height\");\n    }\n  }\n",
              "line": {
                "start": 65,
                "end": 95
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"list-lines\");\n  $border: element.get-rule-style(get(\"rule-style\"));\n\n  #{ $prefix } {\n    list-style: none;\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n    padding: 0;\n    @if (get(\"border-first\")) {\n      border-top: $border;\n    }\n    >li {\n      border-bottom: $border;\n      padding: get(\"padding-between\") 0;\n      >*:last-child {\n        margin-bottom: 0;\n      }\n      @if (not get(\"border-last\")) {\n        &:last-child {\n          border-bottom-width: 0;\n        }\n      }\n    }\n  }\n  #{ $prefix }--dense {\n    >li {\n      padding: get(\"dense-padding-between\") 0;\n      line-height: get(\"dense-line-height\");\n    }\n  }\n",
              "line": {
                "start": 65,
                "end": 95
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"list-lines\");\n  $border: element.get-rule-style(get(\"rule-style\"));\n\n  #{ $prefix } {\n    list-style: none;\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n    padding: 0;\n    @if (get(\"border-first\")) {\n      border-top: $border;\n    }\n    >li {\n      border-bottom: $border;\n      padding: get(\"padding-between\") 0;\n      >*:last-child {\n        margin-bottom: 0;\n      }\n      @if (not get(\"border-last\")) {\n        &:last-child {\n          border-bottom-width: 0;\n        }\n      }\n    }\n  }\n  #{ $prefix }--dense {\n    >li {\n      padding: get(\"dense-padding-between\") 0;\n      line-height: get(\"dense-line-height\");\n    }\n  }\n",
              "line": {
                "start": 65,
                "end": 95
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"list-lines\");\n  $border: element.get-rule-style(get(\"rule-style\"));\n\n  #{ $prefix } {\n    list-style: none;\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n    padding: 0;\n    @if (get(\"border-first\")) {\n      border-top: $border;\n    }\n    >li {\n      border-bottom: $border;\n      padding: get(\"padding-between\") 0;\n      >*:last-child {\n        margin-bottom: 0;\n      }\n      @if (not get(\"border-last\")) {\n        &:last-child {\n          border-bottom-width: 0;\n        }\n      }\n    }\n  }\n  #{ $prefix }--dense {\n    >li {\n      padding: get(\"dense-padding-between\") 0;\n      line-height: get(\"dense-line-height\");\n    }\n  }\n",
              "line": {
                "start": 65,
                "end": 95
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"list-lines\");\n  $border: element.get-rule-style(get(\"rule-style\"));\n\n  #{ $prefix } {\n    list-style: none;\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n    padding: 0;\n    @if (get(\"border-first\")) {\n      border-top: $border;\n    }\n    >li {\n      border-bottom: $border;\n      padding: get(\"padding-between\") 0;\n      >*:last-child {\n        margin-bottom: 0;\n      }\n      @if (not get(\"border-last\")) {\n        &:last-child {\n          border-bottom-width: 0;\n        }\n      }\n    }\n  }\n  #{ $prefix }--dense {\n    >li {\n      padding: get(\"dense-padding-between\") 0;\n      line-height: get(\"dense-line-height\");\n    }\n  }\n",
              "line": {
                "start": 65,
                "end": 95
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"list-unordered\");\n  #{ $prefix } {\n    @include element.styles-unordered-list();\n    li {\n      &::marker {\n        color: color.get(\"bullet\");\n      }\n    }\n  }\n",
              "line": {
                "start": 13,
                "end": 23
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
              "line": {
                "start": 181,
                "end": 438
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints modal component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
              "line": {
                "start": 165,
                "end": 593
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"nav-strip\");\n  #{ $prefix } {\n    max-width: 100%; // So ul will overflow\n  }\n  // Original thought to not limit to direct child\n  // auto is for when we don't have control over markup\n  // The list descendants will be selected that way but the list is\n  // currently selecting any list/list-item\n  #{ $prefix }__list,\n  #{ $prefix }--auto ul {\n    display: flex;\n    overflow-x: auto;\n    line-height: typography.get(\"line-height-dense\");\n    gap: get(\"margin-between\");\n    @include layout.remove-scrollbar();\n  }\n  #{ $prefix }__item,\n  #{ $prefix }--auto li {\n    // layout flex since items inside may not be the same height\n    display: flex;\n    align-items: flex-end;\n  }\n  \n  #{ $prefix }__link,\n  #{ $prefix }--auto li > a,\n  #{ $prefix }--auto li > button {\n    display: block;\n    color: color.get(get(\"color\"));\n    padding: get(\"padding-y\") get(\"padding-x\");\n    border-top: get(\"underline-size\") solid transparent;\n    border-bottom: get(\"underline-size\") solid transparent;\n    font-weight: get(\"font-weight\");\n    @if (get(\"nowrap\")) {\n      white-space: nowrap;\n    }\n    &:hover,\n    &:focus {\n      border-bottom-color: color.get(get(\"underline-color-hover\"));\n      color: color.get(get(\"color-hover\"));\n    }\n    #{ get(\"activeSelector\") } {\n      border-bottom-color: color.get(get(\"underline-color\"));\n      color: color.get(get(\"color-active\"));\n    }\n  }\n  \n  // Modifiers\n  #{ $prefix }--right {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }--center {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: center;\n    }\n  }\n  #{ $prefix }--rule {\n    position: relative;\n    &::after {\n      content: \"\";\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    }\n    #{ $prefix }__link,\n    &#{ $prefix }--auto li > a,\n    &#{ $prefix }--auto li > button {\n      position: relative;\n      z-index: 2;\n      margin-bottom: get(\"rule-offset\");\n      padding-top: get(\"padding-y-ruled\");\n      padding-bottom: get(\"padding-y-ruled\");\n    }\n  }\n",
              "line": {
                "start": 77,
                "end": 157
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"nav-strip\");\n  #{ $prefix } {\n    max-width: 100%; // So ul will overflow\n  }\n  // Original thought to not limit to direct child\n  // auto is for when we don't have control over markup\n  // The list descendants will be selected that way but the list is\n  // currently selecting any list/list-item\n  #{ $prefix }__list,\n  #{ $prefix }--auto ul {\n    display: flex;\n    overflow-x: auto;\n    line-height: typography.get(\"line-height-dense\");\n    gap: get(\"margin-between\");\n    @include layout.remove-scrollbar();\n  }\n  #{ $prefix }__item,\n  #{ $prefix }--auto li {\n    // layout flex since items inside may not be the same height\n    display: flex;\n    align-items: flex-end;\n  }\n  \n  #{ $prefix }__link,\n  #{ $prefix }--auto li > a,\n  #{ $prefix }--auto li > button {\n    display: block;\n    color: color.get(get(\"color\"));\n    padding: get(\"padding-y\") get(\"padding-x\");\n    border-top: get(\"underline-size\") solid transparent;\n    border-bottom: get(\"underline-size\") solid transparent;\n    font-weight: get(\"font-weight\");\n    @if (get(\"nowrap\")) {\n      white-space: nowrap;\n    }\n    &:hover,\n    &:focus {\n      border-bottom-color: color.get(get(\"underline-color-hover\"));\n      color: color.get(get(\"color-hover\"));\n    }\n    #{ get(\"activeSelector\") } {\n      border-bottom-color: color.get(get(\"underline-color\"));\n      color: color.get(get(\"color-active\"));\n    }\n  }\n  \n  // Modifiers\n  #{ $prefix }--right {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }--center {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: center;\n    }\n  }\n  #{ $prefix }--rule {\n    position: relative;\n    &::after {\n      content: \"\";\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    }\n    #{ $prefix }__link,\n    &#{ $prefix }--auto li > a,\n    &#{ $prefix }--auto li > button {\n      position: relative;\n      z-index: 2;\n      margin-bottom: get(\"rule-offset\");\n      padding-top: get(\"padding-y-ruled\");\n      padding-bottom: get(\"padding-y-ruled\");\n    }\n  }\n",
              "line": {
                "start": 77,
                "end": 157
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"nav-strip\");\n  #{ $prefix } {\n    max-width: 100%; // So ul will overflow\n  }\n  // Original thought to not limit to direct child\n  // auto is for when we don't have control over markup\n  // The list descendants will be selected that way but the list is\n  // currently selecting any list/list-item\n  #{ $prefix }__list,\n  #{ $prefix }--auto ul {\n    display: flex;\n    overflow-x: auto;\n    line-height: typography.get(\"line-height-dense\");\n    gap: get(\"margin-between\");\n    @include layout.remove-scrollbar();\n  }\n  #{ $prefix }__item,\n  #{ $prefix }--auto li {\n    // layout flex since items inside may not be the same height\n    display: flex;\n    align-items: flex-end;\n  }\n  \n  #{ $prefix }__link,\n  #{ $prefix }--auto li > a,\n  #{ $prefix }--auto li > button {\n    display: block;\n    color: color.get(get(\"color\"));\n    padding: get(\"padding-y\") get(\"padding-x\");\n    border-top: get(\"underline-size\") solid transparent;\n    border-bottom: get(\"underline-size\") solid transparent;\n    font-weight: get(\"font-weight\");\n    @if (get(\"nowrap\")) {\n      white-space: nowrap;\n    }\n    &:hover,\n    &:focus {\n      border-bottom-color: color.get(get(\"underline-color-hover\"));\n      color: color.get(get(\"color-hover\"));\n    }\n    #{ get(\"activeSelector\") } {\n      border-bottom-color: color.get(get(\"underline-color\"));\n      color: color.get(get(\"color-active\"));\n    }\n  }\n  \n  // Modifiers\n  #{ $prefix }--right {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }--center {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: center;\n    }\n  }\n  #{ $prefix }--rule {\n    position: relative;\n    &::after {\n      content: \"\";\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    }\n    #{ $prefix }__link,\n    &#{ $prefix }--auto li > a,\n    &#{ $prefix }--auto li > button {\n      position: relative;\n      z-index: 2;\n      margin-bottom: get(\"rule-offset\");\n      padding-top: get(\"padding-y-ruled\");\n      padding-bottom: get(\"padding-y-ruled\");\n    }\n  }\n",
              "line": {
                "start": 77,
                "end": 157
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"nav-strip\");\n  #{ $prefix } {\n    max-width: 100%; // So ul will overflow\n  }\n  // Original thought to not limit to direct child\n  // auto is for when we don't have control over markup\n  // The list descendants will be selected that way but the list is\n  // currently selecting any list/list-item\n  #{ $prefix }__list,\n  #{ $prefix }--auto ul {\n    display: flex;\n    overflow-x: auto;\n    line-height: typography.get(\"line-height-dense\");\n    gap: get(\"margin-between\");\n    @include layout.remove-scrollbar();\n  }\n  #{ $prefix }__item,\n  #{ $prefix }--auto li {\n    // layout flex since items inside may not be the same height\n    display: flex;\n    align-items: flex-end;\n  }\n  \n  #{ $prefix }__link,\n  #{ $prefix }--auto li > a,\n  #{ $prefix }--auto li > button {\n    display: block;\n    color: color.get(get(\"color\"));\n    padding: get(\"padding-y\") get(\"padding-x\");\n    border-top: get(\"underline-size\") solid transparent;\n    border-bottom: get(\"underline-size\") solid transparent;\n    font-weight: get(\"font-weight\");\n    @if (get(\"nowrap\")) {\n      white-space: nowrap;\n    }\n    &:hover,\n    &:focus {\n      border-bottom-color: color.get(get(\"underline-color-hover\"));\n      color: color.get(get(\"color-hover\"));\n    }\n    #{ get(\"activeSelector\") } {\n      border-bottom-color: color.get(get(\"underline-color\"));\n      color: color.get(get(\"color-active\"));\n    }\n  }\n  \n  // Modifiers\n  #{ $prefix }--right {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }--center {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: center;\n    }\n  }\n  #{ $prefix }--rule {\n    position: relative;\n    &::after {\n      content: \"\";\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    }\n    #{ $prefix }__link,\n    &#{ $prefix }--auto li > a,\n    &#{ $prefix }--auto li > button {\n      position: relative;\n      z-index: 2;\n      margin-bottom: get(\"rule-offset\");\n      padding-top: get(\"padding-y-ruled\");\n      padding-bottom: get(\"padding-y-ruled\");\n    }\n  }\n",
              "line": {
                "start": 77,
                "end": 157
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"nav-strip\");\n  #{ $prefix } {\n    max-width: 100%; // So ul will overflow\n  }\n  // Original thought to not limit to direct child\n  // auto is for when we don't have control over markup\n  // The list descendants will be selected that way but the list is\n  // currently selecting any list/list-item\n  #{ $prefix }__list,\n  #{ $prefix }--auto ul {\n    display: flex;\n    overflow-x: auto;\n    line-height: typography.get(\"line-height-dense\");\n    gap: get(\"margin-between\");\n    @include layout.remove-scrollbar();\n  }\n  #{ $prefix }__item,\n  #{ $prefix }--auto li {\n    // layout flex since items inside may not be the same height\n    display: flex;\n    align-items: flex-end;\n  }\n  \n  #{ $prefix }__link,\n  #{ $prefix }--auto li > a,\n  #{ $prefix }--auto li > button {\n    display: block;\n    color: color.get(get(\"color\"));\n    padding: get(\"padding-y\") get(\"padding-x\");\n    border-top: get(\"underline-size\") solid transparent;\n    border-bottom: get(\"underline-size\") solid transparent;\n    font-weight: get(\"font-weight\");\n    @if (get(\"nowrap\")) {\n      white-space: nowrap;\n    }\n    &:hover,\n    &:focus {\n      border-bottom-color: color.get(get(\"underline-color-hover\"));\n      color: color.get(get(\"color-hover\"));\n    }\n    #{ get(\"activeSelector\") } {\n      border-bottom-color: color.get(get(\"underline-color\"));\n      color: color.get(get(\"color-active\"));\n    }\n  }\n  \n  // Modifiers\n  #{ $prefix }--right {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }--center {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: center;\n    }\n  }\n  #{ $prefix }--rule {\n    position: relative;\n    &::after {\n      content: \"\";\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    }\n    #{ $prefix }__link,\n    &#{ $prefix }--auto li > a,\n    &#{ $prefix }--auto li > button {\n      position: relative;\n      z-index: 2;\n      margin-bottom: get(\"rule-offset\");\n      padding-top: get(\"padding-y-ruled\");\n      padding-bottom: get(\"padding-y-ruled\");\n    }\n  }\n",
              "line": {
                "start": 77,
                "end": 157
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"nav-strip\");\n  #{ $prefix } {\n    max-width: 100%; // So ul will overflow\n  }\n  // Original thought to not limit to direct child\n  // auto is for when we don't have control over markup\n  // The list descendants will be selected that way but the list is\n  // currently selecting any list/list-item\n  #{ $prefix }__list,\n  #{ $prefix }--auto ul {\n    display: flex;\n    overflow-x: auto;\n    line-height: typography.get(\"line-height-dense\");\n    gap: get(\"margin-between\");\n    @include layout.remove-scrollbar();\n  }\n  #{ $prefix }__item,\n  #{ $prefix }--auto li {\n    // layout flex since items inside may not be the same height\n    display: flex;\n    align-items: flex-end;\n  }\n  \n  #{ $prefix }__link,\n  #{ $prefix }--auto li > a,\n  #{ $prefix }--auto li > button {\n    display: block;\n    color: color.get(get(\"color\"));\n    padding: get(\"padding-y\") get(\"padding-x\");\n    border-top: get(\"underline-size\") solid transparent;\n    border-bottom: get(\"underline-size\") solid transparent;\n    font-weight: get(\"font-weight\");\n    @if (get(\"nowrap\")) {\n      white-space: nowrap;\n    }\n    &:hover,\n    &:focus {\n      border-bottom-color: color.get(get(\"underline-color-hover\"));\n      color: color.get(get(\"color-hover\"));\n    }\n    #{ get(\"activeSelector\") } {\n      border-bottom-color: color.get(get(\"underline-color\"));\n      color: color.get(get(\"color-active\"));\n    }\n  }\n  \n  // Modifiers\n  #{ $prefix }--right {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }--center {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: center;\n    }\n  }\n  #{ $prefix }--rule {\n    position: relative;\n    &::after {\n      content: \"\";\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    }\n    #{ $prefix }__link,\n    &#{ $prefix }--auto li > a,\n    &#{ $prefix }--auto li > button {\n      position: relative;\n      z-index: 2;\n      margin-bottom: get(\"rule-offset\");\n      padding-top: get(\"padding-y-ruled\");\n      padding-bottom: get(\"padding-y-ruled\");\n    }\n  }\n",
              "line": {
                "start": 77,
                "end": 157
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"nav-strip\");\n  #{ $prefix } {\n    max-width: 100%; // So ul will overflow\n  }\n  // Original thought to not limit to direct child\n  // auto is for when we don't have control over markup\n  // The list descendants will be selected that way but the list is\n  // currently selecting any list/list-item\n  #{ $prefix }__list,\n  #{ $prefix }--auto ul {\n    display: flex;\n    overflow-x: auto;\n    line-height: typography.get(\"line-height-dense\");\n    gap: get(\"margin-between\");\n    @include layout.remove-scrollbar();\n  }\n  #{ $prefix }__item,\n  #{ $prefix }--auto li {\n    // layout flex since items inside may not be the same height\n    display: flex;\n    align-items: flex-end;\n  }\n  \n  #{ $prefix }__link,\n  #{ $prefix }--auto li > a,\n  #{ $prefix }--auto li > button {\n    display: block;\n    color: color.get(get(\"color\"));\n    padding: get(\"padding-y\") get(\"padding-x\");\n    border-top: get(\"underline-size\") solid transparent;\n    border-bottom: get(\"underline-size\") solid transparent;\n    font-weight: get(\"font-weight\");\n    @if (get(\"nowrap\")) {\n      white-space: nowrap;\n    }\n    &:hover,\n    &:focus {\n      border-bottom-color: color.get(get(\"underline-color-hover\"));\n      color: color.get(get(\"color-hover\"));\n    }\n    #{ get(\"activeSelector\") } {\n      border-bottom-color: color.get(get(\"underline-color\"));\n      color: color.get(get(\"color-active\"));\n    }\n  }\n  \n  // Modifiers\n  #{ $prefix }--right {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }--center {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: center;\n    }\n  }\n  #{ $prefix }--rule {\n    position: relative;\n    &::after {\n      content: \"\";\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    }\n    #{ $prefix }__link,\n    &#{ $prefix }--auto li > a,\n    &#{ $prefix }--auto li > button {\n      position: relative;\n      z-index: 2;\n      margin-bottom: get(\"rule-offset\");\n      padding-top: get(\"padding-y-ruled\");\n      padding-bottom: get(\"padding-y-ruled\");\n    }\n  }\n",
              "line": {
                "start": 77,
                "end": 157
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"nav-strip\");\n  #{ $prefix } {\n    max-width: 100%; // So ul will overflow\n  }\n  // Original thought to not limit to direct child\n  // auto is for when we don't have control over markup\n  // The list descendants will be selected that way but the list is\n  // currently selecting any list/list-item\n  #{ $prefix }__list,\n  #{ $prefix }--auto ul {\n    display: flex;\n    overflow-x: auto;\n    line-height: typography.get(\"line-height-dense\");\n    gap: get(\"margin-between\");\n    @include layout.remove-scrollbar();\n  }\n  #{ $prefix }__item,\n  #{ $prefix }--auto li {\n    // layout flex since items inside may not be the same height\n    display: flex;\n    align-items: flex-end;\n  }\n  \n  #{ $prefix }__link,\n  #{ $prefix }--auto li > a,\n  #{ $prefix }--auto li > button {\n    display: block;\n    color: color.get(get(\"color\"));\n    padding: get(\"padding-y\") get(\"padding-x\");\n    border-top: get(\"underline-size\") solid transparent;\n    border-bottom: get(\"underline-size\") solid transparent;\n    font-weight: get(\"font-weight\");\n    @if (get(\"nowrap\")) {\n      white-space: nowrap;\n    }\n    &:hover,\n    &:focus {\n      border-bottom-color: color.get(get(\"underline-color-hover\"));\n      color: color.get(get(\"color-hover\"));\n    }\n    #{ get(\"activeSelector\") } {\n      border-bottom-color: color.get(get(\"underline-color\"));\n      color: color.get(get(\"color-active\"));\n    }\n  }\n  \n  // Modifiers\n  #{ $prefix }--right {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }--center {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: center;\n    }\n  }\n  #{ $prefix }--rule {\n    position: relative;\n    &::after {\n      content: \"\";\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    }\n    #{ $prefix }__link,\n    &#{ $prefix }--auto li > a,\n    &#{ $prefix }--auto li > button {\n      position: relative;\n      z-index: 2;\n      margin-bottom: get(\"rule-offset\");\n      padding-top: get(\"padding-y-ruled\");\n      padding-bottom: get(\"padding-y-ruled\");\n    }\n  }\n",
              "line": {
                "start": 77,
                "end": 157
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"nav-strip\");\n  #{ $prefix } {\n    max-width: 100%; // So ul will overflow\n  }\n  // Original thought to not limit to direct child\n  // auto is for when we don't have control over markup\n  // The list descendants will be selected that way but the list is\n  // currently selecting any list/list-item\n  #{ $prefix }__list,\n  #{ $prefix }--auto ul {\n    display: flex;\n    overflow-x: auto;\n    line-height: typography.get(\"line-height-dense\");\n    gap: get(\"margin-between\");\n    @include layout.remove-scrollbar();\n  }\n  #{ $prefix }__item,\n  #{ $prefix }--auto li {\n    // layout flex since items inside may not be the same height\n    display: flex;\n    align-items: flex-end;\n  }\n  \n  #{ $prefix }__link,\n  #{ $prefix }--auto li > a,\n  #{ $prefix }--auto li > button {\n    display: block;\n    color: color.get(get(\"color\"));\n    padding: get(\"padding-y\") get(\"padding-x\");\n    border-top: get(\"underline-size\") solid transparent;\n    border-bottom: get(\"underline-size\") solid transparent;\n    font-weight: get(\"font-weight\");\n    @if (get(\"nowrap\")) {\n      white-space: nowrap;\n    }\n    &:hover,\n    &:focus {\n      border-bottom-color: color.get(get(\"underline-color-hover\"));\n      color: color.get(get(\"color-hover\"));\n    }\n    #{ get(\"activeSelector\") } {\n      border-bottom-color: color.get(get(\"underline-color\"));\n      color: color.get(get(\"color-active\"));\n    }\n  }\n  \n  // Modifiers\n  #{ $prefix }--right {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }--center {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: center;\n    }\n  }\n  #{ $prefix }--rule {\n    position: relative;\n    &::after {\n      content: \"\";\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    }\n    #{ $prefix }__link,\n    &#{ $prefix }--auto li > a,\n    &#{ $prefix }--auto li > button {\n      position: relative;\n      z-index: 2;\n      margin-bottom: get(\"rule-offset\");\n      padding-top: get(\"padding-y-ruled\");\n      padding-bottom: get(\"padding-y-ruled\");\n    }\n  }\n",
              "line": {
                "start": 77,
                "end": 157
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"nav-strip\");\n  #{ $prefix } {\n    max-width: 100%; // So ul will overflow\n  }\n  // Original thought to not limit to direct child\n  // auto is for when we don't have control over markup\n  // The list descendants will be selected that way but the list is\n  // currently selecting any list/list-item\n  #{ $prefix }__list,\n  #{ $prefix }--auto ul {\n    display: flex;\n    overflow-x: auto;\n    line-height: typography.get(\"line-height-dense\");\n    gap: get(\"margin-between\");\n    @include layout.remove-scrollbar();\n  }\n  #{ $prefix }__item,\n  #{ $prefix }--auto li {\n    // layout flex since items inside may not be the same height\n    display: flex;\n    align-items: flex-end;\n  }\n  \n  #{ $prefix }__link,\n  #{ $prefix }--auto li > a,\n  #{ $prefix }--auto li > button {\n    display: block;\n    color: color.get(get(\"color\"));\n    padding: get(\"padding-y\") get(\"padding-x\");\n    border-top: get(\"underline-size\") solid transparent;\n    border-bottom: get(\"underline-size\") solid transparent;\n    font-weight: get(\"font-weight\");\n    @if (get(\"nowrap\")) {\n      white-space: nowrap;\n    }\n    &:hover,\n    &:focus {\n      border-bottom-color: color.get(get(\"underline-color-hover\"));\n      color: color.get(get(\"color-hover\"));\n    }\n    #{ get(\"activeSelector\") } {\n      border-bottom-color: color.get(get(\"underline-color\"));\n      color: color.get(get(\"color-active\"));\n    }\n  }\n  \n  // Modifiers\n  #{ $prefix }--right {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }--center {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: center;\n    }\n  }\n  #{ $prefix }--rule {\n    position: relative;\n    &::after {\n      content: \"\";\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    }\n    #{ $prefix }__link,\n    &#{ $prefix }--auto li > a,\n    &#{ $prefix }--auto li > button {\n      position: relative;\n      z-index: 2;\n      margin-bottom: get(\"rule-offset\");\n      padding-top: get(\"padding-y-ruled\");\n      padding-bottom: get(\"padding-y-ruled\");\n    }\n  }\n",
              "line": {
                "start": 77,
                "end": 157
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"nav-strip\");\n  #{ $prefix } {\n    max-width: 100%; // So ul will overflow\n  }\n  // Original thought to not limit to direct child\n  // auto is for when we don't have control over markup\n  // The list descendants will be selected that way but the list is\n  // currently selecting any list/list-item\n  #{ $prefix }__list,\n  #{ $prefix }--auto ul {\n    display: flex;\n    overflow-x: auto;\n    line-height: typography.get(\"line-height-dense\");\n    gap: get(\"margin-between\");\n    @include layout.remove-scrollbar();\n  }\n  #{ $prefix }__item,\n  #{ $prefix }--auto li {\n    // layout flex since items inside may not be the same height\n    display: flex;\n    align-items: flex-end;\n  }\n  \n  #{ $prefix }__link,\n  #{ $prefix }--auto li > a,\n  #{ $prefix }--auto li > button {\n    display: block;\n    color: color.get(get(\"color\"));\n    padding: get(\"padding-y\") get(\"padding-x\");\n    border-top: get(\"underline-size\") solid transparent;\n    border-bottom: get(\"underline-size\") solid transparent;\n    font-weight: get(\"font-weight\");\n    @if (get(\"nowrap\")) {\n      white-space: nowrap;\n    }\n    &:hover,\n    &:focus {\n      border-bottom-color: color.get(get(\"underline-color-hover\"));\n      color: color.get(get(\"color-hover\"));\n    }\n    #{ get(\"activeSelector\") } {\n      border-bottom-color: color.get(get(\"underline-color\"));\n      color: color.get(get(\"color-active\"));\n    }\n  }\n  \n  // Modifiers\n  #{ $prefix }--right {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }--center {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: center;\n    }\n  }\n  #{ $prefix }--rule {\n    position: relative;\n    &::after {\n      content: \"\";\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    }\n    #{ $prefix }__link,\n    &#{ $prefix }--auto li > a,\n    &#{ $prefix }--auto li > button {\n      position: relative;\n      z-index: 2;\n      margin-bottom: get(\"rule-offset\");\n      padding-top: get(\"padding-y-ruled\");\n      padding-bottom: get(\"padding-y-ruled\");\n    }\n  }\n",
              "line": {
                "start": 77,
                "end": 157
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"nav-strip\");\n  #{ $prefix } {\n    max-width: 100%; // So ul will overflow\n  }\n  // Original thought to not limit to direct child\n  // auto is for when we don't have control over markup\n  // The list descendants will be selected that way but the list is\n  // currently selecting any list/list-item\n  #{ $prefix }__list,\n  #{ $prefix }--auto ul {\n    display: flex;\n    overflow-x: auto;\n    line-height: typography.get(\"line-height-dense\");\n    gap: get(\"margin-between\");\n    @include layout.remove-scrollbar();\n  }\n  #{ $prefix }__item,\n  #{ $prefix }--auto li {\n    // layout flex since items inside may not be the same height\n    display: flex;\n    align-items: flex-end;\n  }\n  \n  #{ $prefix }__link,\n  #{ $prefix }--auto li > a,\n  #{ $prefix }--auto li > button {\n    display: block;\n    color: color.get(get(\"color\"));\n    padding: get(\"padding-y\") get(\"padding-x\");\n    border-top: get(\"underline-size\") solid transparent;\n    border-bottom: get(\"underline-size\") solid transparent;\n    font-weight: get(\"font-weight\");\n    @if (get(\"nowrap\")) {\n      white-space: nowrap;\n    }\n    &:hover,\n    &:focus {\n      border-bottom-color: color.get(get(\"underline-color-hover\"));\n      color: color.get(get(\"color-hover\"));\n    }\n    #{ get(\"activeSelector\") } {\n      border-bottom-color: color.get(get(\"underline-color\"));\n      color: color.get(get(\"color-active\"));\n    }\n  }\n  \n  // Modifiers\n  #{ $prefix }--right {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }--center {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: center;\n    }\n  }\n  #{ $prefix }--rule {\n    position: relative;\n    &::after {\n      content: \"\";\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    }\n    #{ $prefix }__link,\n    &#{ $prefix }--auto li > a,\n    &#{ $prefix }--auto li > button {\n      position: relative;\n      z-index: 2;\n      margin-bottom: get(\"rule-offset\");\n      padding-top: get(\"padding-y-ruled\");\n      padding-bottom: get(\"padding-y-ruled\");\n    }\n  }\n",
              "line": {
                "start": 77,
                "end": 157
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"nav-strip\");\n  #{ $prefix } {\n    max-width: 100%; // So ul will overflow\n  }\n  // Original thought to not limit to direct child\n  // auto is for when we don't have control over markup\n  // The list descendants will be selected that way but the list is\n  // currently selecting any list/list-item\n  #{ $prefix }__list,\n  #{ $prefix }--auto ul {\n    display: flex;\n    overflow-x: auto;\n    line-height: typography.get(\"line-height-dense\");\n    gap: get(\"margin-between\");\n    @include layout.remove-scrollbar();\n  }\n  #{ $prefix }__item,\n  #{ $prefix }--auto li {\n    // layout flex since items inside may not be the same height\n    display: flex;\n    align-items: flex-end;\n  }\n  \n  #{ $prefix }__link,\n  #{ $prefix }--auto li > a,\n  #{ $prefix }--auto li > button {\n    display: block;\n    color: color.get(get(\"color\"));\n    padding: get(\"padding-y\") get(\"padding-x\");\n    border-top: get(\"underline-size\") solid transparent;\n    border-bottom: get(\"underline-size\") solid transparent;\n    font-weight: get(\"font-weight\");\n    @if (get(\"nowrap\")) {\n      white-space: nowrap;\n    }\n    &:hover,\n    &:focus {\n      border-bottom-color: color.get(get(\"underline-color-hover\"));\n      color: color.get(get(\"color-hover\"));\n    }\n    #{ get(\"activeSelector\") } {\n      border-bottom-color: color.get(get(\"underline-color\"));\n      color: color.get(get(\"color-active\"));\n    }\n  }\n  \n  // Modifiers\n  #{ $prefix }--right {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }--center {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: center;\n    }\n  }\n  #{ $prefix }--rule {\n    position: relative;\n    &::after {\n      content: \"\";\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    }\n    #{ $prefix }__link,\n    &#{ $prefix }--auto li > a,\n    &#{ $prefix }--auto li > button {\n      position: relative;\n      z-index: 2;\n      margin-bottom: get(\"rule-offset\");\n      padding-top: get(\"padding-y-ruled\");\n      padding-bottom: get(\"padding-y-ruled\");\n    }\n  }\n",
              "line": {
                "start": 77,
                "end": 157
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"nav-strip\");\n  #{ $prefix } {\n    max-width: 100%; // So ul will overflow\n  }\n  // Original thought to not limit to direct child\n  // auto is for when we don't have control over markup\n  // The list descendants will be selected that way but the list is\n  // currently selecting any list/list-item\n  #{ $prefix }__list,\n  #{ $prefix }--auto ul {\n    display: flex;\n    overflow-x: auto;\n    line-height: typography.get(\"line-height-dense\");\n    gap: get(\"margin-between\");\n    @include layout.remove-scrollbar();\n  }\n  #{ $prefix }__item,\n  #{ $prefix }--auto li {\n    // layout flex since items inside may not be the same height\n    display: flex;\n    align-items: flex-end;\n  }\n  \n  #{ $prefix }__link,\n  #{ $prefix }--auto li > a,\n  #{ $prefix }--auto li > button {\n    display: block;\n    color: color.get(get(\"color\"));\n    padding: get(\"padding-y\") get(\"padding-x\");\n    border-top: get(\"underline-size\") solid transparent;\n    border-bottom: get(\"underline-size\") solid transparent;\n    font-weight: get(\"font-weight\");\n    @if (get(\"nowrap\")) {\n      white-space: nowrap;\n    }\n    &:hover,\n    &:focus {\n      border-bottom-color: color.get(get(\"underline-color-hover\"));\n      color: color.get(get(\"color-hover\"));\n    }\n    #{ get(\"activeSelector\") } {\n      border-bottom-color: color.get(get(\"underline-color\"));\n      color: color.get(get(\"color-active\"));\n    }\n  }\n  \n  // Modifiers\n  #{ $prefix }--right {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }--center {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: center;\n    }\n  }\n  #{ $prefix }--rule {\n    position: relative;\n    &::after {\n      content: \"\";\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    }\n    #{ $prefix }__link,\n    &#{ $prefix }--auto li > a,\n    &#{ $prefix }--auto li > button {\n      position: relative;\n      z-index: 2;\n      margin-bottom: get(\"rule-offset\");\n      padding-top: get(\"padding-y-ruled\");\n      padding-bottom: get(\"padding-y-ruled\");\n    }\n  }\n",
              "line": {
                "start": 77,
                "end": 157
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"nav-strip\");\n  #{ $prefix } {\n    max-width: 100%; // So ul will overflow\n  }\n  // Original thought to not limit to direct child\n  // auto is for when we don't have control over markup\n  // The list descendants will be selected that way but the list is\n  // currently selecting any list/list-item\n  #{ $prefix }__list,\n  #{ $prefix }--auto ul {\n    display: flex;\n    overflow-x: auto;\n    line-height: typography.get(\"line-height-dense\");\n    gap: get(\"margin-between\");\n    @include layout.remove-scrollbar();\n  }\n  #{ $prefix }__item,\n  #{ $prefix }--auto li {\n    // layout flex since items inside may not be the same height\n    display: flex;\n    align-items: flex-end;\n  }\n  \n  #{ $prefix }__link,\n  #{ $prefix }--auto li > a,\n  #{ $prefix }--auto li > button {\n    display: block;\n    color: color.get(get(\"color\"));\n    padding: get(\"padding-y\") get(\"padding-x\");\n    border-top: get(\"underline-size\") solid transparent;\n    border-bottom: get(\"underline-size\") solid transparent;\n    font-weight: get(\"font-weight\");\n    @if (get(\"nowrap\")) {\n      white-space: nowrap;\n    }\n    &:hover,\n    &:focus {\n      border-bottom-color: color.get(get(\"underline-color-hover\"));\n      color: color.get(get(\"color-hover\"));\n    }\n    #{ get(\"activeSelector\") } {\n      border-bottom-color: color.get(get(\"underline-color\"));\n      color: color.get(get(\"color-active\"));\n    }\n  }\n  \n  // Modifiers\n  #{ $prefix }--right {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }--center {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: center;\n    }\n  }\n  #{ $prefix }--rule {\n    position: relative;\n    &::after {\n      content: \"\";\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    }\n    #{ $prefix }__link,\n    &#{ $prefix }--auto li > a,\n    &#{ $prefix }--auto li > button {\n      position: relative;\n      z-index: 2;\n      margin-bottom: get(\"rule-offset\");\n      padding-top: get(\"padding-y-ruled\");\n      padding-bottom: get(\"padding-y-ruled\");\n    }\n  }\n",
              "line": {
                "start": 77,
                "end": 157
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"nav-strip\");\n  #{ $prefix } {\n    max-width: 100%; // So ul will overflow\n  }\n  // Original thought to not limit to direct child\n  // auto is for when we don't have control over markup\n  // The list descendants will be selected that way but the list is\n  // currently selecting any list/list-item\n  #{ $prefix }__list,\n  #{ $prefix }--auto ul {\n    display: flex;\n    overflow-x: auto;\n    line-height: typography.get(\"line-height-dense\");\n    gap: get(\"margin-between\");\n    @include layout.remove-scrollbar();\n  }\n  #{ $prefix }__item,\n  #{ $prefix }--auto li {\n    // layout flex since items inside may not be the same height\n    display: flex;\n    align-items: flex-end;\n  }\n  \n  #{ $prefix }__link,\n  #{ $prefix }--auto li > a,\n  #{ $prefix }--auto li > button {\n    display: block;\n    color: color.get(get(\"color\"));\n    padding: get(\"padding-y\") get(\"padding-x\");\n    border-top: get(\"underline-size\") solid transparent;\n    border-bottom: get(\"underline-size\") solid transparent;\n    font-weight: get(\"font-weight\");\n    @if (get(\"nowrap\")) {\n      white-space: nowrap;\n    }\n    &:hover,\n    &:focus {\n      border-bottom-color: color.get(get(\"underline-color-hover\"));\n      color: color.get(get(\"color-hover\"));\n    }\n    #{ get(\"activeSelector\") } {\n      border-bottom-color: color.get(get(\"underline-color\"));\n      color: color.get(get(\"color-active\"));\n    }\n  }\n  \n  // Modifiers\n  #{ $prefix }--right {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }--center {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: center;\n    }\n  }\n  #{ $prefix }--rule {\n    position: relative;\n    &::after {\n      content: \"\";\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    }\n    #{ $prefix }__link,\n    &#{ $prefix }--auto li > a,\n    &#{ $prefix }--auto li > button {\n      position: relative;\n      z-index: 2;\n      margin-bottom: get(\"rule-offset\");\n      padding-top: get(\"padding-y-ruled\");\n      padding-bottom: get(\"padding-y-ruled\");\n    }\n  }\n",
              "line": {
                "start": 77,
                "end": 157
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"nav-strip\");\n  #{ $prefix } {\n    max-width: 100%; // So ul will overflow\n  }\n  // Original thought to not limit to direct child\n  // auto is for when we don't have control over markup\n  // The list descendants will be selected that way but the list is\n  // currently selecting any list/list-item\n  #{ $prefix }__list,\n  #{ $prefix }--auto ul {\n    display: flex;\n    overflow-x: auto;\n    line-height: typography.get(\"line-height-dense\");\n    gap: get(\"margin-between\");\n    @include layout.remove-scrollbar();\n  }\n  #{ $prefix }__item,\n  #{ $prefix }--auto li {\n    // layout flex since items inside may not be the same height\n    display: flex;\n    align-items: flex-end;\n  }\n  \n  #{ $prefix }__link,\n  #{ $prefix }--auto li > a,\n  #{ $prefix }--auto li > button {\n    display: block;\n    color: color.get(get(\"color\"));\n    padding: get(\"padding-y\") get(\"padding-x\");\n    border-top: get(\"underline-size\") solid transparent;\n    border-bottom: get(\"underline-size\") solid transparent;\n    font-weight: get(\"font-weight\");\n    @if (get(\"nowrap\")) {\n      white-space: nowrap;\n    }\n    &:hover,\n    &:focus {\n      border-bottom-color: color.get(get(\"underline-color-hover\"));\n      color: color.get(get(\"color-hover\"));\n    }\n    #{ get(\"activeSelector\") } {\n      border-bottom-color: color.get(get(\"underline-color\"));\n      color: color.get(get(\"color-active\"));\n    }\n  }\n  \n  // Modifiers\n  #{ $prefix }--right {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }--center {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: center;\n    }\n  }\n  #{ $prefix }--rule {\n    position: relative;\n    &::after {\n      content: \"\";\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    }\n    #{ $prefix }__link,\n    &#{ $prefix }--auto li > a,\n    &#{ $prefix }--auto li > button {\n      position: relative;\n      z-index: 2;\n      margin-bottom: get(\"rule-offset\");\n      padding-top: get(\"padding-y-ruled\");\n      padding-bottom: get(\"padding-y-ruled\");\n    }\n  }\n",
              "line": {
                "start": 77,
                "end": 157
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"nav-strip\");\n  #{ $prefix } {\n    max-width: 100%; // So ul will overflow\n  }\n  // Original thought to not limit to direct child\n  // auto is for when we don't have control over markup\n  // The list descendants will be selected that way but the list is\n  // currently selecting any list/list-item\n  #{ $prefix }__list,\n  #{ $prefix }--auto ul {\n    display: flex;\n    overflow-x: auto;\n    line-height: typography.get(\"line-height-dense\");\n    gap: get(\"margin-between\");\n    @include layout.remove-scrollbar();\n  }\n  #{ $prefix }__item,\n  #{ $prefix }--auto li {\n    // layout flex since items inside may not be the same height\n    display: flex;\n    align-items: flex-end;\n  }\n  \n  #{ $prefix }__link,\n  #{ $prefix }--auto li > a,\n  #{ $prefix }--auto li > button {\n    display: block;\n    color: color.get(get(\"color\"));\n    padding: get(\"padding-y\") get(\"padding-x\");\n    border-top: get(\"underline-size\") solid transparent;\n    border-bottom: get(\"underline-size\") solid transparent;\n    font-weight: get(\"font-weight\");\n    @if (get(\"nowrap\")) {\n      white-space: nowrap;\n    }\n    &:hover,\n    &:focus {\n      border-bottom-color: color.get(get(\"underline-color-hover\"));\n      color: color.get(get(\"color-hover\"));\n    }\n    #{ get(\"activeSelector\") } {\n      border-bottom-color: color.get(get(\"underline-color\"));\n      color: color.get(get(\"color-active\"));\n    }\n  }\n  \n  // Modifiers\n  #{ $prefix }--right {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }--center {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: center;\n    }\n  }\n  #{ $prefix }--rule {\n    position: relative;\n    &::after {\n      content: \"\";\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    }\n    #{ $prefix }__link,\n    &#{ $prefix }--auto li > a,\n    &#{ $prefix }--auto li > button {\n      position: relative;\n      z-index: 2;\n      margin-bottom: get(\"rule-offset\");\n      padding-top: get(\"padding-y-ruled\");\n      padding-bottom: get(\"padding-y-ruled\");\n    }\n  }\n",
              "line": {
                "start": 77,
                "end": 157
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"nav-strip\");\n  #{ $prefix } {\n    max-width: 100%; // So ul will overflow\n  }\n  // Original thought to not limit to direct child\n  // auto is for when we don't have control over markup\n  // The list descendants will be selected that way but the list is\n  // currently selecting any list/list-item\n  #{ $prefix }__list,\n  #{ $prefix }--auto ul {\n    display: flex;\n    overflow-x: auto;\n    line-height: typography.get(\"line-height-dense\");\n    gap: get(\"margin-between\");\n    @include layout.remove-scrollbar();\n  }\n  #{ $prefix }__item,\n  #{ $prefix }--auto li {\n    // layout flex since items inside may not be the same height\n    display: flex;\n    align-items: flex-end;\n  }\n  \n  #{ $prefix }__link,\n  #{ $prefix }--auto li > a,\n  #{ $prefix }--auto li > button {\n    display: block;\n    color: color.get(get(\"color\"));\n    padding: get(\"padding-y\") get(\"padding-x\");\n    border-top: get(\"underline-size\") solid transparent;\n    border-bottom: get(\"underline-size\") solid transparent;\n    font-weight: get(\"font-weight\");\n    @if (get(\"nowrap\")) {\n      white-space: nowrap;\n    }\n    &:hover,\n    &:focus {\n      border-bottom-color: color.get(get(\"underline-color-hover\"));\n      color: color.get(get(\"color-hover\"));\n    }\n    #{ get(\"activeSelector\") } {\n      border-bottom-color: color.get(get(\"underline-color\"));\n      color: color.get(get(\"color-active\"));\n    }\n  }\n  \n  // Modifiers\n  #{ $prefix }--right {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }--center {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: center;\n    }\n  }\n  #{ $prefix }--rule {\n    position: relative;\n    &::after {\n      content: \"\";\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    }\n    #{ $prefix }__link,\n    &#{ $prefix }--auto li > a,\n    &#{ $prefix }--auto li > button {\n      position: relative;\n      z-index: 2;\n      margin-bottom: get(\"rule-offset\");\n      padding-top: get(\"padding-y-ruled\");\n      padding-bottom: get(\"padding-y-ruled\");\n    }\n  }\n",
              "line": {
                "start": 77,
                "end": 157
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"nav-strip\");\n  #{ $prefix } {\n    max-width: 100%; // So ul will overflow\n  }\n  // Original thought to not limit to direct child\n  // auto is for when we don't have control over markup\n  // The list descendants will be selected that way but the list is\n  // currently selecting any list/list-item\n  #{ $prefix }__list,\n  #{ $prefix }--auto ul {\n    display: flex;\n    overflow-x: auto;\n    line-height: typography.get(\"line-height-dense\");\n    gap: get(\"margin-between\");\n    @include layout.remove-scrollbar();\n  }\n  #{ $prefix }__item,\n  #{ $prefix }--auto li {\n    // layout flex since items inside may not be the same height\n    display: flex;\n    align-items: flex-end;\n  }\n  \n  #{ $prefix }__link,\n  #{ $prefix }--auto li > a,\n  #{ $prefix }--auto li > button {\n    display: block;\n    color: color.get(get(\"color\"));\n    padding: get(\"padding-y\") get(\"padding-x\");\n    border-top: get(\"underline-size\") solid transparent;\n    border-bottom: get(\"underline-size\") solid transparent;\n    font-weight: get(\"font-weight\");\n    @if (get(\"nowrap\")) {\n      white-space: nowrap;\n    }\n    &:hover,\n    &:focus {\n      border-bottom-color: color.get(get(\"underline-color-hover\"));\n      color: color.get(get(\"color-hover\"));\n    }\n    #{ get(\"activeSelector\") } {\n      border-bottom-color: color.get(get(\"underline-color\"));\n      color: color.get(get(\"color-active\"));\n    }\n  }\n  \n  // Modifiers\n  #{ $prefix }--right {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }--center {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: center;\n    }\n  }\n  #{ $prefix }--rule {\n    position: relative;\n    &::after {\n      content: \"\";\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    }\n    #{ $prefix }__link,\n    &#{ $prefix }--auto li > a,\n    &#{ $prefix }--auto li > button {\n      position: relative;\n      z-index: 2;\n      margin-bottom: get(\"rule-offset\");\n      padding-top: get(\"padding-y-ruled\");\n      padding-bottom: get(\"padding-y-ruled\");\n    }\n  }\n",
              "line": {
                "start": 77,
                "end": 157
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"nav-strip\");\n  #{ $prefix } {\n    max-width: 100%; // So ul will overflow\n  }\n  // Original thought to not limit to direct child\n  // auto is for when we don't have control over markup\n  // The list descendants will be selected that way but the list is\n  // currently selecting any list/list-item\n  #{ $prefix }__list,\n  #{ $prefix }--auto ul {\n    display: flex;\n    overflow-x: auto;\n    line-height: typography.get(\"line-height-dense\");\n    gap: get(\"margin-between\");\n    @include layout.remove-scrollbar();\n  }\n  #{ $prefix }__item,\n  #{ $prefix }--auto li {\n    // layout flex since items inside may not be the same height\n    display: flex;\n    align-items: flex-end;\n  }\n  \n  #{ $prefix }__link,\n  #{ $prefix }--auto li > a,\n  #{ $prefix }--auto li > button {\n    display: block;\n    color: color.get(get(\"color\"));\n    padding: get(\"padding-y\") get(\"padding-x\");\n    border-top: get(\"underline-size\") solid transparent;\n    border-bottom: get(\"underline-size\") solid transparent;\n    font-weight: get(\"font-weight\");\n    @if (get(\"nowrap\")) {\n      white-space: nowrap;\n    }\n    &:hover,\n    &:focus {\n      border-bottom-color: color.get(get(\"underline-color-hover\"));\n      color: color.get(get(\"color-hover\"));\n    }\n    #{ get(\"activeSelector\") } {\n      border-bottom-color: color.get(get(\"underline-color\"));\n      color: color.get(get(\"color-active\"));\n    }\n  }\n  \n  // Modifiers\n  #{ $prefix }--right {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }--center {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: center;\n    }\n  }\n  #{ $prefix }--rule {\n    position: relative;\n    &::after {\n      content: \"\";\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    }\n    #{ $prefix }__link,\n    &#{ $prefix }--auto li > a,\n    &#{ $prefix }--auto li > button {\n      position: relative;\n      z-index: 2;\n      margin-bottom: get(\"rule-offset\");\n      padding-top: get(\"padding-y-ruled\");\n      padding-bottom: get(\"padding-y-ruled\");\n    }\n  }\n",
              "line": {
                "start": 77,
                "end": 157
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"nav-strip\");\n  #{ $prefix } {\n    max-width: 100%; // So ul will overflow\n  }\n  // Original thought to not limit to direct child\n  // auto is for when we don't have control over markup\n  // The list descendants will be selected that way but the list is\n  // currently selecting any list/list-item\n  #{ $prefix }__list,\n  #{ $prefix }--auto ul {\n    display: flex;\n    overflow-x: auto;\n    line-height: typography.get(\"line-height-dense\");\n    gap: get(\"margin-between\");\n    @include layout.remove-scrollbar();\n  }\n  #{ $prefix }__item,\n  #{ $prefix }--auto li {\n    // layout flex since items inside may not be the same height\n    display: flex;\n    align-items: flex-end;\n  }\n  \n  #{ $prefix }__link,\n  #{ $prefix }--auto li > a,\n  #{ $prefix }--auto li > button {\n    display: block;\n    color: color.get(get(\"color\"));\n    padding: get(\"padding-y\") get(\"padding-x\");\n    border-top: get(\"underline-size\") solid transparent;\n    border-bottom: get(\"underline-size\") solid transparent;\n    font-weight: get(\"font-weight\");\n    @if (get(\"nowrap\")) {\n      white-space: nowrap;\n    }\n    &:hover,\n    &:focus {\n      border-bottom-color: color.get(get(\"underline-color-hover\"));\n      color: color.get(get(\"color-hover\"));\n    }\n    #{ get(\"activeSelector\") } {\n      border-bottom-color: color.get(get(\"underline-color\"));\n      color: color.get(get(\"color-active\"));\n    }\n  }\n  \n  // Modifiers\n  #{ $prefix }--right {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }--center {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: center;\n    }\n  }\n  #{ $prefix }--rule {\n    position: relative;\n    &::after {\n      content: \"\";\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    }\n    #{ $prefix }__link,\n    &#{ $prefix }--auto li > a,\n    &#{ $prefix }--auto li > button {\n      position: relative;\n      z-index: 2;\n      margin-bottom: get(\"rule-offset\");\n      padding-top: get(\"padding-y-ruled\");\n      padding-bottom: get(\"padding-y-ruled\");\n    }\n  }\n",
              "line": {
                "start": 77,
                "end": 157
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"nav-strip\");\n  #{ $prefix } {\n    max-width: 100%; // So ul will overflow\n  }\n  // Original thought to not limit to direct child\n  // auto is for when we don't have control over markup\n  // The list descendants will be selected that way but the list is\n  // currently selecting any list/list-item\n  #{ $prefix }__list,\n  #{ $prefix }--auto ul {\n    display: flex;\n    overflow-x: auto;\n    line-height: typography.get(\"line-height-dense\");\n    gap: get(\"margin-between\");\n    @include layout.remove-scrollbar();\n  }\n  #{ $prefix }__item,\n  #{ $prefix }--auto li {\n    // layout flex since items inside may not be the same height\n    display: flex;\n    align-items: flex-end;\n  }\n  \n  #{ $prefix }__link,\n  #{ $prefix }--auto li > a,\n  #{ $prefix }--auto li > button {\n    display: block;\n    color: color.get(get(\"color\"));\n    padding: get(\"padding-y\") get(\"padding-x\");\n    border-top: get(\"underline-size\") solid transparent;\n    border-bottom: get(\"underline-size\") solid transparent;\n    font-weight: get(\"font-weight\");\n    @if (get(\"nowrap\")) {\n      white-space: nowrap;\n    }\n    &:hover,\n    &:focus {\n      border-bottom-color: color.get(get(\"underline-color-hover\"));\n      color: color.get(get(\"color-hover\"));\n    }\n    #{ get(\"activeSelector\") } {\n      border-bottom-color: color.get(get(\"underline-color\"));\n      color: color.get(get(\"color-active\"));\n    }\n  }\n  \n  // Modifiers\n  #{ $prefix }--right {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }--center {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: center;\n    }\n  }\n  #{ $prefix }--rule {\n    position: relative;\n    &::after {\n      content: \"\";\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    }\n    #{ $prefix }__link,\n    &#{ $prefix }--auto li > a,\n    &#{ $prefix }--auto li > button {\n      position: relative;\n      z-index: 2;\n      margin-bottom: get(\"rule-offset\");\n      padding-top: get(\"padding-y-ruled\");\n      padding-bottom: get(\"padding-y-ruled\");\n    }\n  }\n",
              "line": {
                "start": 77,
                "end": 157
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"nav-strip\");\n  #{ $prefix } {\n    max-width: 100%; // So ul will overflow\n  }\n  // Original thought to not limit to direct child\n  // auto is for when we don't have control over markup\n  // The list descendants will be selected that way but the list is\n  // currently selecting any list/list-item\n  #{ $prefix }__list,\n  #{ $prefix }--auto ul {\n    display: flex;\n    overflow-x: auto;\n    line-height: typography.get(\"line-height-dense\");\n    gap: get(\"margin-between\");\n    @include layout.remove-scrollbar();\n  }\n  #{ $prefix }__item,\n  #{ $prefix }--auto li {\n    // layout flex since items inside may not be the same height\n    display: flex;\n    align-items: flex-end;\n  }\n  \n  #{ $prefix }__link,\n  #{ $prefix }--auto li > a,\n  #{ $prefix }--auto li > button {\n    display: block;\n    color: color.get(get(\"color\"));\n    padding: get(\"padding-y\") get(\"padding-x\");\n    border-top: get(\"underline-size\") solid transparent;\n    border-bottom: get(\"underline-size\") solid transparent;\n    font-weight: get(\"font-weight\");\n    @if (get(\"nowrap\")) {\n      white-space: nowrap;\n    }\n    &:hover,\n    &:focus {\n      border-bottom-color: color.get(get(\"underline-color-hover\"));\n      color: color.get(get(\"color-hover\"));\n    }\n    #{ get(\"activeSelector\") } {\n      border-bottom-color: color.get(get(\"underline-color\"));\n      color: color.get(get(\"color-active\"));\n    }\n  }\n  \n  // Modifiers\n  #{ $prefix }--right {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }--center {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: center;\n    }\n  }\n  #{ $prefix }--rule {\n    position: relative;\n    &::after {\n      content: \"\";\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    }\n    #{ $prefix }__link,\n    &#{ $prefix }--auto li > a,\n    &#{ $prefix }--auto li > button {\n      position: relative;\n      z-index: 2;\n      margin-bottom: get(\"rule-offset\");\n      padding-top: get(\"padding-y-ruled\");\n      padding-bottom: get(\"padding-y-ruled\");\n    }\n  }\n",
              "line": {
                "start": 77,
                "end": 157
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"nav-strip\");\n  #{ $prefix } {\n    max-width: 100%; // So ul will overflow\n  }\n  // Original thought to not limit to direct child\n  // auto is for when we don't have control over markup\n  // The list descendants will be selected that way but the list is\n  // currently selecting any list/list-item\n  #{ $prefix }__list,\n  #{ $prefix }--auto ul {\n    display: flex;\n    overflow-x: auto;\n    line-height: typography.get(\"line-height-dense\");\n    gap: get(\"margin-between\");\n    @include layout.remove-scrollbar();\n  }\n  #{ $prefix }__item,\n  #{ $prefix }--auto li {\n    // layout flex since items inside may not be the same height\n    display: flex;\n    align-items: flex-end;\n  }\n  \n  #{ $prefix }__link,\n  #{ $prefix }--auto li > a,\n  #{ $prefix }--auto li > button {\n    display: block;\n    color: color.get(get(\"color\"));\n    padding: get(\"padding-y\") get(\"padding-x\");\n    border-top: get(\"underline-size\") solid transparent;\n    border-bottom: get(\"underline-size\") solid transparent;\n    font-weight: get(\"font-weight\");\n    @if (get(\"nowrap\")) {\n      white-space: nowrap;\n    }\n    &:hover,\n    &:focus {\n      border-bottom-color: color.get(get(\"underline-color-hover\"));\n      color: color.get(get(\"color-hover\"));\n    }\n    #{ get(\"activeSelector\") } {\n      border-bottom-color: color.get(get(\"underline-color\"));\n      color: color.get(get(\"color-active\"));\n    }\n  }\n  \n  // Modifiers\n  #{ $prefix }--right {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }--center {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: center;\n    }\n  }\n  #{ $prefix }--rule {\n    position: relative;\n    &::after {\n      content: \"\";\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    }\n    #{ $prefix }__link,\n    &#{ $prefix }--auto li > a,\n    &#{ $prefix }--auto li > button {\n      position: relative;\n      z-index: 2;\n      margin-bottom: get(\"rule-offset\");\n      padding-top: get(\"padding-y-ruled\");\n      padding-bottom: get(\"padding-y-ruled\");\n    }\n  }\n",
              "line": {
                "start": 77,
                "end": 157
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  .overlay-section {\n    position: relative;\n    display: flex;\n    min-height: get(\"min-height\");\n    align-items: center;\n    justify-content: center;\n    padding: get(\"padding\");\n\n    @each $breakpoint, $props in get(\"breakpoints\") {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        padding: map.get($props, \"padding\");\n        min-height: map.get($props, \"min-height\");\n      }\n    }\n  }\n  .overlay-section__background {\n    @include layout.absolute-fill();\n    img, \n    video {\n      object-fit: cover;\n      height: 100%;\n      width: 100%;\n    }\n  }\n  .overlay-section__content {\n    position: relative;\n    z-index: 2;\n    background-color: color.get(get(\"content-background-color\"));\n    border: get(\"content-border\");\n    flex: 0 1 get(\"content-width\");\n    padding: get(\"content-padding\");\n    @each $breakpoint, $props in get(\"breakpoints\") {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        padding: map.get($props, \"content-padding\");\n      }\n    }\n  }\n  .overlay-section--top {\n    align-items: flex-start;\n  }\n  .overlay-section--bottom {\n    align-items: flex-end;\n  }\n  .overlay-section--left {\n    justify-content: flex-start;\n  }\n  .overlay-section--right {\n    justify-content: flex-end;\n  }\n",
              "line": {
                "start": 66,
                "end": 119
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  .overlay-section {\n    position: relative;\n    display: flex;\n    min-height: get(\"min-height\");\n    align-items: center;\n    justify-content: center;\n    padding: get(\"padding\");\n\n    @each $breakpoint, $props in get(\"breakpoints\") {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        padding: map.get($props, \"padding\");\n        min-height: map.get($props, \"min-height\");\n      }\n    }\n  }\n  .overlay-section__background {\n    @include layout.absolute-fill();\n    img, \n    video {\n      object-fit: cover;\n      height: 100%;\n      width: 100%;\n    }\n  }\n  .overlay-section__content {\n    position: relative;\n    z-index: 2;\n    background-color: color.get(get(\"content-background-color\"));\n    border: get(\"content-border\");\n    flex: 0 1 get(\"content-width\");\n    padding: get(\"content-padding\");\n    @each $breakpoint, $props in get(\"breakpoints\") {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        padding: map.get($props, \"content-padding\");\n      }\n    }\n  }\n  .overlay-section--top {\n    align-items: flex-start;\n  }\n  .overlay-section--bottom {\n    align-items: flex-end;\n  }\n  .overlay-section--left {\n    justify-content: flex-start;\n  }\n  .overlay-section--right {\n    justify-content: flex-end;\n  }\n",
              "line": {
                "start": 66,
                "end": 119
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  .overlay-section {\n    position: relative;\n    display: flex;\n    min-height: get(\"min-height\");\n    align-items: center;\n    justify-content: center;\n    padding: get(\"padding\");\n\n    @each $breakpoint, $props in get(\"breakpoints\") {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        padding: map.get($props, \"padding\");\n        min-height: map.get($props, \"min-height\");\n      }\n    }\n  }\n  .overlay-section__background {\n    @include layout.absolute-fill();\n    img, \n    video {\n      object-fit: cover;\n      height: 100%;\n      width: 100%;\n    }\n  }\n  .overlay-section__content {\n    position: relative;\n    z-index: 2;\n    background-color: color.get(get(\"content-background-color\"));\n    border: get(\"content-border\");\n    flex: 0 1 get(\"content-width\");\n    padding: get(\"content-padding\");\n    @each $breakpoint, $props in get(\"breakpoints\") {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        padding: map.get($props, \"content-padding\");\n      }\n    }\n  }\n  .overlay-section--top {\n    align-items: flex-start;\n  }\n  .overlay-section--bottom {\n    align-items: flex-end;\n  }\n  .overlay-section--left {\n    justify-content: flex-start;\n  }\n  .overlay-section--right {\n    justify-content: flex-end;\n  }\n",
              "line": {
                "start": 66,
                "end": 119
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  .overlay-section {\n    position: relative;\n    display: flex;\n    min-height: get(\"min-height\");\n    align-items: center;\n    justify-content: center;\n    padding: get(\"padding\");\n\n    @each $breakpoint, $props in get(\"breakpoints\") {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        padding: map.get($props, \"padding\");\n        min-height: map.get($props, \"min-height\");\n      }\n    }\n  }\n  .overlay-section__background {\n    @include layout.absolute-fill();\n    img, \n    video {\n      object-fit: cover;\n      height: 100%;\n      width: 100%;\n    }\n  }\n  .overlay-section__content {\n    position: relative;\n    z-index: 2;\n    background-color: color.get(get(\"content-background-color\"));\n    border: get(\"content-border\");\n    flex: 0 1 get(\"content-width\");\n    padding: get(\"content-padding\");\n    @each $breakpoint, $props in get(\"breakpoints\") {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        padding: map.get($props, \"content-padding\");\n      }\n    }\n  }\n  .overlay-section--top {\n    align-items: flex-start;\n  }\n  .overlay-section--bottom {\n    align-items: flex-end;\n  }\n  .overlay-section--left {\n    justify-content: flex-start;\n  }\n  .overlay-section--right {\n    justify-content: flex-end;\n  }\n",
              "line": {
                "start": 66,
                "end": 119
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  .overlay-section {\n    position: relative;\n    display: flex;\n    min-height: get(\"min-height\");\n    align-items: center;\n    justify-content: center;\n    padding: get(\"padding\");\n\n    @each $breakpoint, $props in get(\"breakpoints\") {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        padding: map.get($props, \"padding\");\n        min-height: map.get($props, \"min-height\");\n      }\n    }\n  }\n  .overlay-section__background {\n    @include layout.absolute-fill();\n    img, \n    video {\n      object-fit: cover;\n      height: 100%;\n      width: 100%;\n    }\n  }\n  .overlay-section__content {\n    position: relative;\n    z-index: 2;\n    background-color: color.get(get(\"content-background-color\"));\n    border: get(\"content-border\");\n    flex: 0 1 get(\"content-width\");\n    padding: get(\"content-padding\");\n    @each $breakpoint, $props in get(\"breakpoints\") {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        padding: map.get($props, \"content-padding\");\n      }\n    }\n  }\n  .overlay-section--top {\n    align-items: flex-start;\n  }\n  .overlay-section--bottom {\n    align-items: flex-end;\n  }\n  .overlay-section--left {\n    justify-content: flex-start;\n  }\n  .overlay-section--right {\n    justify-content: flex-end;\n  }\n",
              "line": {
                "start": 66,
                "end": 119
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  .overlay-section {\n    position: relative;\n    display: flex;\n    min-height: get(\"min-height\");\n    align-items: center;\n    justify-content: center;\n    padding: get(\"padding\");\n\n    @each $breakpoint, $props in get(\"breakpoints\") {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        padding: map.get($props, \"padding\");\n        min-height: map.get($props, \"min-height\");\n      }\n    }\n  }\n  .overlay-section__background {\n    @include layout.absolute-fill();\n    img, \n    video {\n      object-fit: cover;\n      height: 100%;\n      width: 100%;\n    }\n  }\n  .overlay-section__content {\n    position: relative;\n    z-index: 2;\n    background-color: color.get(get(\"content-background-color\"));\n    border: get(\"content-border\");\n    flex: 0 1 get(\"content-width\");\n    padding: get(\"content-padding\");\n    @each $breakpoint, $props in get(\"breakpoints\") {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        padding: map.get($props, \"content-padding\");\n      }\n    }\n  }\n  .overlay-section--top {\n    align-items: flex-start;\n  }\n  .overlay-section--bottom {\n    align-items: flex-end;\n  }\n  .overlay-section--left {\n    justify-content: flex-start;\n  }\n  .overlay-section--right {\n    justify-content: flex-end;\n  }\n",
              "line": {
                "start": 66,
                "end": 119
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  .overlay-section {\n    position: relative;\n    display: flex;\n    min-height: get(\"min-height\");\n    align-items: center;\n    justify-content: center;\n    padding: get(\"padding\");\n\n    @each $breakpoint, $props in get(\"breakpoints\") {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        padding: map.get($props, \"padding\");\n        min-height: map.get($props, \"min-height\");\n      }\n    }\n  }\n  .overlay-section__background {\n    @include layout.absolute-fill();\n    img, \n    video {\n      object-fit: cover;\n      height: 100%;\n      width: 100%;\n    }\n  }\n  .overlay-section__content {\n    position: relative;\n    z-index: 2;\n    background-color: color.get(get(\"content-background-color\"));\n    border: get(\"content-border\");\n    flex: 0 1 get(\"content-width\");\n    padding: get(\"content-padding\");\n    @each $breakpoint, $props in get(\"breakpoints\") {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        padding: map.get($props, \"content-padding\");\n      }\n    }\n  }\n  .overlay-section--top {\n    align-items: flex-start;\n  }\n  .overlay-section--bottom {\n    align-items: flex-end;\n  }\n  .overlay-section--left {\n    justify-content: flex-start;\n  }\n  .overlay-section--right {\n    justify-content: flex-end;\n  }\n",
              "line": {
                "start": 66,
                "end": 119
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  .overlay-section {\n    position: relative;\n    display: flex;\n    min-height: get(\"min-height\");\n    align-items: center;\n    justify-content: center;\n    padding: get(\"padding\");\n\n    @each $breakpoint, $props in get(\"breakpoints\") {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        padding: map.get($props, \"padding\");\n        min-height: map.get($props, \"min-height\");\n      }\n    }\n  }\n  .overlay-section__background {\n    @include layout.absolute-fill();\n    img, \n    video {\n      object-fit: cover;\n      height: 100%;\n      width: 100%;\n    }\n  }\n  .overlay-section__content {\n    position: relative;\n    z-index: 2;\n    background-color: color.get(get(\"content-background-color\"));\n    border: get(\"content-border\");\n    flex: 0 1 get(\"content-width\");\n    padding: get(\"content-padding\");\n    @each $breakpoint, $props in get(\"breakpoints\") {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        padding: map.get($props, \"content-padding\");\n      }\n    }\n  }\n  .overlay-section--top {\n    align-items: flex-start;\n  }\n  .overlay-section--bottom {\n    align-items: flex-end;\n  }\n  .overlay-section--left {\n    justify-content: flex-start;\n  }\n  .overlay-section--right {\n    justify-content: flex-end;\n  }\n",
              "line": {
                "start": 66,
                "end": 119
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  .overlay-section {\n    position: relative;\n    display: flex;\n    min-height: get(\"min-height\");\n    align-items: center;\n    justify-content: center;\n    padding: get(\"padding\");\n\n    @each $breakpoint, $props in get(\"breakpoints\") {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        padding: map.get($props, \"padding\");\n        min-height: map.get($props, \"min-height\");\n      }\n    }\n  }\n  .overlay-section__background {\n    @include layout.absolute-fill();\n    img, \n    video {\n      object-fit: cover;\n      height: 100%;\n      width: 100%;\n    }\n  }\n  .overlay-section__content {\n    position: relative;\n    z-index: 2;\n    background-color: color.get(get(\"content-background-color\"));\n    border: get(\"content-border\");\n    flex: 0 1 get(\"content-width\");\n    padding: get(\"content-padding\");\n    @each $breakpoint, $props in get(\"breakpoints\") {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        padding: map.get($props, \"content-padding\");\n      }\n    }\n  }\n  .overlay-section--top {\n    align-items: flex-start;\n  }\n  .overlay-section--bottom {\n    align-items: flex-end;\n  }\n  .overlay-section--left {\n    justify-content: flex-start;\n  }\n  .overlay-section--right {\n    justify-content: flex-end;\n  }\n",
              "line": {
                "start": 66,
                "end": 119
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  .overlay-section {\n    position: relative;\n    display: flex;\n    min-height: get(\"min-height\");\n    align-items: center;\n    justify-content: center;\n    padding: get(\"padding\");\n\n    @each $breakpoint, $props in get(\"breakpoints\") {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        padding: map.get($props, \"padding\");\n        min-height: map.get($props, \"min-height\");\n      }\n    }\n  }\n  .overlay-section__background {\n    @include layout.absolute-fill();\n    img, \n    video {\n      object-fit: cover;\n      height: 100%;\n      width: 100%;\n    }\n  }\n  .overlay-section__content {\n    position: relative;\n    z-index: 2;\n    background-color: color.get(get(\"content-background-color\"));\n    border: get(\"content-border\");\n    flex: 0 1 get(\"content-width\");\n    padding: get(\"content-padding\");\n    @each $breakpoint, $props in get(\"breakpoints\") {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        padding: map.get($props, \"content-padding\");\n      }\n    }\n  }\n  .overlay-section--top {\n    align-items: flex-start;\n  }\n  .overlay-section--bottom {\n    align-items: flex-end;\n  }\n  .overlay-section--left {\n    justify-content: flex-start;\n  }\n  .overlay-section--right {\n    justify-content: flex-end;\n  }\n",
              "line": {
                "start": 66,
                "end": 119
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  .overlay-section {\n    position: relative;\n    display: flex;\n    min-height: get(\"min-height\");\n    align-items: center;\n    justify-content: center;\n    padding: get(\"padding\");\n\n    @each $breakpoint, $props in get(\"breakpoints\") {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        padding: map.get($props, \"padding\");\n        min-height: map.get($props, \"min-height\");\n      }\n    }\n  }\n  .overlay-section__background {\n    @include layout.absolute-fill();\n    img, \n    video {\n      object-fit: cover;\n      height: 100%;\n      width: 100%;\n    }\n  }\n  .overlay-section__content {\n    position: relative;\n    z-index: 2;\n    background-color: color.get(get(\"content-background-color\"));\n    border: get(\"content-border\");\n    flex: 0 1 get(\"content-width\");\n    padding: get(\"content-padding\");\n    @each $breakpoint, $props in get(\"breakpoints\") {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        padding: map.get($props, \"content-padding\");\n      }\n    }\n  }\n  .overlay-section--top {\n    align-items: flex-start;\n  }\n  .overlay-section--bottom {\n    align-items: flex-end;\n  }\n  .overlay-section--left {\n    justify-content: flex-start;\n  }\n  .overlay-section--right {\n    justify-content: flex-end;\n  }\n",
              "line": {
                "start": 66,
                "end": 119
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  .overlay-section {\n    position: relative;\n    display: flex;\n    min-height: get(\"min-height\");\n    align-items: center;\n    justify-content: center;\n    padding: get(\"padding\");\n\n    @each $breakpoint, $props in get(\"breakpoints\") {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        padding: map.get($props, \"padding\");\n        min-height: map.get($props, \"min-height\");\n      }\n    }\n  }\n  .overlay-section__background {\n    @include layout.absolute-fill();\n    img, \n    video {\n      object-fit: cover;\n      height: 100%;\n      width: 100%;\n    }\n  }\n  .overlay-section__content {\n    position: relative;\n    z-index: 2;\n    background-color: color.get(get(\"content-background-color\"));\n    border: get(\"content-border\");\n    flex: 0 1 get(\"content-width\");\n    padding: get(\"content-padding\");\n    @each $breakpoint, $props in get(\"breakpoints\") {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        padding: map.get($props, \"content-padding\");\n      }\n    }\n  }\n  .overlay-section--top {\n    align-items: flex-start;\n  }\n  .overlay-section--bottom {\n    align-items: flex-end;\n  }\n  .overlay-section--left {\n    justify-content: flex-start;\n  }\n  .overlay-section--right {\n    justify-content: flex-end;\n  }\n",
              "line": {
                "start": 66,
                "end": 119
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  .overlay-section {\n    position: relative;\n    display: flex;\n    min-height: get(\"min-height\");\n    align-items: center;\n    justify-content: center;\n    padding: get(\"padding\");\n\n    @each $breakpoint, $props in get(\"breakpoints\") {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        padding: map.get($props, \"padding\");\n        min-height: map.get($props, \"min-height\");\n      }\n    }\n  }\n  .overlay-section__background {\n    @include layout.absolute-fill();\n    img, \n    video {\n      object-fit: cover;\n      height: 100%;\n      width: 100%;\n    }\n  }\n  .overlay-section__content {\n    position: relative;\n    z-index: 2;\n    background-color: color.get(get(\"content-background-color\"));\n    border: get(\"content-border\");\n    flex: 0 1 get(\"content-width\");\n    padding: get(\"content-padding\");\n    @each $breakpoint, $props in get(\"breakpoints\") {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        padding: map.get($props, \"content-padding\");\n      }\n    }\n  }\n  .overlay-section--top {\n    align-items: flex-start;\n  }\n  .overlay-section--bottom {\n    align-items: flex-end;\n  }\n  .overlay-section--left {\n    justify-content: flex-start;\n  }\n  .overlay-section--right {\n    justify-content: flex-end;\n  }\n",
              "line": {
                "start": 66,
                "end": 119
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  .overlay-section {\n    position: relative;\n    display: flex;\n    min-height: get(\"min-height\");\n    align-items: center;\n    justify-content: center;\n    padding: get(\"padding\");\n\n    @each $breakpoint, $props in get(\"breakpoints\") {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        padding: map.get($props, \"padding\");\n        min-height: map.get($props, \"min-height\");\n      }\n    }\n  }\n  .overlay-section__background {\n    @include layout.absolute-fill();\n    img, \n    video {\n      object-fit: cover;\n      height: 100%;\n      width: 100%;\n    }\n  }\n  .overlay-section__content {\n    position: relative;\n    z-index: 2;\n    background-color: color.get(get(\"content-background-color\"));\n    border: get(\"content-border\");\n    flex: 0 1 get(\"content-width\");\n    padding: get(\"content-padding\");\n    @each $breakpoint, $props in get(\"breakpoints\") {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        padding: map.get($props, \"content-padding\");\n      }\n    }\n  }\n  .overlay-section--top {\n    align-items: flex-start;\n  }\n  .overlay-section--bottom {\n    align-items: flex-end;\n  }\n  .overlay-section--left {\n    justify-content: flex-start;\n  }\n  .overlay-section--right {\n    justify-content: flex-end;\n  }\n",
              "line": {
                "start": 66,
                "end": 119
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
              "line": {
                "start": 96,
                "end": 168
              }
            }
          },
          {
            "description": "Output component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"panel\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    overflow: get(\"overflow\");\n    background-color: get(\"background-color\");\n    box-shadow: get(\"box-shadow\");\n    border: get(\"border\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__row {\n    &:first-child {\n      border-top-left-radius: get(\"border-radius\");\n      border-top-right-radius: get(\"border-radius\");\n    }\n    &:last-child {\n      border-bottom-left-radius: get(\"border-radius\");\n      border-bottom-right-radius: get(\"border-radius\");\n    }\n  }\n\n  @each $modifier, $rows in $styles {\n    @if ($modifier == \"default\") {\n      @each $row-name, $props in $rows {\n        @if ($row-name == \"default\") {\n          #{ $prefix }__row {\n            @include create-row-style($props);\n          }\n        } @else {\n          #{ $prefix }__row--#{ $row-name } {\n            @include create-row-style($props);\n          }\n        }\n      }\n    } @else {\n      #{ $prefix }--#{ $modifier } {\n        @each $row-name, $props in $rows {\n          @if ($row-name == \"default\") {\n            #{ $prefix }__row {\n              @include create-row-style($props);\n            }\n          } @else {\n            #{ $prefix }__row--#{ $row-name } {\n              @include create-row-style($props);\n            }\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 164,
                "end": 216
              }
            }
          },
          {
            "description": "Output component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"panel\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    overflow: get(\"overflow\");\n    background-color: get(\"background-color\");\n    box-shadow: get(\"box-shadow\");\n    border: get(\"border\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__row {\n    &:first-child {\n      border-top-left-radius: get(\"border-radius\");\n      border-top-right-radius: get(\"border-radius\");\n    }\n    &:last-child {\n      border-bottom-left-radius: get(\"border-radius\");\n      border-bottom-right-radius: get(\"border-radius\");\n    }\n  }\n\n  @each $modifier, $rows in $styles {\n    @if ($modifier == \"default\") {\n      @each $row-name, $props in $rows {\n        @if ($row-name == \"default\") {\n          #{ $prefix }__row {\n            @include create-row-style($props);\n          }\n        } @else {\n          #{ $prefix }__row--#{ $row-name } {\n            @include create-row-style($props);\n          }\n        }\n      }\n    } @else {\n      #{ $prefix }--#{ $modifier } {\n        @each $row-name, $props in $rows {\n          @if ($row-name == \"default\") {\n            #{ $prefix }__row {\n              @include create-row-style($props);\n            }\n          } @else {\n            #{ $prefix }__row--#{ $row-name } {\n              @include create-row-style($props);\n            }\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 164,
                "end": 216
              }
            }
          },
          {
            "description": "Output component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"panel\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    overflow: get(\"overflow\");\n    background-color: get(\"background-color\");\n    box-shadow: get(\"box-shadow\");\n    border: get(\"border\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__row {\n    &:first-child {\n      border-top-left-radius: get(\"border-radius\");\n      border-top-right-radius: get(\"border-radius\");\n    }\n    &:last-child {\n      border-bottom-left-radius: get(\"border-radius\");\n      border-bottom-right-radius: get(\"border-radius\");\n    }\n  }\n\n  @each $modifier, $rows in $styles {\n    @if ($modifier == \"default\") {\n      @each $row-name, $props in $rows {\n        @if ($row-name == \"default\") {\n          #{ $prefix }__row {\n            @include create-row-style($props);\n          }\n        } @else {\n          #{ $prefix }__row--#{ $row-name } {\n            @include create-row-style($props);\n          }\n        }\n      }\n    } @else {\n      #{ $prefix }--#{ $modifier } {\n        @each $row-name, $props in $rows {\n          @if ($row-name == \"default\") {\n            #{ $prefix }__row {\n              @include create-row-style($props);\n            }\n          } @else {\n            #{ $prefix }__row--#{ $row-name } {\n              @include create-row-style($props);\n            }\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 164,
                "end": 216
              }
            }
          },
          {
            "description": "Output component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"panel\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    overflow: get(\"overflow\");\n    background-color: get(\"background-color\");\n    box-shadow: get(\"box-shadow\");\n    border: get(\"border\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__row {\n    &:first-child {\n      border-top-left-radius: get(\"border-radius\");\n      border-top-right-radius: get(\"border-radius\");\n    }\n    &:last-child {\n      border-bottom-left-radius: get(\"border-radius\");\n      border-bottom-right-radius: get(\"border-radius\");\n    }\n  }\n\n  @each $modifier, $rows in $styles {\n    @if ($modifier == \"default\") {\n      @each $row-name, $props in $rows {\n        @if ($row-name == \"default\") {\n          #{ $prefix }__row {\n            @include create-row-style($props);\n          }\n        } @else {\n          #{ $prefix }__row--#{ $row-name } {\n            @include create-row-style($props);\n          }\n        }\n      }\n    } @else {\n      #{ $prefix }--#{ $modifier } {\n        @each $row-name, $props in $rows {\n          @if ($row-name == \"default\") {\n            #{ $prefix }__row {\n              @include create-row-style($props);\n            }\n          } @else {\n            #{ $prefix }__row--#{ $row-name } {\n              @include create-row-style($props);\n            }\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 164,
                "end": 216
              }
            }
          },
          {
            "description": "Output component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"panel\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    overflow: get(\"overflow\");\n    background-color: get(\"background-color\");\n    box-shadow: get(\"box-shadow\");\n    border: get(\"border\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__row {\n    &:first-child {\n      border-top-left-radius: get(\"border-radius\");\n      border-top-right-radius: get(\"border-radius\");\n    }\n    &:last-child {\n      border-bottom-left-radius: get(\"border-radius\");\n      border-bottom-right-radius: get(\"border-radius\");\n    }\n  }\n\n  @each $modifier, $rows in $styles {\n    @if ($modifier == \"default\") {\n      @each $row-name, $props in $rows {\n        @if ($row-name == \"default\") {\n          #{ $prefix }__row {\n            @include create-row-style($props);\n          }\n        } @else {\n          #{ $prefix }__row--#{ $row-name } {\n            @include create-row-style($props);\n          }\n        }\n      }\n    } @else {\n      #{ $prefix }--#{ $modifier } {\n        @each $row-name, $props in $rows {\n          @if ($row-name == \"default\") {\n            #{ $prefix }__row {\n              @include create-row-style($props);\n            }\n          } @else {\n            #{ $prefix }__row--#{ $row-name } {\n              @include create-row-style($props);\n            }\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 164,
                "end": 216
              }
            }
          },
          {
            "description": "Output component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"panel\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    overflow: get(\"overflow\");\n    background-color: get(\"background-color\");\n    box-shadow: get(\"box-shadow\");\n    border: get(\"border\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__row {\n    &:first-child {\n      border-top-left-radius: get(\"border-radius\");\n      border-top-right-radius: get(\"border-radius\");\n    }\n    &:last-child {\n      border-bottom-left-radius: get(\"border-radius\");\n      border-bottom-right-radius: get(\"border-radius\");\n    }\n  }\n\n  @each $modifier, $rows in $styles {\n    @if ($modifier == \"default\") {\n      @each $row-name, $props in $rows {\n        @if ($row-name == \"default\") {\n          #{ $prefix }__row {\n            @include create-row-style($props);\n          }\n        } @else {\n          #{ $prefix }__row--#{ $row-name } {\n            @include create-row-style($props);\n          }\n        }\n      }\n    } @else {\n      #{ $prefix }--#{ $modifier } {\n        @each $row-name, $props in $rows {\n          @if ($row-name == \"default\") {\n            #{ $prefix }__row {\n              @include create-row-style($props);\n            }\n          } @else {\n            #{ $prefix }__row--#{ $row-name } {\n              @include create-row-style($props);\n            }\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 164,
                "end": 216
              }
            }
          },
          {
            "description": "Output component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"panel\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    overflow: get(\"overflow\");\n    background-color: get(\"background-color\");\n    box-shadow: get(\"box-shadow\");\n    border: get(\"border\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__row {\n    &:first-child {\n      border-top-left-radius: get(\"border-radius\");\n      border-top-right-radius: get(\"border-radius\");\n    }\n    &:last-child {\n      border-bottom-left-radius: get(\"border-radius\");\n      border-bottom-right-radius: get(\"border-radius\");\n    }\n  }\n\n  @each $modifier, $rows in $styles {\n    @if ($modifier == \"default\") {\n      @each $row-name, $props in $rows {\n        @if ($row-name == \"default\") {\n          #{ $prefix }__row {\n            @include create-row-style($props);\n          }\n        } @else {\n          #{ $prefix }__row--#{ $row-name } {\n            @include create-row-style($props);\n          }\n        }\n      }\n    } @else {\n      #{ $prefix }--#{ $modifier } {\n        @each $row-name, $props in $rows {\n          @if ($row-name == \"default\") {\n            #{ $prefix }__row {\n              @include create-row-style($props);\n            }\n          } @else {\n            #{ $prefix }__row--#{ $row-name } {\n              @include create-row-style($props);\n            }\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 164,
                "end": 216
              }
            }
          },
          {
            "description": "Output component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"panel\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    overflow: get(\"overflow\");\n    background-color: get(\"background-color\");\n    box-shadow: get(\"box-shadow\");\n    border: get(\"border\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__row {\n    &:first-child {\n      border-top-left-radius: get(\"border-radius\");\n      border-top-right-radius: get(\"border-radius\");\n    }\n    &:last-child {\n      border-bottom-left-radius: get(\"border-radius\");\n      border-bottom-right-radius: get(\"border-radius\");\n    }\n  }\n\n  @each $modifier, $rows in $styles {\n    @if ($modifier == \"default\") {\n      @each $row-name, $props in $rows {\n        @if ($row-name == \"default\") {\n          #{ $prefix }__row {\n            @include create-row-style($props);\n          }\n        } @else {\n          #{ $prefix }__row--#{ $row-name } {\n            @include create-row-style($props);\n          }\n        }\n      }\n    } @else {\n      #{ $prefix }--#{ $modifier } {\n        @each $row-name, $props in $rows {\n          @if ($row-name == \"default\") {\n            #{ $prefix }__row {\n              @include create-row-style($props);\n            }\n          } @else {\n            #{ $prefix }__row--#{ $row-name } {\n              @include create-row-style($props);\n            }\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 164,
                "end": 216
              }
            }
          },
          {
            "description": "Output component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"panel\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    overflow: get(\"overflow\");\n    background-color: get(\"background-color\");\n    box-shadow: get(\"box-shadow\");\n    border: get(\"border\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__row {\n    &:first-child {\n      border-top-left-radius: get(\"border-radius\");\n      border-top-right-radius: get(\"border-radius\");\n    }\n    &:last-child {\n      border-bottom-left-radius: get(\"border-radius\");\n      border-bottom-right-radius: get(\"border-radius\");\n    }\n  }\n\n  @each $modifier, $rows in $styles {\n    @if ($modifier == \"default\") {\n      @each $row-name, $props in $rows {\n        @if ($row-name == \"default\") {\n          #{ $prefix }__row {\n            @include create-row-style($props);\n          }\n        } @else {\n          #{ $prefix }__row--#{ $row-name } {\n            @include create-row-style($props);\n          }\n        }\n      }\n    } @else {\n      #{ $prefix }--#{ $modifier } {\n        @each $row-name, $props in $rows {\n          @if ($row-name == \"default\") {\n            #{ $prefix }__row {\n              @include create-row-style($props);\n            }\n          } @else {\n            #{ $prefix }__row--#{ $row-name } {\n              @include create-row-style($props);\n            }\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 164,
                "end": 216
              }
            }
          },
          {
            "description": "Create row styles\n",
            "context": {
              "type": "mixin",
              "name": "create-row-style",
              "code": "\n  overflow: map.get($props, \"overflow\");\n  aspect-ratio: map.get($props, \"aspect-ratio\");\n  height: map.get($props, \"height\");\n  min-height: map.get($props, \"min-height\");\n  padding: map.get($props, \"padding\");\n  margin: map.get($props, \"margin\");\n  background-color: color.get(map.get($props, \"background-color\"));\n  font-weight: map.get($props, \"font-weight\");\n  font-family: map.get($props, \"font-family\");\n  color: color.get(map.get($props, \"color\"));\n  box-shadow: map.get($props, \"box-shadow\");\n  flex-grow: utils.when(map.get($props, \"grow\") == false, 0, 1); // Default is grow\n  border-top: element.get-optional-rule-style(map.get($props, \"border-top\"));\n  border-bottom: element.get-optional-rule-style(map.get($props, \"border-bottom\"));\n  \n\n  // Allow passing breakpoint maps\n  $breakpoints: map.get($props, \"breakpoints\");\n  $b-options: ( \"directionRequired\" : true );\n\n  @if ($breakpoints and list.length($breakpoints)) {\n    @include breakpoint.from-each($breakpoints, $b-options) using ($b-props) {\n      @include create-row-style($b-props);\n    }\n  }\n",
              "line": {
                "start": 220,
                "end": 246
              }
            }
          },
          {
            "description": "Create row styles\n",
            "context": {
              "type": "mixin",
              "name": "create-row-style",
              "code": "\n  overflow: map.get($props, \"overflow\");\n  aspect-ratio: map.get($props, \"aspect-ratio\");\n  height: map.get($props, \"height\");\n  min-height: map.get($props, \"min-height\");\n  padding: map.get($props, \"padding\");\n  margin: map.get($props, \"margin\");\n  background-color: color.get(map.get($props, \"background-color\"));\n  font-weight: map.get($props, \"font-weight\");\n  font-family: map.get($props, \"font-family\");\n  color: color.get(map.get($props, \"color\"));\n  box-shadow: map.get($props, \"box-shadow\");\n  flex-grow: utils.when(map.get($props, \"grow\") == false, 0, 1); // Default is grow\n  border-top: element.get-optional-rule-style(map.get($props, \"border-top\"));\n  border-bottom: element.get-optional-rule-style(map.get($props, \"border-bottom\"));\n  \n\n  // Allow passing breakpoint maps\n  $breakpoints: map.get($props, \"breakpoints\");\n  $b-options: ( \"directionRequired\" : true );\n\n  @if ($breakpoints and list.length($breakpoints)) {\n    @include breakpoint.from-each($breakpoints, $b-options) using ($b-props) {\n      @include create-row-style($b-props);\n    }\n  }\n",
              "line": {
                "start": 220,
                "end": 246
              }
            }
          },
          {
            "description": "Create row styles\n",
            "context": {
              "type": "mixin",
              "name": "create-row-style",
              "code": "\n  overflow: map.get($props, \"overflow\");\n  aspect-ratio: map.get($props, \"aspect-ratio\");\n  height: map.get($props, \"height\");\n  min-height: map.get($props, \"min-height\");\n  padding: map.get($props, \"padding\");\n  margin: map.get($props, \"margin\");\n  background-color: color.get(map.get($props, \"background-color\"));\n  font-weight: map.get($props, \"font-weight\");\n  font-family: map.get($props, \"font-family\");\n  color: color.get(map.get($props, \"color\"));\n  box-shadow: map.get($props, \"box-shadow\");\n  flex-grow: utils.when(map.get($props, \"grow\") == false, 0, 1); // Default is grow\n  border-top: element.get-optional-rule-style(map.get($props, \"border-top\"));\n  border-bottom: element.get-optional-rule-style(map.get($props, \"border-bottom\"));\n  \n\n  // Allow passing breakpoint maps\n  $breakpoints: map.get($props, \"breakpoints\");\n  $b-options: ( \"directionRequired\" : true );\n\n  @if ($breakpoints and list.length($breakpoints)) {\n    @include breakpoint.from-each($breakpoints, $b-options) using ($b-props) {\n      @include create-row-style($b-props);\n    }\n  }\n",
              "line": {
                "start": 220,
                "end": 246
              }
            }
          },
          {
            "description": "Create row styles\n",
            "context": {
              "type": "mixin",
              "name": "create-row-style",
              "code": "\n  overflow: map.get($props, \"overflow\");\n  aspect-ratio: map.get($props, \"aspect-ratio\");\n  height: map.get($props, \"height\");\n  min-height: map.get($props, \"min-height\");\n  padding: map.get($props, \"padding\");\n  margin: map.get($props, \"margin\");\n  background-color: color.get(map.get($props, \"background-color\"));\n  font-weight: map.get($props, \"font-weight\");\n  font-family: map.get($props, \"font-family\");\n  color: color.get(map.get($props, \"color\"));\n  box-shadow: map.get($props, \"box-shadow\");\n  flex-grow: utils.when(map.get($props, \"grow\") == false, 0, 1); // Default is grow\n  border-top: element.get-optional-rule-style(map.get($props, \"border-top\"));\n  border-bottom: element.get-optional-rule-style(map.get($props, \"border-bottom\"));\n  \n\n  // Allow passing breakpoint maps\n  $breakpoints: map.get($props, \"breakpoints\");\n  $b-options: ( \"directionRequired\" : true );\n\n  @if ($breakpoints and list.length($breakpoints)) {\n    @include breakpoint.from-each($breakpoints, $b-options) using ($b-props) {\n      @include create-row-style($b-props);\n    }\n  }\n",
              "line": {
                "start": 220,
                "end": 246
              }
            }
          },
          {
            "description": "Create row styles\n",
            "context": {
              "type": "mixin",
              "name": "create-row-style",
              "code": "\n  overflow: map.get($props, \"overflow\");\n  aspect-ratio: map.get($props, \"aspect-ratio\");\n  height: map.get($props, \"height\");\n  min-height: map.get($props, \"min-height\");\n  padding: map.get($props, \"padding\");\n  margin: map.get($props, \"margin\");\n  background-color: color.get(map.get($props, \"background-color\"));\n  font-weight: map.get($props, \"font-weight\");\n  font-family: map.get($props, \"font-family\");\n  color: color.get(map.get($props, \"color\"));\n  box-shadow: map.get($props, \"box-shadow\");\n  flex-grow: utils.when(map.get($props, \"grow\") == false, 0, 1); // Default is grow\n  border-top: element.get-optional-rule-style(map.get($props, \"border-top\"));\n  border-bottom: element.get-optional-rule-style(map.get($props, \"border-bottom\"));\n  \n\n  // Allow passing breakpoint maps\n  $breakpoints: map.get($props, \"breakpoints\");\n  $b-options: ( \"directionRequired\" : true );\n\n  @if ($breakpoints and list.length($breakpoints)) {\n    @include breakpoint.from-each($breakpoints, $b-options) using ($b-props) {\n      @include create-row-style($b-props);\n    }\n  }\n",
              "line": {
                "start": 220,
                "end": 246
              }
            }
          },
          {
            "description": "Create row styles\n",
            "context": {
              "type": "mixin",
              "name": "create-row-style",
              "code": "\n  overflow: map.get($props, \"overflow\");\n  aspect-ratio: map.get($props, \"aspect-ratio\");\n  height: map.get($props, \"height\");\n  min-height: map.get($props, \"min-height\");\n  padding: map.get($props, \"padding\");\n  margin: map.get($props, \"margin\");\n  background-color: color.get(map.get($props, \"background-color\"));\n  font-weight: map.get($props, \"font-weight\");\n  font-family: map.get($props, \"font-family\");\n  color: color.get(map.get($props, \"color\"));\n  box-shadow: map.get($props, \"box-shadow\");\n  flex-grow: utils.when(map.get($props, \"grow\") == false, 0, 1); // Default is grow\n  border-top: element.get-optional-rule-style(map.get($props, \"border-top\"));\n  border-bottom: element.get-optional-rule-style(map.get($props, \"border-bottom\"));\n  \n\n  // Allow passing breakpoint maps\n  $breakpoints: map.get($props, \"breakpoints\");\n  $b-options: ( \"directionRequired\" : true );\n\n  @if ($breakpoints and list.length($breakpoints)) {\n    @include breakpoint.from-each($breakpoints, $b-options) using ($b-props) {\n      @include create-row-style($b-props);\n    }\n  }\n",
              "line": {
                "start": 220,
                "end": 246
              }
            }
          },
          {
            "description": "Create row styles\n",
            "context": {
              "type": "mixin",
              "name": "create-row-style",
              "code": "\n  overflow: map.get($props, \"overflow\");\n  aspect-ratio: map.get($props, \"aspect-ratio\");\n  height: map.get($props, \"height\");\n  min-height: map.get($props, \"min-height\");\n  padding: map.get($props, \"padding\");\n  margin: map.get($props, \"margin\");\n  background-color: color.get(map.get($props, \"background-color\"));\n  font-weight: map.get($props, \"font-weight\");\n  font-family: map.get($props, \"font-family\");\n  color: color.get(map.get($props, \"color\"));\n  box-shadow: map.get($props, \"box-shadow\");\n  flex-grow: utils.when(map.get($props, \"grow\") == false, 0, 1); // Default is grow\n  border-top: element.get-optional-rule-style(map.get($props, \"border-top\"));\n  border-bottom: element.get-optional-rule-style(map.get($props, \"border-bottom\"));\n  \n\n  // Allow passing breakpoint maps\n  $breakpoints: map.get($props, \"breakpoints\");\n  $b-options: ( \"directionRequired\" : true );\n\n  @if ($breakpoints and list.length($breakpoints)) {\n    @include breakpoint.from-each($breakpoints, $b-options) using ($b-props) {\n      @include create-row-style($b-props);\n    }\n  }\n",
              "line": {
                "start": 220,
                "end": 246
              }
            }
          },
          {
            "description": "Create row styles\n",
            "context": {
              "type": "mixin",
              "name": "create-row-style",
              "code": "\n  overflow: map.get($props, \"overflow\");\n  aspect-ratio: map.get($props, \"aspect-ratio\");\n  height: map.get($props, \"height\");\n  min-height: map.get($props, \"min-height\");\n  padding: map.get($props, \"padding\");\n  margin: map.get($props, \"margin\");\n  background-color: color.get(map.get($props, \"background-color\"));\n  font-weight: map.get($props, \"font-weight\");\n  font-family: map.get($props, \"font-family\");\n  color: color.get(map.get($props, \"color\"));\n  box-shadow: map.get($props, \"box-shadow\");\n  flex-grow: utils.when(map.get($props, \"grow\") == false, 0, 1); // Default is grow\n  border-top: element.get-optional-rule-style(map.get($props, \"border-top\"));\n  border-bottom: element.get-optional-rule-style(map.get($props, \"border-bottom\"));\n  \n\n  // Allow passing breakpoint maps\n  $breakpoints: map.get($props, \"breakpoints\");\n  $b-options: ( \"directionRequired\" : true );\n\n  @if ($breakpoints and list.length($breakpoints)) {\n    @include breakpoint.from-each($breakpoints, $b-options) using ($b-props) {\n      @include create-row-style($b-props);\n    }\n  }\n",
              "line": {
                "start": 220,
                "end": 246
              }
            }
          },
          {
            "description": "Create row styles\n",
            "context": {
              "type": "mixin",
              "name": "create-row-style",
              "code": "\n  overflow: map.get($props, \"overflow\");\n  aspect-ratio: map.get($props, \"aspect-ratio\");\n  height: map.get($props, \"height\");\n  min-height: map.get($props, \"min-height\");\n  padding: map.get($props, \"padding\");\n  margin: map.get($props, \"margin\");\n  background-color: color.get(map.get($props, \"background-color\"));\n  font-weight: map.get($props, \"font-weight\");\n  font-family: map.get($props, \"font-family\");\n  color: color.get(map.get($props, \"color\"));\n  box-shadow: map.get($props, \"box-shadow\");\n  flex-grow: utils.when(map.get($props, \"grow\") == false, 0, 1); // Default is grow\n  border-top: element.get-optional-rule-style(map.get($props, \"border-top\"));\n  border-bottom: element.get-optional-rule-style(map.get($props, \"border-bottom\"));\n  \n\n  // Allow passing breakpoint maps\n  $breakpoints: map.get($props, \"breakpoints\");\n  $b-options: ( \"directionRequired\" : true );\n\n  @if ($breakpoints and list.length($breakpoints)) {\n    @include breakpoint.from-each($breakpoints, $b-options) using ($b-props) {\n      @include create-row-style($b-props);\n    }\n  }\n",
              "line": {
                "start": 220,
                "end": 246
              }
            }
          },
          {
            "description": "Create row styles\n",
            "context": {
              "type": "mixin",
              "name": "create-row-style",
              "code": "\n  overflow: map.get($props, \"overflow\");\n  aspect-ratio: map.get($props, \"aspect-ratio\");\n  height: map.get($props, \"height\");\n  min-height: map.get($props, \"min-height\");\n  padding: map.get($props, \"padding\");\n  margin: map.get($props, \"margin\");\n  background-color: color.get(map.get($props, \"background-color\"));\n  font-weight: map.get($props, \"font-weight\");\n  font-family: map.get($props, \"font-family\");\n  color: color.get(map.get($props, \"color\"));\n  box-shadow: map.get($props, \"box-shadow\");\n  flex-grow: utils.when(map.get($props, \"grow\") == false, 0, 1); // Default is grow\n  border-top: element.get-optional-rule-style(map.get($props, \"border-top\"));\n  border-bottom: element.get-optional-rule-style(map.get($props, \"border-bottom\"));\n  \n\n  // Allow passing breakpoint maps\n  $breakpoints: map.get($props, \"breakpoints\");\n  $b-options: ( \"directionRequired\" : true );\n\n  @if ($breakpoints and list.length($breakpoints)) {\n    @include breakpoint.from-each($breakpoints, $b-options) using ($b-props) {\n      @include create-row-style($b-props);\n    }\n  }\n",
              "line": {
                "start": 220,
                "end": 246
              }
            }
          },
          {
            "description": "Create row styles\n",
            "context": {
              "type": "mixin",
              "name": "create-row-style",
              "code": "\n  overflow: map.get($props, \"overflow\");\n  aspect-ratio: map.get($props, \"aspect-ratio\");\n  height: map.get($props, \"height\");\n  min-height: map.get($props, \"min-height\");\n  padding: map.get($props, \"padding\");\n  margin: map.get($props, \"margin\");\n  background-color: color.get(map.get($props, \"background-color\"));\n  font-weight: map.get($props, \"font-weight\");\n  font-family: map.get($props, \"font-family\");\n  color: color.get(map.get($props, \"color\"));\n  box-shadow: map.get($props, \"box-shadow\");\n  flex-grow: utils.when(map.get($props, \"grow\") == false, 0, 1); // Default is grow\n  border-top: element.get-optional-rule-style(map.get($props, \"border-top\"));\n  border-bottom: element.get-optional-rule-style(map.get($props, \"border-bottom\"));\n  \n\n  // Allow passing breakpoint maps\n  $breakpoints: map.get($props, \"breakpoints\");\n  $b-options: ( \"directionRequired\" : true );\n\n  @if ($breakpoints and list.length($breakpoints)) {\n    @include breakpoint.from-each($breakpoints, $b-options) using ($b-props) {\n      @include create-row-style($b-props);\n    }\n  }\n",
              "line": {
                "start": 220,
                "end": 246
              }
            }
          },
          {
            "description": "Create row styles\n",
            "context": {
              "type": "mixin",
              "name": "create-row-style",
              "code": "\n  overflow: map.get($props, \"overflow\");\n  aspect-ratio: map.get($props, \"aspect-ratio\");\n  height: map.get($props, \"height\");\n  min-height: map.get($props, \"min-height\");\n  padding: map.get($props, \"padding\");\n  margin: map.get($props, \"margin\");\n  background-color: color.get(map.get($props, \"background-color\"));\n  font-weight: map.get($props, \"font-weight\");\n  font-family: map.get($props, \"font-family\");\n  color: color.get(map.get($props, \"color\"));\n  box-shadow: map.get($props, \"box-shadow\");\n  flex-grow: utils.when(map.get($props, \"grow\") == false, 0, 1); // Default is grow\n  border-top: element.get-optional-rule-style(map.get($props, \"border-top\"));\n  border-bottom: element.get-optional-rule-style(map.get($props, \"border-bottom\"));\n  \n\n  // Allow passing breakpoint maps\n  $breakpoints: map.get($props, \"breakpoints\");\n  $b-options: ( \"directionRequired\" : true );\n\n  @if ($breakpoints and list.length($breakpoints)) {\n    @include breakpoint.from-each($breakpoints, $b-options) using ($b-props) {\n      @include create-row-style($b-props);\n    }\n  }\n",
              "line": {
                "start": 220,
                "end": 246
              }
            }
          },
          {
            "description": "Create row styles\n",
            "context": {
              "type": "mixin",
              "name": "create-row-style",
              "code": "\n  overflow: map.get($props, \"overflow\");\n  aspect-ratio: map.get($props, \"aspect-ratio\");\n  height: map.get($props, \"height\");\n  min-height: map.get($props, \"min-height\");\n  padding: map.get($props, \"padding\");\n  margin: map.get($props, \"margin\");\n  background-color: color.get(map.get($props, \"background-color\"));\n  font-weight: map.get($props, \"font-weight\");\n  font-family: map.get($props, \"font-family\");\n  color: color.get(map.get($props, \"color\"));\n  box-shadow: map.get($props, \"box-shadow\");\n  flex-grow: utils.when(map.get($props, \"grow\") == false, 0, 1); // Default is grow\n  border-top: element.get-optional-rule-style(map.get($props, \"border-top\"));\n  border-bottom: element.get-optional-rule-style(map.get($props, \"border-bottom\"));\n  \n\n  // Allow passing breakpoint maps\n  $breakpoints: map.get($props, \"breakpoints\");\n  $b-options: ( \"directionRequired\" : true );\n\n  @if ($breakpoints and list.length($breakpoints)) {\n    @include breakpoint.from-each($breakpoints, $b-options) using ($b-props) {\n      @include create-row-style($b-props);\n    }\n  }\n",
              "line": {
                "start": 220,
                "end": 246
              }
            }
          },
          {
            "description": "Create row styles\n",
            "context": {
              "type": "mixin",
              "name": "create-row-style",
              "code": "\n  overflow: map.get($props, \"overflow\");\n  aspect-ratio: map.get($props, \"aspect-ratio\");\n  height: map.get($props, \"height\");\n  min-height: map.get($props, \"min-height\");\n  padding: map.get($props, \"padding\");\n  margin: map.get($props, \"margin\");\n  background-color: color.get(map.get($props, \"background-color\"));\n  font-weight: map.get($props, \"font-weight\");\n  font-family: map.get($props, \"font-family\");\n  color: color.get(map.get($props, \"color\"));\n  box-shadow: map.get($props, \"box-shadow\");\n  flex-grow: utils.when(map.get($props, \"grow\") == false, 0, 1); // Default is grow\n  border-top: element.get-optional-rule-style(map.get($props, \"border-top\"));\n  border-bottom: element.get-optional-rule-style(map.get($props, \"border-bottom\"));\n  \n\n  // Allow passing breakpoint maps\n  $breakpoints: map.get($props, \"breakpoints\");\n  $b-options: ( \"directionRequired\" : true );\n\n  @if ($breakpoints and list.length($breakpoints)) {\n    @include breakpoint.from-each($breakpoints, $b-options) using ($b-props) {\n      @include create-row-style($b-props);\n    }\n  }\n",
              "line": {
                "start": 220,
                "end": 246
              }
            }
          },
          {
            "description": "Create row styles\n",
            "context": {
              "type": "mixin",
              "name": "create-row-style",
              "code": "\n  overflow: map.get($props, \"overflow\");\n  aspect-ratio: map.get($props, \"aspect-ratio\");\n  height: map.get($props, \"height\");\n  min-height: map.get($props, \"min-height\");\n  padding: map.get($props, \"padding\");\n  margin: map.get($props, \"margin\");\n  background-color: color.get(map.get($props, \"background-color\"));\n  font-weight: map.get($props, \"font-weight\");\n  font-family: map.get($props, \"font-family\");\n  color: color.get(map.get($props, \"color\"));\n  box-shadow: map.get($props, \"box-shadow\");\n  flex-grow: utils.when(map.get($props, \"grow\") == false, 0, 1); // Default is grow\n  border-top: element.get-optional-rule-style(map.get($props, \"border-top\"));\n  border-bottom: element.get-optional-rule-style(map.get($props, \"border-bottom\"));\n  \n\n  // Allow passing breakpoint maps\n  $breakpoints: map.get($props, \"breakpoints\");\n  $b-options: ( \"directionRequired\" : true );\n\n  @if ($breakpoints and list.length($breakpoints)) {\n    @include breakpoint.from-each($breakpoints, $b-options) using ($b-props) {\n      @include create-row-style($b-props);\n    }\n  }\n",
              "line": {
                "start": 220,
                "end": 246
              }
            }
          },
          {
            "description": "Create row styles\n",
            "context": {
              "type": "mixin",
              "name": "create-row-style",
              "code": "\n  overflow: map.get($props, \"overflow\");\n  aspect-ratio: map.get($props, \"aspect-ratio\");\n  height: map.get($props, \"height\");\n  min-height: map.get($props, \"min-height\");\n  padding: map.get($props, \"padding\");\n  margin: map.get($props, \"margin\");\n  background-color: color.get(map.get($props, \"background-color\"));\n  font-weight: map.get($props, \"font-weight\");\n  font-family: map.get($props, \"font-family\");\n  color: color.get(map.get($props, \"color\"));\n  box-shadow: map.get($props, \"box-shadow\");\n  flex-grow: utils.when(map.get($props, \"grow\") == false, 0, 1); // Default is grow\n  border-top: element.get-optional-rule-style(map.get($props, \"border-top\"));\n  border-bottom: element.get-optional-rule-style(map.get($props, \"border-bottom\"));\n  \n\n  // Allow passing breakpoint maps\n  $breakpoints: map.get($props, \"breakpoints\");\n  $b-options: ( \"directionRequired\" : true );\n\n  @if ($breakpoints and list.length($breakpoints)) {\n    @include breakpoint.from-each($breakpoints, $b-options) using ($b-props) {\n      @include create-row-style($b-props);\n    }\n  }\n",
              "line": {
                "start": 220,
                "end": 246
              }
            }
          },
          {
            "description": "Create row styles\n",
            "context": {
              "type": "mixin",
              "name": "create-row-style",
              "code": "\n  overflow: map.get($props, \"overflow\");\n  aspect-ratio: map.get($props, \"aspect-ratio\");\n  height: map.get($props, \"height\");\n  min-height: map.get($props, \"min-height\");\n  padding: map.get($props, \"padding\");\n  margin: map.get($props, \"margin\");\n  background-color: color.get(map.get($props, \"background-color\"));\n  font-weight: map.get($props, \"font-weight\");\n  font-family: map.get($props, \"font-family\");\n  color: color.get(map.get($props, \"color\"));\n  box-shadow: map.get($props, \"box-shadow\");\n  flex-grow: utils.when(map.get($props, \"grow\") == false, 0, 1); // Default is grow\n  border-top: element.get-optional-rule-style(map.get($props, \"border-top\"));\n  border-bottom: element.get-optional-rule-style(map.get($props, \"border-bottom\"));\n  \n\n  // Allow passing breakpoint maps\n  $breakpoints: map.get($props, \"breakpoints\");\n  $b-options: ( \"directionRequired\" : true );\n\n  @if ($breakpoints and list.length($breakpoints)) {\n    @include breakpoint.from-each($breakpoints, $b-options) using ($b-props) {\n      @include create-row-style($b-props);\n    }\n  }\n",
              "line": {
                "start": 220,
                "end": 246
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"placeholder-block\");\n\n  #{ $prefix } {\n    background-color: color.get(get(\"background-color\"));\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    align-items: center;\n    text-align: center;\n    padding: get(\"padding\");\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") get(\"border-style\") color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin-bottom\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n    display: block;\n    margin: 0 auto get(\"icon-margin\") auto;\n    font-size: get(\"icon-font-size\");\n  }\n  #{ $prefix }--compact {\n    padding: get(\"padding-compact\");\n    display: block;\n    border-width: get(\"border-width-compact\");\n  }\n  #{ $prefix }--expanded {\n    min-height: get(\"expanded-height\");\n  }\n",
              "line": {
                "start": 91,
                "end": 121
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"placeholder-block\");\n\n  #{ $prefix } {\n    background-color: color.get(get(\"background-color\"));\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    align-items: center;\n    text-align: center;\n    padding: get(\"padding\");\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") get(\"border-style\") color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin-bottom\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n    display: block;\n    margin: 0 auto get(\"icon-margin\") auto;\n    font-size: get(\"icon-font-size\");\n  }\n  #{ $prefix }--compact {\n    padding: get(\"padding-compact\");\n    display: block;\n    border-width: get(\"border-width-compact\");\n  }\n  #{ $prefix }--expanded {\n    min-height: get(\"expanded-height\");\n  }\n",
              "line": {
                "start": 91,
                "end": 121
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"placeholder-block\");\n\n  #{ $prefix } {\n    background-color: color.get(get(\"background-color\"));\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    align-items: center;\n    text-align: center;\n    padding: get(\"padding\");\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") get(\"border-style\") color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin-bottom\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n    display: block;\n    margin: 0 auto get(\"icon-margin\") auto;\n    font-size: get(\"icon-font-size\");\n  }\n  #{ $prefix }--compact {\n    padding: get(\"padding-compact\");\n    display: block;\n    border-width: get(\"border-width-compact\");\n  }\n  #{ $prefix }--expanded {\n    min-height: get(\"expanded-height\");\n  }\n",
              "line": {
                "start": 91,
                "end": 121
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"placeholder-block\");\n\n  #{ $prefix } {\n    background-color: color.get(get(\"background-color\"));\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    align-items: center;\n    text-align: center;\n    padding: get(\"padding\");\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") get(\"border-style\") color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin-bottom\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n    display: block;\n    margin: 0 auto get(\"icon-margin\") auto;\n    font-size: get(\"icon-font-size\");\n  }\n  #{ $prefix }--compact {\n    padding: get(\"padding-compact\");\n    display: block;\n    border-width: get(\"border-width-compact\");\n  }\n  #{ $prefix }--expanded {\n    min-height: get(\"expanded-height\");\n  }\n",
              "line": {
                "start": 91,
                "end": 121
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"placeholder-block\");\n\n  #{ $prefix } {\n    background-color: color.get(get(\"background-color\"));\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    align-items: center;\n    text-align: center;\n    padding: get(\"padding\");\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") get(\"border-style\") color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin-bottom\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n    display: block;\n    margin: 0 auto get(\"icon-margin\") auto;\n    font-size: get(\"icon-font-size\");\n  }\n  #{ $prefix }--compact {\n    padding: get(\"padding-compact\");\n    display: block;\n    border-width: get(\"border-width-compact\");\n  }\n  #{ $prefix }--expanded {\n    min-height: get(\"expanded-height\");\n  }\n",
              "line": {
                "start": 91,
                "end": 121
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"placeholder-block\");\n\n  #{ $prefix } {\n    background-color: color.get(get(\"background-color\"));\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    align-items: center;\n    text-align: center;\n    padding: get(\"padding\");\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") get(\"border-style\") color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin-bottom\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n    display: block;\n    margin: 0 auto get(\"icon-margin\") auto;\n    font-size: get(\"icon-font-size\");\n  }\n  #{ $prefix }--compact {\n    padding: get(\"padding-compact\");\n    display: block;\n    border-width: get(\"border-width-compact\");\n  }\n  #{ $prefix }--expanded {\n    min-height: get(\"expanded-height\");\n  }\n",
              "line": {
                "start": 91,
                "end": 121
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"placeholder-block\");\n\n  #{ $prefix } {\n    background-color: color.get(get(\"background-color\"));\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    align-items: center;\n    text-align: center;\n    padding: get(\"padding\");\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") get(\"border-style\") color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin-bottom\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n    display: block;\n    margin: 0 auto get(\"icon-margin\") auto;\n    font-size: get(\"icon-font-size\");\n  }\n  #{ $prefix }--compact {\n    padding: get(\"padding-compact\");\n    display: block;\n    border-width: get(\"border-width-compact\");\n  }\n  #{ $prefix }--expanded {\n    min-height: get(\"expanded-height\");\n  }\n",
              "line": {
                "start": 91,
                "end": 121
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"placeholder-block\");\n\n  #{ $prefix } {\n    background-color: color.get(get(\"background-color\"));\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    align-items: center;\n    text-align: center;\n    padding: get(\"padding\");\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") get(\"border-style\") color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin-bottom\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n    display: block;\n    margin: 0 auto get(\"icon-margin\") auto;\n    font-size: get(\"icon-font-size\");\n  }\n  #{ $prefix }--compact {\n    padding: get(\"padding-compact\");\n    display: block;\n    border-width: get(\"border-width-compact\");\n  }\n  #{ $prefix }--expanded {\n    min-height: get(\"expanded-height\");\n  }\n",
              "line": {
                "start": 91,
                "end": 121
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"placeholder-block\");\n\n  #{ $prefix } {\n    background-color: color.get(get(\"background-color\"));\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    align-items: center;\n    text-align: center;\n    padding: get(\"padding\");\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") get(\"border-style\") color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin-bottom\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n    display: block;\n    margin: 0 auto get(\"icon-margin\") auto;\n    font-size: get(\"icon-font-size\");\n  }\n  #{ $prefix }--compact {\n    padding: get(\"padding-compact\");\n    display: block;\n    border-width: get(\"border-width-compact\");\n  }\n  #{ $prefix }--expanded {\n    min-height: get(\"expanded-height\");\n  }\n",
              "line": {
                "start": 91,
                "end": 121
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"placeholder-block\");\n\n  #{ $prefix } {\n    background-color: color.get(get(\"background-color\"));\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    align-items: center;\n    text-align: center;\n    padding: get(\"padding\");\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") get(\"border-style\") color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin-bottom\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n    display: block;\n    margin: 0 auto get(\"icon-margin\") auto;\n    font-size: get(\"icon-font-size\");\n  }\n  #{ $prefix }--compact {\n    padding: get(\"padding-compact\");\n    display: block;\n    border-width: get(\"border-width-compact\");\n  }\n  #{ $prefix }--expanded {\n    min-height: get(\"expanded-height\");\n  }\n",
              "line": {
                "start": 91,
                "end": 121
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"placeholder-block\");\n\n  #{ $prefix } {\n    background-color: color.get(get(\"background-color\"));\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    align-items: center;\n    text-align: center;\n    padding: get(\"padding\");\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") get(\"border-style\") color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin-bottom\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n    display: block;\n    margin: 0 auto get(\"icon-margin\") auto;\n    font-size: get(\"icon-font-size\");\n  }\n  #{ $prefix }--compact {\n    padding: get(\"padding-compact\");\n    display: block;\n    border-width: get(\"border-width-compact\");\n  }\n  #{ $prefix }--expanded {\n    min-height: get(\"expanded-height\");\n  }\n",
              "line": {
                "start": 91,
                "end": 121
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"placeholder-block\");\n\n  #{ $prefix } {\n    background-color: color.get(get(\"background-color\"));\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    align-items: center;\n    text-align: center;\n    padding: get(\"padding\");\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") get(\"border-style\") color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin-bottom\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n    display: block;\n    margin: 0 auto get(\"icon-margin\") auto;\n    font-size: get(\"icon-font-size\");\n  }\n  #{ $prefix }--compact {\n    padding: get(\"padding-compact\");\n    display: block;\n    border-width: get(\"border-width-compact\");\n  }\n  #{ $prefix }--expanded {\n    min-height: get(\"expanded-height\");\n  }\n",
              "line": {
                "start": 91,
                "end": 121
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"placeholder-block\");\n\n  #{ $prefix } {\n    background-color: color.get(get(\"background-color\"));\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    align-items: center;\n    text-align: center;\n    padding: get(\"padding\");\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") get(\"border-style\") color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin-bottom\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n    display: block;\n    margin: 0 auto get(\"icon-margin\") auto;\n    font-size: get(\"icon-font-size\");\n  }\n  #{ $prefix }--compact {\n    padding: get(\"padding-compact\");\n    display: block;\n    border-width: get(\"border-width-compact\");\n  }\n  #{ $prefix }--expanded {\n    min-height: get(\"expanded-height\");\n  }\n",
              "line": {
                "start": 91,
                "end": 121
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"placeholder-block\");\n\n  #{ $prefix } {\n    background-color: color.get(get(\"background-color\"));\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    align-items: center;\n    text-align: center;\n    padding: get(\"padding\");\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") get(\"border-style\") color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin-bottom\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n    display: block;\n    margin: 0 auto get(\"icon-margin\") auto;\n    font-size: get(\"icon-font-size\");\n  }\n  #{ $prefix }--compact {\n    padding: get(\"padding-compact\");\n    display: block;\n    border-width: get(\"border-width-compact\");\n  }\n  #{ $prefix }--expanded {\n    min-height: get(\"expanded-height\");\n  }\n",
              "line": {
                "start": 91,
                "end": 121
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"placeholder-block\");\n\n  #{ $prefix } {\n    background-color: color.get(get(\"background-color\"));\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    align-items: center;\n    text-align: center;\n    padding: get(\"padding\");\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") get(\"border-style\") color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin-bottom\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n    display: block;\n    margin: 0 auto get(\"icon-margin\") auto;\n    font-size: get(\"icon-font-size\");\n  }\n  #{ $prefix }--compact {\n    padding: get(\"padding-compact\");\n    display: block;\n    border-width: get(\"border-width-compact\");\n  }\n  #{ $prefix }--expanded {\n    min-height: get(\"expanded-height\");\n  }\n",
              "line": {
                "start": 91,
                "end": 121
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"placeholder-block\");\n\n  #{ $prefix } {\n    background-color: color.get(get(\"background-color\"));\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    align-items: center;\n    text-align: center;\n    padding: get(\"padding\");\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") get(\"border-style\") color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin-bottom\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n    display: block;\n    margin: 0 auto get(\"icon-margin\") auto;\n    font-size: get(\"icon-font-size\");\n  }\n  #{ $prefix }--compact {\n    padding: get(\"padding-compact\");\n    display: block;\n    border-width: get(\"border-width-compact\");\n  }\n  #{ $prefix }--expanded {\n    min-height: get(\"expanded-height\");\n  }\n",
              "line": {
                "start": 91,
                "end": 121
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"placeholder-block\");\n\n  #{ $prefix } {\n    background-color: color.get(get(\"background-color\"));\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    align-items: center;\n    text-align: center;\n    padding: get(\"padding\");\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") get(\"border-style\") color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin-bottom\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n    display: block;\n    margin: 0 auto get(\"icon-margin\") auto;\n    font-size: get(\"icon-font-size\");\n  }\n  #{ $prefix }--compact {\n    padding: get(\"padding-compact\");\n    display: block;\n    border-width: get(\"border-width-compact\");\n  }\n  #{ $prefix }--expanded {\n    min-height: get(\"expanded-height\");\n  }\n",
              "line": {
                "start": 91,
                "end": 121
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"placeholder-block\");\n\n  #{ $prefix } {\n    background-color: color.get(get(\"background-color\"));\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    align-items: center;\n    text-align: center;\n    padding: get(\"padding\");\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") get(\"border-style\") color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin-bottom\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n    display: block;\n    margin: 0 auto get(\"icon-margin\") auto;\n    font-size: get(\"icon-font-size\");\n  }\n  #{ $prefix }--compact {\n    padding: get(\"padding-compact\");\n    display: block;\n    border-width: get(\"border-width-compact\");\n  }\n  #{ $prefix }--expanded {\n    min-height: get(\"expanded-height\");\n  }\n",
              "line": {
                "start": 91,
                "end": 121
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
              "line": {
                "start": 120,
                "end": 240
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-circle\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    --ulu-progress-circle-stroke-width: #{ get(\"stroke-width\") };\n  }\n  #{ $prefix }__chart {\n    position: relative;\n    line-height: 1;\n  }\n  #{ $prefix }__chart-value {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    color: color.get(get(\"value-color\"));\n    text-shadow: none;\n  }\n  #{ $prefix }__chart-svg {\n    width: get(\"size\");\n    height: get(\"size\");\n    transform: rotate(-90deg);\n    border-radius: 50%;\n  }\n  #{ $prefix }__chart-track {\n    fill: transparent;\n    stroke: color.get(get(\"color-track\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n  }\n  #{ $prefix }__chart-pie {\n    fill: transparent;\n    stroke: color.get(get(\"color-progress\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n    stroke-dasharray: 0 100;\n    will-change: stroke-dasharray;\n    // If value is changing\n    transition: stroke get(\"transition-duration\"); \n    // For in template composed initial animation\n    animation-duration: get(\"animation-duration\"); \n    animation-delay: get(\"animation-delay\"); \n    animation-timing-function: get(\"animation-timing\");\n  }\n  #{ $prefix }__chart-mask {\n    fill: color.get(get(\"color-mask\"));\n    r: calc( (get(\"viewbox-size\") / 2) - (var(--ulu-progress-circle-stroke-width) / 2) );\n  }\n  #{ $prefix }__value {\n    color: color.get(get(\"value-color-outside\"));\n    margin: get(\"value-margin-outside\");\n    font-weight: normal;\n    line-height: 1;\n  }\n\n  #{ $prefix }--outside {\n    flex-direction: row;\n    justify-content: center;\n    flex-wrap: wrap;\n  }\n  #{ $prefix }--outside-below {\n    display: block;\n  }\n  #{ $prefix }--pie {\n    // Note do not adjust the custom property for this since we want the mask to still be sized correctly\n    #{ $prefix }__chart-pie {\n      stroke-width: get(\"viewbox-size\"); // As large as the svg (so it fills the circle)\n    }\n    #{ $prefix }__chart-track {\n      fill: color.get(get(\"color-track\"));\n    }\n    #{ $prefix }__chart-mask {\n      fill: color.get(get(\"color-mask-pie\"));\n    }\n  }\n  #{ $prefix }--no-mask {\n    #{ $prefix }__chart-mask {\n      display: none;\n    }\n  }\n\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      --ulu-progress-circle-stroke-width: #{map.get($props, \"stroke-width\")};\n      #{ $prefix }__chart-svg {\n        width: map.get($props, \"size\");\n        height: map.get($props, \"size\");\n      }\n    }\n  }\n  @each $name, $color in get(\"status-colors\") {\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__chart-pie {\n        stroke: color.get($color);\n      }\n    }\n  }\n\n  \n",
              "line": {
                "start": 73,
                "end": 175
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-circle\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    --ulu-progress-circle-stroke-width: #{ get(\"stroke-width\") };\n  }\n  #{ $prefix }__chart {\n    position: relative;\n    line-height: 1;\n  }\n  #{ $prefix }__chart-value {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    color: color.get(get(\"value-color\"));\n    text-shadow: none;\n  }\n  #{ $prefix }__chart-svg {\n    width: get(\"size\");\n    height: get(\"size\");\n    transform: rotate(-90deg);\n    border-radius: 50%;\n  }\n  #{ $prefix }__chart-track {\n    fill: transparent;\n    stroke: color.get(get(\"color-track\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n  }\n  #{ $prefix }__chart-pie {\n    fill: transparent;\n    stroke: color.get(get(\"color-progress\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n    stroke-dasharray: 0 100;\n    will-change: stroke-dasharray;\n    // If value is changing\n    transition: stroke get(\"transition-duration\"); \n    // For in template composed initial animation\n    animation-duration: get(\"animation-duration\"); \n    animation-delay: get(\"animation-delay\"); \n    animation-timing-function: get(\"animation-timing\");\n  }\n  #{ $prefix }__chart-mask {\n    fill: color.get(get(\"color-mask\"));\n    r: calc( (get(\"viewbox-size\") / 2) - (var(--ulu-progress-circle-stroke-width) / 2) );\n  }\n  #{ $prefix }__value {\n    color: color.get(get(\"value-color-outside\"));\n    margin: get(\"value-margin-outside\");\n    font-weight: normal;\n    line-height: 1;\n  }\n\n  #{ $prefix }--outside {\n    flex-direction: row;\n    justify-content: center;\n    flex-wrap: wrap;\n  }\n  #{ $prefix }--outside-below {\n    display: block;\n  }\n  #{ $prefix }--pie {\n    // Note do not adjust the custom property for this since we want the mask to still be sized correctly\n    #{ $prefix }__chart-pie {\n      stroke-width: get(\"viewbox-size\"); // As large as the svg (so it fills the circle)\n    }\n    #{ $prefix }__chart-track {\n      fill: color.get(get(\"color-track\"));\n    }\n    #{ $prefix }__chart-mask {\n      fill: color.get(get(\"color-mask-pie\"));\n    }\n  }\n  #{ $prefix }--no-mask {\n    #{ $prefix }__chart-mask {\n      display: none;\n    }\n  }\n\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      --ulu-progress-circle-stroke-width: #{map.get($props, \"stroke-width\")};\n      #{ $prefix }__chart-svg {\n        width: map.get($props, \"size\");\n        height: map.get($props, \"size\");\n      }\n    }\n  }\n  @each $name, $color in get(\"status-colors\") {\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__chart-pie {\n        stroke: color.get($color);\n      }\n    }\n  }\n\n  \n",
              "line": {
                "start": 73,
                "end": 175
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-circle\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    --ulu-progress-circle-stroke-width: #{ get(\"stroke-width\") };\n  }\n  #{ $prefix }__chart {\n    position: relative;\n    line-height: 1;\n  }\n  #{ $prefix }__chart-value {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    color: color.get(get(\"value-color\"));\n    text-shadow: none;\n  }\n  #{ $prefix }__chart-svg {\n    width: get(\"size\");\n    height: get(\"size\");\n    transform: rotate(-90deg);\n    border-radius: 50%;\n  }\n  #{ $prefix }__chart-track {\n    fill: transparent;\n    stroke: color.get(get(\"color-track\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n  }\n  #{ $prefix }__chart-pie {\n    fill: transparent;\n    stroke: color.get(get(\"color-progress\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n    stroke-dasharray: 0 100;\n    will-change: stroke-dasharray;\n    // If value is changing\n    transition: stroke get(\"transition-duration\"); \n    // For in template composed initial animation\n    animation-duration: get(\"animation-duration\"); \n    animation-delay: get(\"animation-delay\"); \n    animation-timing-function: get(\"animation-timing\");\n  }\n  #{ $prefix }__chart-mask {\n    fill: color.get(get(\"color-mask\"));\n    r: calc( (get(\"viewbox-size\") / 2) - (var(--ulu-progress-circle-stroke-width) / 2) );\n  }\n  #{ $prefix }__value {\n    color: color.get(get(\"value-color-outside\"));\n    margin: get(\"value-margin-outside\");\n    font-weight: normal;\n    line-height: 1;\n  }\n\n  #{ $prefix }--outside {\n    flex-direction: row;\n    justify-content: center;\n    flex-wrap: wrap;\n  }\n  #{ $prefix }--outside-below {\n    display: block;\n  }\n  #{ $prefix }--pie {\n    // Note do not adjust the custom property for this since we want the mask to still be sized correctly\n    #{ $prefix }__chart-pie {\n      stroke-width: get(\"viewbox-size\"); // As large as the svg (so it fills the circle)\n    }\n    #{ $prefix }__chart-track {\n      fill: color.get(get(\"color-track\"));\n    }\n    #{ $prefix }__chart-mask {\n      fill: color.get(get(\"color-mask-pie\"));\n    }\n  }\n  #{ $prefix }--no-mask {\n    #{ $prefix }__chart-mask {\n      display: none;\n    }\n  }\n\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      --ulu-progress-circle-stroke-width: #{map.get($props, \"stroke-width\")};\n      #{ $prefix }__chart-svg {\n        width: map.get($props, \"size\");\n        height: map.get($props, \"size\");\n      }\n    }\n  }\n  @each $name, $color in get(\"status-colors\") {\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__chart-pie {\n        stroke: color.get($color);\n      }\n    }\n  }\n\n  \n",
              "line": {
                "start": 73,
                "end": 175
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-circle\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    --ulu-progress-circle-stroke-width: #{ get(\"stroke-width\") };\n  }\n  #{ $prefix }__chart {\n    position: relative;\n    line-height: 1;\n  }\n  #{ $prefix }__chart-value {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    color: color.get(get(\"value-color\"));\n    text-shadow: none;\n  }\n  #{ $prefix }__chart-svg {\n    width: get(\"size\");\n    height: get(\"size\");\n    transform: rotate(-90deg);\n    border-radius: 50%;\n  }\n  #{ $prefix }__chart-track {\n    fill: transparent;\n    stroke: color.get(get(\"color-track\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n  }\n  #{ $prefix }__chart-pie {\n    fill: transparent;\n    stroke: color.get(get(\"color-progress\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n    stroke-dasharray: 0 100;\n    will-change: stroke-dasharray;\n    // If value is changing\n    transition: stroke get(\"transition-duration\"); \n    // For in template composed initial animation\n    animation-duration: get(\"animation-duration\"); \n    animation-delay: get(\"animation-delay\"); \n    animation-timing-function: get(\"animation-timing\");\n  }\n  #{ $prefix }__chart-mask {\n    fill: color.get(get(\"color-mask\"));\n    r: calc( (get(\"viewbox-size\") / 2) - (var(--ulu-progress-circle-stroke-width) / 2) );\n  }\n  #{ $prefix }__value {\n    color: color.get(get(\"value-color-outside\"));\n    margin: get(\"value-margin-outside\");\n    font-weight: normal;\n    line-height: 1;\n  }\n\n  #{ $prefix }--outside {\n    flex-direction: row;\n    justify-content: center;\n    flex-wrap: wrap;\n  }\n  #{ $prefix }--outside-below {\n    display: block;\n  }\n  #{ $prefix }--pie {\n    // Note do not adjust the custom property for this since we want the mask to still be sized correctly\n    #{ $prefix }__chart-pie {\n      stroke-width: get(\"viewbox-size\"); // As large as the svg (so it fills the circle)\n    }\n    #{ $prefix }__chart-track {\n      fill: color.get(get(\"color-track\"));\n    }\n    #{ $prefix }__chart-mask {\n      fill: color.get(get(\"color-mask-pie\"));\n    }\n  }\n  #{ $prefix }--no-mask {\n    #{ $prefix }__chart-mask {\n      display: none;\n    }\n  }\n\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      --ulu-progress-circle-stroke-width: #{map.get($props, \"stroke-width\")};\n      #{ $prefix }__chart-svg {\n        width: map.get($props, \"size\");\n        height: map.get($props, \"size\");\n      }\n    }\n  }\n  @each $name, $color in get(\"status-colors\") {\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__chart-pie {\n        stroke: color.get($color);\n      }\n    }\n  }\n\n  \n",
              "line": {
                "start": 73,
                "end": 175
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-circle\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    --ulu-progress-circle-stroke-width: #{ get(\"stroke-width\") };\n  }\n  #{ $prefix }__chart {\n    position: relative;\n    line-height: 1;\n  }\n  #{ $prefix }__chart-value {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    color: color.get(get(\"value-color\"));\n    text-shadow: none;\n  }\n  #{ $prefix }__chart-svg {\n    width: get(\"size\");\n    height: get(\"size\");\n    transform: rotate(-90deg);\n    border-radius: 50%;\n  }\n  #{ $prefix }__chart-track {\n    fill: transparent;\n    stroke: color.get(get(\"color-track\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n  }\n  #{ $prefix }__chart-pie {\n    fill: transparent;\n    stroke: color.get(get(\"color-progress\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n    stroke-dasharray: 0 100;\n    will-change: stroke-dasharray;\n    // If value is changing\n    transition: stroke get(\"transition-duration\"); \n    // For in template composed initial animation\n    animation-duration: get(\"animation-duration\"); \n    animation-delay: get(\"animation-delay\"); \n    animation-timing-function: get(\"animation-timing\");\n  }\n  #{ $prefix }__chart-mask {\n    fill: color.get(get(\"color-mask\"));\n    r: calc( (get(\"viewbox-size\") / 2) - (var(--ulu-progress-circle-stroke-width) / 2) );\n  }\n  #{ $prefix }__value {\n    color: color.get(get(\"value-color-outside\"));\n    margin: get(\"value-margin-outside\");\n    font-weight: normal;\n    line-height: 1;\n  }\n\n  #{ $prefix }--outside {\n    flex-direction: row;\n    justify-content: center;\n    flex-wrap: wrap;\n  }\n  #{ $prefix }--outside-below {\n    display: block;\n  }\n  #{ $prefix }--pie {\n    // Note do not adjust the custom property for this since we want the mask to still be sized correctly\n    #{ $prefix }__chart-pie {\n      stroke-width: get(\"viewbox-size\"); // As large as the svg (so it fills the circle)\n    }\n    #{ $prefix }__chart-track {\n      fill: color.get(get(\"color-track\"));\n    }\n    #{ $prefix }__chart-mask {\n      fill: color.get(get(\"color-mask-pie\"));\n    }\n  }\n  #{ $prefix }--no-mask {\n    #{ $prefix }__chart-mask {\n      display: none;\n    }\n  }\n\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      --ulu-progress-circle-stroke-width: #{map.get($props, \"stroke-width\")};\n      #{ $prefix }__chart-svg {\n        width: map.get($props, \"size\");\n        height: map.get($props, \"size\");\n      }\n    }\n  }\n  @each $name, $color in get(\"status-colors\") {\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__chart-pie {\n        stroke: color.get($color);\n      }\n    }\n  }\n\n  \n",
              "line": {
                "start": 73,
                "end": 175
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-circle\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    --ulu-progress-circle-stroke-width: #{ get(\"stroke-width\") };\n  }\n  #{ $prefix }__chart {\n    position: relative;\n    line-height: 1;\n  }\n  #{ $prefix }__chart-value {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    color: color.get(get(\"value-color\"));\n    text-shadow: none;\n  }\n  #{ $prefix }__chart-svg {\n    width: get(\"size\");\n    height: get(\"size\");\n    transform: rotate(-90deg);\n    border-radius: 50%;\n  }\n  #{ $prefix }__chart-track {\n    fill: transparent;\n    stroke: color.get(get(\"color-track\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n  }\n  #{ $prefix }__chart-pie {\n    fill: transparent;\n    stroke: color.get(get(\"color-progress\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n    stroke-dasharray: 0 100;\n    will-change: stroke-dasharray;\n    // If value is changing\n    transition: stroke get(\"transition-duration\"); \n    // For in template composed initial animation\n    animation-duration: get(\"animation-duration\"); \n    animation-delay: get(\"animation-delay\"); \n    animation-timing-function: get(\"animation-timing\");\n  }\n  #{ $prefix }__chart-mask {\n    fill: color.get(get(\"color-mask\"));\n    r: calc( (get(\"viewbox-size\") / 2) - (var(--ulu-progress-circle-stroke-width) / 2) );\n  }\n  #{ $prefix }__value {\n    color: color.get(get(\"value-color-outside\"));\n    margin: get(\"value-margin-outside\");\n    font-weight: normal;\n    line-height: 1;\n  }\n\n  #{ $prefix }--outside {\n    flex-direction: row;\n    justify-content: center;\n    flex-wrap: wrap;\n  }\n  #{ $prefix }--outside-below {\n    display: block;\n  }\n  #{ $prefix }--pie {\n    // Note do not adjust the custom property for this since we want the mask to still be sized correctly\n    #{ $prefix }__chart-pie {\n      stroke-width: get(\"viewbox-size\"); // As large as the svg (so it fills the circle)\n    }\n    #{ $prefix }__chart-track {\n      fill: color.get(get(\"color-track\"));\n    }\n    #{ $prefix }__chart-mask {\n      fill: color.get(get(\"color-mask-pie\"));\n    }\n  }\n  #{ $prefix }--no-mask {\n    #{ $prefix }__chart-mask {\n      display: none;\n    }\n  }\n\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      --ulu-progress-circle-stroke-width: #{map.get($props, \"stroke-width\")};\n      #{ $prefix }__chart-svg {\n        width: map.get($props, \"size\");\n        height: map.get($props, \"size\");\n      }\n    }\n  }\n  @each $name, $color in get(\"status-colors\") {\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__chart-pie {\n        stroke: color.get($color);\n      }\n    }\n  }\n\n  \n",
              "line": {
                "start": 73,
                "end": 175
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-circle\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    --ulu-progress-circle-stroke-width: #{ get(\"stroke-width\") };\n  }\n  #{ $prefix }__chart {\n    position: relative;\n    line-height: 1;\n  }\n  #{ $prefix }__chart-value {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    color: color.get(get(\"value-color\"));\n    text-shadow: none;\n  }\n  #{ $prefix }__chart-svg {\n    width: get(\"size\");\n    height: get(\"size\");\n    transform: rotate(-90deg);\n    border-radius: 50%;\n  }\n  #{ $prefix }__chart-track {\n    fill: transparent;\n    stroke: color.get(get(\"color-track\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n  }\n  #{ $prefix }__chart-pie {\n    fill: transparent;\n    stroke: color.get(get(\"color-progress\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n    stroke-dasharray: 0 100;\n    will-change: stroke-dasharray;\n    // If value is changing\n    transition: stroke get(\"transition-duration\"); \n    // For in template composed initial animation\n    animation-duration: get(\"animation-duration\"); \n    animation-delay: get(\"animation-delay\"); \n    animation-timing-function: get(\"animation-timing\");\n  }\n  #{ $prefix }__chart-mask {\n    fill: color.get(get(\"color-mask\"));\n    r: calc( (get(\"viewbox-size\") / 2) - (var(--ulu-progress-circle-stroke-width) / 2) );\n  }\n  #{ $prefix }__value {\n    color: color.get(get(\"value-color-outside\"));\n    margin: get(\"value-margin-outside\");\n    font-weight: normal;\n    line-height: 1;\n  }\n\n  #{ $prefix }--outside {\n    flex-direction: row;\n    justify-content: center;\n    flex-wrap: wrap;\n  }\n  #{ $prefix }--outside-below {\n    display: block;\n  }\n  #{ $prefix }--pie {\n    // Note do not adjust the custom property for this since we want the mask to still be sized correctly\n    #{ $prefix }__chart-pie {\n      stroke-width: get(\"viewbox-size\"); // As large as the svg (so it fills the circle)\n    }\n    #{ $prefix }__chart-track {\n      fill: color.get(get(\"color-track\"));\n    }\n    #{ $prefix }__chart-mask {\n      fill: color.get(get(\"color-mask-pie\"));\n    }\n  }\n  #{ $prefix }--no-mask {\n    #{ $prefix }__chart-mask {\n      display: none;\n    }\n  }\n\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      --ulu-progress-circle-stroke-width: #{map.get($props, \"stroke-width\")};\n      #{ $prefix }__chart-svg {\n        width: map.get($props, \"size\");\n        height: map.get($props, \"size\");\n      }\n    }\n  }\n  @each $name, $color in get(\"status-colors\") {\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__chart-pie {\n        stroke: color.get($color);\n      }\n    }\n  }\n\n  \n",
              "line": {
                "start": 73,
                "end": 175
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-circle\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    --ulu-progress-circle-stroke-width: #{ get(\"stroke-width\") };\n  }\n  #{ $prefix }__chart {\n    position: relative;\n    line-height: 1;\n  }\n  #{ $prefix }__chart-value {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    color: color.get(get(\"value-color\"));\n    text-shadow: none;\n  }\n  #{ $prefix }__chart-svg {\n    width: get(\"size\");\n    height: get(\"size\");\n    transform: rotate(-90deg);\n    border-radius: 50%;\n  }\n  #{ $prefix }__chart-track {\n    fill: transparent;\n    stroke: color.get(get(\"color-track\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n  }\n  #{ $prefix }__chart-pie {\n    fill: transparent;\n    stroke: color.get(get(\"color-progress\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n    stroke-dasharray: 0 100;\n    will-change: stroke-dasharray;\n    // If value is changing\n    transition: stroke get(\"transition-duration\"); \n    // For in template composed initial animation\n    animation-duration: get(\"animation-duration\"); \n    animation-delay: get(\"animation-delay\"); \n    animation-timing-function: get(\"animation-timing\");\n  }\n  #{ $prefix }__chart-mask {\n    fill: color.get(get(\"color-mask\"));\n    r: calc( (get(\"viewbox-size\") / 2) - (var(--ulu-progress-circle-stroke-width) / 2) );\n  }\n  #{ $prefix }__value {\n    color: color.get(get(\"value-color-outside\"));\n    margin: get(\"value-margin-outside\");\n    font-weight: normal;\n    line-height: 1;\n  }\n\n  #{ $prefix }--outside {\n    flex-direction: row;\n    justify-content: center;\n    flex-wrap: wrap;\n  }\n  #{ $prefix }--outside-below {\n    display: block;\n  }\n  #{ $prefix }--pie {\n    // Note do not adjust the custom property for this since we want the mask to still be sized correctly\n    #{ $prefix }__chart-pie {\n      stroke-width: get(\"viewbox-size\"); // As large as the svg (so it fills the circle)\n    }\n    #{ $prefix }__chart-track {\n      fill: color.get(get(\"color-track\"));\n    }\n    #{ $prefix }__chart-mask {\n      fill: color.get(get(\"color-mask-pie\"));\n    }\n  }\n  #{ $prefix }--no-mask {\n    #{ $prefix }__chart-mask {\n      display: none;\n    }\n  }\n\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      --ulu-progress-circle-stroke-width: #{map.get($props, \"stroke-width\")};\n      #{ $prefix }__chart-svg {\n        width: map.get($props, \"size\");\n        height: map.get($props, \"size\");\n      }\n    }\n  }\n  @each $name, $color in get(\"status-colors\") {\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__chart-pie {\n        stroke: color.get($color);\n      }\n    }\n  }\n\n  \n",
              "line": {
                "start": 73,
                "end": 175
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-circle\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    --ulu-progress-circle-stroke-width: #{ get(\"stroke-width\") };\n  }\n  #{ $prefix }__chart {\n    position: relative;\n    line-height: 1;\n  }\n  #{ $prefix }__chart-value {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    color: color.get(get(\"value-color\"));\n    text-shadow: none;\n  }\n  #{ $prefix }__chart-svg {\n    width: get(\"size\");\n    height: get(\"size\");\n    transform: rotate(-90deg);\n    border-radius: 50%;\n  }\n  #{ $prefix }__chart-track {\n    fill: transparent;\n    stroke: color.get(get(\"color-track\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n  }\n  #{ $prefix }__chart-pie {\n    fill: transparent;\n    stroke: color.get(get(\"color-progress\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n    stroke-dasharray: 0 100;\n    will-change: stroke-dasharray;\n    // If value is changing\n    transition: stroke get(\"transition-duration\"); \n    // For in template composed initial animation\n    animation-duration: get(\"animation-duration\"); \n    animation-delay: get(\"animation-delay\"); \n    animation-timing-function: get(\"animation-timing\");\n  }\n  #{ $prefix }__chart-mask {\n    fill: color.get(get(\"color-mask\"));\n    r: calc( (get(\"viewbox-size\") / 2) - (var(--ulu-progress-circle-stroke-width) / 2) );\n  }\n  #{ $prefix }__value {\n    color: color.get(get(\"value-color-outside\"));\n    margin: get(\"value-margin-outside\");\n    font-weight: normal;\n    line-height: 1;\n  }\n\n  #{ $prefix }--outside {\n    flex-direction: row;\n    justify-content: center;\n    flex-wrap: wrap;\n  }\n  #{ $prefix }--outside-below {\n    display: block;\n  }\n  #{ $prefix }--pie {\n    // Note do not adjust the custom property for this since we want the mask to still be sized correctly\n    #{ $prefix }__chart-pie {\n      stroke-width: get(\"viewbox-size\"); // As large as the svg (so it fills the circle)\n    }\n    #{ $prefix }__chart-track {\n      fill: color.get(get(\"color-track\"));\n    }\n    #{ $prefix }__chart-mask {\n      fill: color.get(get(\"color-mask-pie\"));\n    }\n  }\n  #{ $prefix }--no-mask {\n    #{ $prefix }__chart-mask {\n      display: none;\n    }\n  }\n\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      --ulu-progress-circle-stroke-width: #{map.get($props, \"stroke-width\")};\n      #{ $prefix }__chart-svg {\n        width: map.get($props, \"size\");\n        height: map.get($props, \"size\");\n      }\n    }\n  }\n  @each $name, $color in get(\"status-colors\") {\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__chart-pie {\n        stroke: color.get($color);\n      }\n    }\n  }\n\n  \n",
              "line": {
                "start": 73,
                "end": 175
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-circle\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    --ulu-progress-circle-stroke-width: #{ get(\"stroke-width\") };\n  }\n  #{ $prefix }__chart {\n    position: relative;\n    line-height: 1;\n  }\n  #{ $prefix }__chart-value {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    color: color.get(get(\"value-color\"));\n    text-shadow: none;\n  }\n  #{ $prefix }__chart-svg {\n    width: get(\"size\");\n    height: get(\"size\");\n    transform: rotate(-90deg);\n    border-radius: 50%;\n  }\n  #{ $prefix }__chart-track {\n    fill: transparent;\n    stroke: color.get(get(\"color-track\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n  }\n  #{ $prefix }__chart-pie {\n    fill: transparent;\n    stroke: color.get(get(\"color-progress\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n    stroke-dasharray: 0 100;\n    will-change: stroke-dasharray;\n    // If value is changing\n    transition: stroke get(\"transition-duration\"); \n    // For in template composed initial animation\n    animation-duration: get(\"animation-duration\"); \n    animation-delay: get(\"animation-delay\"); \n    animation-timing-function: get(\"animation-timing\");\n  }\n  #{ $prefix }__chart-mask {\n    fill: color.get(get(\"color-mask\"));\n    r: calc( (get(\"viewbox-size\") / 2) - (var(--ulu-progress-circle-stroke-width) / 2) );\n  }\n  #{ $prefix }__value {\n    color: color.get(get(\"value-color-outside\"));\n    margin: get(\"value-margin-outside\");\n    font-weight: normal;\n    line-height: 1;\n  }\n\n  #{ $prefix }--outside {\n    flex-direction: row;\n    justify-content: center;\n    flex-wrap: wrap;\n  }\n  #{ $prefix }--outside-below {\n    display: block;\n  }\n  #{ $prefix }--pie {\n    // Note do not adjust the custom property for this since we want the mask to still be sized correctly\n    #{ $prefix }__chart-pie {\n      stroke-width: get(\"viewbox-size\"); // As large as the svg (so it fills the circle)\n    }\n    #{ $prefix }__chart-track {\n      fill: color.get(get(\"color-track\"));\n    }\n    #{ $prefix }__chart-mask {\n      fill: color.get(get(\"color-mask-pie\"));\n    }\n  }\n  #{ $prefix }--no-mask {\n    #{ $prefix }__chart-mask {\n      display: none;\n    }\n  }\n\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      --ulu-progress-circle-stroke-width: #{map.get($props, \"stroke-width\")};\n      #{ $prefix }__chart-svg {\n        width: map.get($props, \"size\");\n        height: map.get($props, \"size\");\n      }\n    }\n  }\n  @each $name, $color in get(\"status-colors\") {\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__chart-pie {\n        stroke: color.get($color);\n      }\n    }\n  }\n\n  \n",
              "line": {
                "start": 73,
                "end": 175
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-circle\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    --ulu-progress-circle-stroke-width: #{ get(\"stroke-width\") };\n  }\n  #{ $prefix }__chart {\n    position: relative;\n    line-height: 1;\n  }\n  #{ $prefix }__chart-value {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    color: color.get(get(\"value-color\"));\n    text-shadow: none;\n  }\n  #{ $prefix }__chart-svg {\n    width: get(\"size\");\n    height: get(\"size\");\n    transform: rotate(-90deg);\n    border-radius: 50%;\n  }\n  #{ $prefix }__chart-track {\n    fill: transparent;\n    stroke: color.get(get(\"color-track\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n  }\n  #{ $prefix }__chart-pie {\n    fill: transparent;\n    stroke: color.get(get(\"color-progress\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n    stroke-dasharray: 0 100;\n    will-change: stroke-dasharray;\n    // If value is changing\n    transition: stroke get(\"transition-duration\"); \n    // For in template composed initial animation\n    animation-duration: get(\"animation-duration\"); \n    animation-delay: get(\"animation-delay\"); \n    animation-timing-function: get(\"animation-timing\");\n  }\n  #{ $prefix }__chart-mask {\n    fill: color.get(get(\"color-mask\"));\n    r: calc( (get(\"viewbox-size\") / 2) - (var(--ulu-progress-circle-stroke-width) / 2) );\n  }\n  #{ $prefix }__value {\n    color: color.get(get(\"value-color-outside\"));\n    margin: get(\"value-margin-outside\");\n    font-weight: normal;\n    line-height: 1;\n  }\n\n  #{ $prefix }--outside {\n    flex-direction: row;\n    justify-content: center;\n    flex-wrap: wrap;\n  }\n  #{ $prefix }--outside-below {\n    display: block;\n  }\n  #{ $prefix }--pie {\n    // Note do not adjust the custom property for this since we want the mask to still be sized correctly\n    #{ $prefix }__chart-pie {\n      stroke-width: get(\"viewbox-size\"); // As large as the svg (so it fills the circle)\n    }\n    #{ $prefix }__chart-track {\n      fill: color.get(get(\"color-track\"));\n    }\n    #{ $prefix }__chart-mask {\n      fill: color.get(get(\"color-mask-pie\"));\n    }\n  }\n  #{ $prefix }--no-mask {\n    #{ $prefix }__chart-mask {\n      display: none;\n    }\n  }\n\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      --ulu-progress-circle-stroke-width: #{map.get($props, \"stroke-width\")};\n      #{ $prefix }__chart-svg {\n        width: map.get($props, \"size\");\n        height: map.get($props, \"size\");\n      }\n    }\n  }\n  @each $name, $color in get(\"status-colors\") {\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__chart-pie {\n        stroke: color.get($color);\n      }\n    }\n  }\n\n  \n",
              "line": {
                "start": 73,
                "end": 175
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-circle\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    --ulu-progress-circle-stroke-width: #{ get(\"stroke-width\") };\n  }\n  #{ $prefix }__chart {\n    position: relative;\n    line-height: 1;\n  }\n  #{ $prefix }__chart-value {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    color: color.get(get(\"value-color\"));\n    text-shadow: none;\n  }\n  #{ $prefix }__chart-svg {\n    width: get(\"size\");\n    height: get(\"size\");\n    transform: rotate(-90deg);\n    border-radius: 50%;\n  }\n  #{ $prefix }__chart-track {\n    fill: transparent;\n    stroke: color.get(get(\"color-track\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n  }\n  #{ $prefix }__chart-pie {\n    fill: transparent;\n    stroke: color.get(get(\"color-progress\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n    stroke-dasharray: 0 100;\n    will-change: stroke-dasharray;\n    // If value is changing\n    transition: stroke get(\"transition-duration\"); \n    // For in template composed initial animation\n    animation-duration: get(\"animation-duration\"); \n    animation-delay: get(\"animation-delay\"); \n    animation-timing-function: get(\"animation-timing\");\n  }\n  #{ $prefix }__chart-mask {\n    fill: color.get(get(\"color-mask\"));\n    r: calc( (get(\"viewbox-size\") / 2) - (var(--ulu-progress-circle-stroke-width) / 2) );\n  }\n  #{ $prefix }__value {\n    color: color.get(get(\"value-color-outside\"));\n    margin: get(\"value-margin-outside\");\n    font-weight: normal;\n    line-height: 1;\n  }\n\n  #{ $prefix }--outside {\n    flex-direction: row;\n    justify-content: center;\n    flex-wrap: wrap;\n  }\n  #{ $prefix }--outside-below {\n    display: block;\n  }\n  #{ $prefix }--pie {\n    // Note do not adjust the custom property for this since we want the mask to still be sized correctly\n    #{ $prefix }__chart-pie {\n      stroke-width: get(\"viewbox-size\"); // As large as the svg (so it fills the circle)\n    }\n    #{ $prefix }__chart-track {\n      fill: color.get(get(\"color-track\"));\n    }\n    #{ $prefix }__chart-mask {\n      fill: color.get(get(\"color-mask-pie\"));\n    }\n  }\n  #{ $prefix }--no-mask {\n    #{ $prefix }__chart-mask {\n      display: none;\n    }\n  }\n\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      --ulu-progress-circle-stroke-width: #{map.get($props, \"stroke-width\")};\n      #{ $prefix }__chart-svg {\n        width: map.get($props, \"size\");\n        height: map.get($props, \"size\");\n      }\n    }\n  }\n  @each $name, $color in get(\"status-colors\") {\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__chart-pie {\n        stroke: color.get($color);\n      }\n    }\n  }\n\n  \n",
              "line": {
                "start": 73,
                "end": 175
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-circle\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    --ulu-progress-circle-stroke-width: #{ get(\"stroke-width\") };\n  }\n  #{ $prefix }__chart {\n    position: relative;\n    line-height: 1;\n  }\n  #{ $prefix }__chart-value {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    color: color.get(get(\"value-color\"));\n    text-shadow: none;\n  }\n  #{ $prefix }__chart-svg {\n    width: get(\"size\");\n    height: get(\"size\");\n    transform: rotate(-90deg);\n    border-radius: 50%;\n  }\n  #{ $prefix }__chart-track {\n    fill: transparent;\n    stroke: color.get(get(\"color-track\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n  }\n  #{ $prefix }__chart-pie {\n    fill: transparent;\n    stroke: color.get(get(\"color-progress\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n    stroke-dasharray: 0 100;\n    will-change: stroke-dasharray;\n    // If value is changing\n    transition: stroke get(\"transition-duration\"); \n    // For in template composed initial animation\n    animation-duration: get(\"animation-duration\"); \n    animation-delay: get(\"animation-delay\"); \n    animation-timing-function: get(\"animation-timing\");\n  }\n  #{ $prefix }__chart-mask {\n    fill: color.get(get(\"color-mask\"));\n    r: calc( (get(\"viewbox-size\") / 2) - (var(--ulu-progress-circle-stroke-width) / 2) );\n  }\n  #{ $prefix }__value {\n    color: color.get(get(\"value-color-outside\"));\n    margin: get(\"value-margin-outside\");\n    font-weight: normal;\n    line-height: 1;\n  }\n\n  #{ $prefix }--outside {\n    flex-direction: row;\n    justify-content: center;\n    flex-wrap: wrap;\n  }\n  #{ $prefix }--outside-below {\n    display: block;\n  }\n  #{ $prefix }--pie {\n    // Note do not adjust the custom property for this since we want the mask to still be sized correctly\n    #{ $prefix }__chart-pie {\n      stroke-width: get(\"viewbox-size\"); // As large as the svg (so it fills the circle)\n    }\n    #{ $prefix }__chart-track {\n      fill: color.get(get(\"color-track\"));\n    }\n    #{ $prefix }__chart-mask {\n      fill: color.get(get(\"color-mask-pie\"));\n    }\n  }\n  #{ $prefix }--no-mask {\n    #{ $prefix }__chart-mask {\n      display: none;\n    }\n  }\n\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      --ulu-progress-circle-stroke-width: #{map.get($props, \"stroke-width\")};\n      #{ $prefix }__chart-svg {\n        width: map.get($props, \"size\");\n        height: map.get($props, \"size\");\n      }\n    }\n  }\n  @each $name, $color in get(\"status-colors\") {\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__chart-pie {\n        stroke: color.get($color);\n      }\n    }\n  }\n\n  \n",
              "line": {
                "start": 73,
                "end": 175
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-circle\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    --ulu-progress-circle-stroke-width: #{ get(\"stroke-width\") };\n  }\n  #{ $prefix }__chart {\n    position: relative;\n    line-height: 1;\n  }\n  #{ $prefix }__chart-value {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    color: color.get(get(\"value-color\"));\n    text-shadow: none;\n  }\n  #{ $prefix }__chart-svg {\n    width: get(\"size\");\n    height: get(\"size\");\n    transform: rotate(-90deg);\n    border-radius: 50%;\n  }\n  #{ $prefix }__chart-track {\n    fill: transparent;\n    stroke: color.get(get(\"color-track\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n  }\n  #{ $prefix }__chart-pie {\n    fill: transparent;\n    stroke: color.get(get(\"color-progress\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n    stroke-dasharray: 0 100;\n    will-change: stroke-dasharray;\n    // If value is changing\n    transition: stroke get(\"transition-duration\"); \n    // For in template composed initial animation\n    animation-duration: get(\"animation-duration\"); \n    animation-delay: get(\"animation-delay\"); \n    animation-timing-function: get(\"animation-timing\");\n  }\n  #{ $prefix }__chart-mask {\n    fill: color.get(get(\"color-mask\"));\n    r: calc( (get(\"viewbox-size\") / 2) - (var(--ulu-progress-circle-stroke-width) / 2) );\n  }\n  #{ $prefix }__value {\n    color: color.get(get(\"value-color-outside\"));\n    margin: get(\"value-margin-outside\");\n    font-weight: normal;\n    line-height: 1;\n  }\n\n  #{ $prefix }--outside {\n    flex-direction: row;\n    justify-content: center;\n    flex-wrap: wrap;\n  }\n  #{ $prefix }--outside-below {\n    display: block;\n  }\n  #{ $prefix }--pie {\n    // Note do not adjust the custom property for this since we want the mask to still be sized correctly\n    #{ $prefix }__chart-pie {\n      stroke-width: get(\"viewbox-size\"); // As large as the svg (so it fills the circle)\n    }\n    #{ $prefix }__chart-track {\n      fill: color.get(get(\"color-track\"));\n    }\n    #{ $prefix }__chart-mask {\n      fill: color.get(get(\"color-mask-pie\"));\n    }\n  }\n  #{ $prefix }--no-mask {\n    #{ $prefix }__chart-mask {\n      display: none;\n    }\n  }\n\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      --ulu-progress-circle-stroke-width: #{map.get($props, \"stroke-width\")};\n      #{ $prefix }__chart-svg {\n        width: map.get($props, \"size\");\n        height: map.get($props, \"size\");\n      }\n    }\n  }\n  @each $name, $color in get(\"status-colors\") {\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__chart-pie {\n        stroke: color.get($color);\n      }\n    }\n  }\n\n  \n",
              "line": {
                "start": 73,
                "end": 175
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-circle\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    --ulu-progress-circle-stroke-width: #{ get(\"stroke-width\") };\n  }\n  #{ $prefix }__chart {\n    position: relative;\n    line-height: 1;\n  }\n  #{ $prefix }__chart-value {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    color: color.get(get(\"value-color\"));\n    text-shadow: none;\n  }\n  #{ $prefix }__chart-svg {\n    width: get(\"size\");\n    height: get(\"size\");\n    transform: rotate(-90deg);\n    border-radius: 50%;\n  }\n  #{ $prefix }__chart-track {\n    fill: transparent;\n    stroke: color.get(get(\"color-track\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n  }\n  #{ $prefix }__chart-pie {\n    fill: transparent;\n    stroke: color.get(get(\"color-progress\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n    stroke-dasharray: 0 100;\n    will-change: stroke-dasharray;\n    // If value is changing\n    transition: stroke get(\"transition-duration\"); \n    // For in template composed initial animation\n    animation-duration: get(\"animation-duration\"); \n    animation-delay: get(\"animation-delay\"); \n    animation-timing-function: get(\"animation-timing\");\n  }\n  #{ $prefix }__chart-mask {\n    fill: color.get(get(\"color-mask\"));\n    r: calc( (get(\"viewbox-size\") / 2) - (var(--ulu-progress-circle-stroke-width) / 2) );\n  }\n  #{ $prefix }__value {\n    color: color.get(get(\"value-color-outside\"));\n    margin: get(\"value-margin-outside\");\n    font-weight: normal;\n    line-height: 1;\n  }\n\n  #{ $prefix }--outside {\n    flex-direction: row;\n    justify-content: center;\n    flex-wrap: wrap;\n  }\n  #{ $prefix }--outside-below {\n    display: block;\n  }\n  #{ $prefix }--pie {\n    // Note do not adjust the custom property for this since we want the mask to still be sized correctly\n    #{ $prefix }__chart-pie {\n      stroke-width: get(\"viewbox-size\"); // As large as the svg (so it fills the circle)\n    }\n    #{ $prefix }__chart-track {\n      fill: color.get(get(\"color-track\"));\n    }\n    #{ $prefix }__chart-mask {\n      fill: color.get(get(\"color-mask-pie\"));\n    }\n  }\n  #{ $prefix }--no-mask {\n    #{ $prefix }__chart-mask {\n      display: none;\n    }\n  }\n\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      --ulu-progress-circle-stroke-width: #{map.get($props, \"stroke-width\")};\n      #{ $prefix }__chart-svg {\n        width: map.get($props, \"size\");\n        height: map.get($props, \"size\");\n      }\n    }\n  }\n  @each $name, $color in get(\"status-colors\") {\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__chart-pie {\n        stroke: color.get($color);\n      }\n    }\n  }\n\n  \n",
              "line": {
                "start": 73,
                "end": 175
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-circle\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    --ulu-progress-circle-stroke-width: #{ get(\"stroke-width\") };\n  }\n  #{ $prefix }__chart {\n    position: relative;\n    line-height: 1;\n  }\n  #{ $prefix }__chart-value {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    color: color.get(get(\"value-color\"));\n    text-shadow: none;\n  }\n  #{ $prefix }__chart-svg {\n    width: get(\"size\");\n    height: get(\"size\");\n    transform: rotate(-90deg);\n    border-radius: 50%;\n  }\n  #{ $prefix }__chart-track {\n    fill: transparent;\n    stroke: color.get(get(\"color-track\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n  }\n  #{ $prefix }__chart-pie {\n    fill: transparent;\n    stroke: color.get(get(\"color-progress\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n    stroke-dasharray: 0 100;\n    will-change: stroke-dasharray;\n    // If value is changing\n    transition: stroke get(\"transition-duration\"); \n    // For in template composed initial animation\n    animation-duration: get(\"animation-duration\"); \n    animation-delay: get(\"animation-delay\"); \n    animation-timing-function: get(\"animation-timing\");\n  }\n  #{ $prefix }__chart-mask {\n    fill: color.get(get(\"color-mask\"));\n    r: calc( (get(\"viewbox-size\") / 2) - (var(--ulu-progress-circle-stroke-width) / 2) );\n  }\n  #{ $prefix }__value {\n    color: color.get(get(\"value-color-outside\"));\n    margin: get(\"value-margin-outside\");\n    font-weight: normal;\n    line-height: 1;\n  }\n\n  #{ $prefix }--outside {\n    flex-direction: row;\n    justify-content: center;\n    flex-wrap: wrap;\n  }\n  #{ $prefix }--outside-below {\n    display: block;\n  }\n  #{ $prefix }--pie {\n    // Note do not adjust the custom property for this since we want the mask to still be sized correctly\n    #{ $prefix }__chart-pie {\n      stroke-width: get(\"viewbox-size\"); // As large as the svg (so it fills the circle)\n    }\n    #{ $prefix }__chart-track {\n      fill: color.get(get(\"color-track\"));\n    }\n    #{ $prefix }__chart-mask {\n      fill: color.get(get(\"color-mask-pie\"));\n    }\n  }\n  #{ $prefix }--no-mask {\n    #{ $prefix }__chart-mask {\n      display: none;\n    }\n  }\n\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      --ulu-progress-circle-stroke-width: #{map.get($props, \"stroke-width\")};\n      #{ $prefix }__chart-svg {\n        width: map.get($props, \"size\");\n        height: map.get($props, \"size\");\n      }\n    }\n  }\n  @each $name, $color in get(\"status-colors\") {\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__chart-pie {\n        stroke: color.get($color);\n      }\n    }\n  }\n\n  \n",
              "line": {
                "start": 73,
                "end": 175
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-circle\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    --ulu-progress-circle-stroke-width: #{ get(\"stroke-width\") };\n  }\n  #{ $prefix }__chart {\n    position: relative;\n    line-height: 1;\n  }\n  #{ $prefix }__chart-value {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    color: color.get(get(\"value-color\"));\n    text-shadow: none;\n  }\n  #{ $prefix }__chart-svg {\n    width: get(\"size\");\n    height: get(\"size\");\n    transform: rotate(-90deg);\n    border-radius: 50%;\n  }\n  #{ $prefix }__chart-track {\n    fill: transparent;\n    stroke: color.get(get(\"color-track\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n  }\n  #{ $prefix }__chart-pie {\n    fill: transparent;\n    stroke: color.get(get(\"color-progress\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n    stroke-dasharray: 0 100;\n    will-change: stroke-dasharray;\n    // If value is changing\n    transition: stroke get(\"transition-duration\"); \n    // For in template composed initial animation\n    animation-duration: get(\"animation-duration\"); \n    animation-delay: get(\"animation-delay\"); \n    animation-timing-function: get(\"animation-timing\");\n  }\n  #{ $prefix }__chart-mask {\n    fill: color.get(get(\"color-mask\"));\n    r: calc( (get(\"viewbox-size\") / 2) - (var(--ulu-progress-circle-stroke-width) / 2) );\n  }\n  #{ $prefix }__value {\n    color: color.get(get(\"value-color-outside\"));\n    margin: get(\"value-margin-outside\");\n    font-weight: normal;\n    line-height: 1;\n  }\n\n  #{ $prefix }--outside {\n    flex-direction: row;\n    justify-content: center;\n    flex-wrap: wrap;\n  }\n  #{ $prefix }--outside-below {\n    display: block;\n  }\n  #{ $prefix }--pie {\n    // Note do not adjust the custom property for this since we want the mask to still be sized correctly\n    #{ $prefix }__chart-pie {\n      stroke-width: get(\"viewbox-size\"); // As large as the svg (so it fills the circle)\n    }\n    #{ $prefix }__chart-track {\n      fill: color.get(get(\"color-track\"));\n    }\n    #{ $prefix }__chart-mask {\n      fill: color.get(get(\"color-mask-pie\"));\n    }\n  }\n  #{ $prefix }--no-mask {\n    #{ $prefix }__chart-mask {\n      display: none;\n    }\n  }\n\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      --ulu-progress-circle-stroke-width: #{map.get($props, \"stroke-width\")};\n      #{ $prefix }__chart-svg {\n        width: map.get($props, \"size\");\n        height: map.get($props, \"size\");\n      }\n    }\n  }\n  @each $name, $color in get(\"status-colors\") {\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__chart-pie {\n        stroke: color.get($color);\n      }\n    }\n  }\n\n  \n",
              "line": {
                "start": 73,
                "end": 175
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-circle\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    --ulu-progress-circle-stroke-width: #{ get(\"stroke-width\") };\n  }\n  #{ $prefix }__chart {\n    position: relative;\n    line-height: 1;\n  }\n  #{ $prefix }__chart-value {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    color: color.get(get(\"value-color\"));\n    text-shadow: none;\n  }\n  #{ $prefix }__chart-svg {\n    width: get(\"size\");\n    height: get(\"size\");\n    transform: rotate(-90deg);\n    border-radius: 50%;\n  }\n  #{ $prefix }__chart-track {\n    fill: transparent;\n    stroke: color.get(get(\"color-track\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n  }\n  #{ $prefix }__chart-pie {\n    fill: transparent;\n    stroke: color.get(get(\"color-progress\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n    stroke-dasharray: 0 100;\n    will-change: stroke-dasharray;\n    // If value is changing\n    transition: stroke get(\"transition-duration\"); \n    // For in template composed initial animation\n    animation-duration: get(\"animation-duration\"); \n    animation-delay: get(\"animation-delay\"); \n    animation-timing-function: get(\"animation-timing\");\n  }\n  #{ $prefix }__chart-mask {\n    fill: color.get(get(\"color-mask\"));\n    r: calc( (get(\"viewbox-size\") / 2) - (var(--ulu-progress-circle-stroke-width) / 2) );\n  }\n  #{ $prefix }__value {\n    color: color.get(get(\"value-color-outside\"));\n    margin: get(\"value-margin-outside\");\n    font-weight: normal;\n    line-height: 1;\n  }\n\n  #{ $prefix }--outside {\n    flex-direction: row;\n    justify-content: center;\n    flex-wrap: wrap;\n  }\n  #{ $prefix }--outside-below {\n    display: block;\n  }\n  #{ $prefix }--pie {\n    // Note do not adjust the custom property for this since we want the mask to still be sized correctly\n    #{ $prefix }__chart-pie {\n      stroke-width: get(\"viewbox-size\"); // As large as the svg (so it fills the circle)\n    }\n    #{ $prefix }__chart-track {\n      fill: color.get(get(\"color-track\"));\n    }\n    #{ $prefix }__chart-mask {\n      fill: color.get(get(\"color-mask-pie\"));\n    }\n  }\n  #{ $prefix }--no-mask {\n    #{ $prefix }__chart-mask {\n      display: none;\n    }\n  }\n\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      --ulu-progress-circle-stroke-width: #{map.get($props, \"stroke-width\")};\n      #{ $prefix }__chart-svg {\n        width: map.get($props, \"size\");\n        height: map.get($props, \"size\");\n      }\n    }\n  }\n  @each $name, $color in get(\"status-colors\") {\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__chart-pie {\n        stroke: color.get($color);\n      }\n    }\n  }\n\n  \n",
              "line": {
                "start": 73,
                "end": 175
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-circle\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    --ulu-progress-circle-stroke-width: #{ get(\"stroke-width\") };\n  }\n  #{ $prefix }__chart {\n    position: relative;\n    line-height: 1;\n  }\n  #{ $prefix }__chart-value {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    color: color.get(get(\"value-color\"));\n    text-shadow: none;\n  }\n  #{ $prefix }__chart-svg {\n    width: get(\"size\");\n    height: get(\"size\");\n    transform: rotate(-90deg);\n    border-radius: 50%;\n  }\n  #{ $prefix }__chart-track {\n    fill: transparent;\n    stroke: color.get(get(\"color-track\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n  }\n  #{ $prefix }__chart-pie {\n    fill: transparent;\n    stroke: color.get(get(\"color-progress\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n    stroke-dasharray: 0 100;\n    will-change: stroke-dasharray;\n    // If value is changing\n    transition: stroke get(\"transition-duration\"); \n    // For in template composed initial animation\n    animation-duration: get(\"animation-duration\"); \n    animation-delay: get(\"animation-delay\"); \n    animation-timing-function: get(\"animation-timing\");\n  }\n  #{ $prefix }__chart-mask {\n    fill: color.get(get(\"color-mask\"));\n    r: calc( (get(\"viewbox-size\") / 2) - (var(--ulu-progress-circle-stroke-width) / 2) );\n  }\n  #{ $prefix }__value {\n    color: color.get(get(\"value-color-outside\"));\n    margin: get(\"value-margin-outside\");\n    font-weight: normal;\n    line-height: 1;\n  }\n\n  #{ $prefix }--outside {\n    flex-direction: row;\n    justify-content: center;\n    flex-wrap: wrap;\n  }\n  #{ $prefix }--outside-below {\n    display: block;\n  }\n  #{ $prefix }--pie {\n    // Note do not adjust the custom property for this since we want the mask to still be sized correctly\n    #{ $prefix }__chart-pie {\n      stroke-width: get(\"viewbox-size\"); // As large as the svg (so it fills the circle)\n    }\n    #{ $prefix }__chart-track {\n      fill: color.get(get(\"color-track\"));\n    }\n    #{ $prefix }__chart-mask {\n      fill: color.get(get(\"color-mask-pie\"));\n    }\n  }\n  #{ $prefix }--no-mask {\n    #{ $prefix }__chart-mask {\n      display: none;\n    }\n  }\n\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      --ulu-progress-circle-stroke-width: #{map.get($props, \"stroke-width\")};\n      #{ $prefix }__chart-svg {\n        width: map.get($props, \"size\");\n        height: map.get($props, \"size\");\n      }\n    }\n  }\n  @each $name, $color in get(\"status-colors\") {\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__chart-pie {\n        stroke: color.get($color);\n      }\n    }\n  }\n\n  \n",
              "line": {
                "start": 73,
                "end": 175
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-circle\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    --ulu-progress-circle-stroke-width: #{ get(\"stroke-width\") };\n  }\n  #{ $prefix }__chart {\n    position: relative;\n    line-height: 1;\n  }\n  #{ $prefix }__chart-value {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    color: color.get(get(\"value-color\"));\n    text-shadow: none;\n  }\n  #{ $prefix }__chart-svg {\n    width: get(\"size\");\n    height: get(\"size\");\n    transform: rotate(-90deg);\n    border-radius: 50%;\n  }\n  #{ $prefix }__chart-track {\n    fill: transparent;\n    stroke: color.get(get(\"color-track\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n  }\n  #{ $prefix }__chart-pie {\n    fill: transparent;\n    stroke: color.get(get(\"color-progress\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n    stroke-dasharray: 0 100;\n    will-change: stroke-dasharray;\n    // If value is changing\n    transition: stroke get(\"transition-duration\"); \n    // For in template composed initial animation\n    animation-duration: get(\"animation-duration\"); \n    animation-delay: get(\"animation-delay\"); \n    animation-timing-function: get(\"animation-timing\");\n  }\n  #{ $prefix }__chart-mask {\n    fill: color.get(get(\"color-mask\"));\n    r: calc( (get(\"viewbox-size\") / 2) - (var(--ulu-progress-circle-stroke-width) / 2) );\n  }\n  #{ $prefix }__value {\n    color: color.get(get(\"value-color-outside\"));\n    margin: get(\"value-margin-outside\");\n    font-weight: normal;\n    line-height: 1;\n  }\n\n  #{ $prefix }--outside {\n    flex-direction: row;\n    justify-content: center;\n    flex-wrap: wrap;\n  }\n  #{ $prefix }--outside-below {\n    display: block;\n  }\n  #{ $prefix }--pie {\n    // Note do not adjust the custom property for this since we want the mask to still be sized correctly\n    #{ $prefix }__chart-pie {\n      stroke-width: get(\"viewbox-size\"); // As large as the svg (so it fills the circle)\n    }\n    #{ $prefix }__chart-track {\n      fill: color.get(get(\"color-track\"));\n    }\n    #{ $prefix }__chart-mask {\n      fill: color.get(get(\"color-mask-pie\"));\n    }\n  }\n  #{ $prefix }--no-mask {\n    #{ $prefix }__chart-mask {\n      display: none;\n    }\n  }\n\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      --ulu-progress-circle-stroke-width: #{map.get($props, \"stroke-width\")};\n      #{ $prefix }__chart-svg {\n        width: map.get($props, \"size\");\n        height: map.get($props, \"size\");\n      }\n    }\n  }\n  @each $name, $color in get(\"status-colors\") {\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__chart-pie {\n        stroke: color.get($color);\n      }\n    }\n  }\n\n  \n",
              "line": {
                "start": 73,
                "end": 175
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-circle\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    --ulu-progress-circle-stroke-width: #{ get(\"stroke-width\") };\n  }\n  #{ $prefix }__chart {\n    position: relative;\n    line-height: 1;\n  }\n  #{ $prefix }__chart-value {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    color: color.get(get(\"value-color\"));\n    text-shadow: none;\n  }\n  #{ $prefix }__chart-svg {\n    width: get(\"size\");\n    height: get(\"size\");\n    transform: rotate(-90deg);\n    border-radius: 50%;\n  }\n  #{ $prefix }__chart-track {\n    fill: transparent;\n    stroke: color.get(get(\"color-track\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n  }\n  #{ $prefix }__chart-pie {\n    fill: transparent;\n    stroke: color.get(get(\"color-progress\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n    stroke-dasharray: 0 100;\n    will-change: stroke-dasharray;\n    // If value is changing\n    transition: stroke get(\"transition-duration\"); \n    // For in template composed initial animation\n    animation-duration: get(\"animation-duration\"); \n    animation-delay: get(\"animation-delay\"); \n    animation-timing-function: get(\"animation-timing\");\n  }\n  #{ $prefix }__chart-mask {\n    fill: color.get(get(\"color-mask\"));\n    r: calc( (get(\"viewbox-size\") / 2) - (var(--ulu-progress-circle-stroke-width) / 2) );\n  }\n  #{ $prefix }__value {\n    color: color.get(get(\"value-color-outside\"));\n    margin: get(\"value-margin-outside\");\n    font-weight: normal;\n    line-height: 1;\n  }\n\n  #{ $prefix }--outside {\n    flex-direction: row;\n    justify-content: center;\n    flex-wrap: wrap;\n  }\n  #{ $prefix }--outside-below {\n    display: block;\n  }\n  #{ $prefix }--pie {\n    // Note do not adjust the custom property for this since we want the mask to still be sized correctly\n    #{ $prefix }__chart-pie {\n      stroke-width: get(\"viewbox-size\"); // As large as the svg (so it fills the circle)\n    }\n    #{ $prefix }__chart-track {\n      fill: color.get(get(\"color-track\"));\n    }\n    #{ $prefix }__chart-mask {\n      fill: color.get(get(\"color-mask-pie\"));\n    }\n  }\n  #{ $prefix }--no-mask {\n    #{ $prefix }__chart-mask {\n      display: none;\n    }\n  }\n\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      --ulu-progress-circle-stroke-width: #{map.get($props, \"stroke-width\")};\n      #{ $prefix }__chart-svg {\n        width: map.get($props, \"size\");\n        height: map.get($props, \"size\");\n      }\n    }\n  }\n  @each $name, $color in get(\"status-colors\") {\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__chart-pie {\n        stroke: color.get($color);\n      }\n    }\n  }\n\n  \n",
              "line": {
                "start": 73,
                "end": 175
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-circle\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    --ulu-progress-circle-stroke-width: #{ get(\"stroke-width\") };\n  }\n  #{ $prefix }__chart {\n    position: relative;\n    line-height: 1;\n  }\n  #{ $prefix }__chart-value {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    color: color.get(get(\"value-color\"));\n    text-shadow: none;\n  }\n  #{ $prefix }__chart-svg {\n    width: get(\"size\");\n    height: get(\"size\");\n    transform: rotate(-90deg);\n    border-radius: 50%;\n  }\n  #{ $prefix }__chart-track {\n    fill: transparent;\n    stroke: color.get(get(\"color-track\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n  }\n  #{ $prefix }__chart-pie {\n    fill: transparent;\n    stroke: color.get(get(\"color-progress\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n    stroke-dasharray: 0 100;\n    will-change: stroke-dasharray;\n    // If value is changing\n    transition: stroke get(\"transition-duration\"); \n    // For in template composed initial animation\n    animation-duration: get(\"animation-duration\"); \n    animation-delay: get(\"animation-delay\"); \n    animation-timing-function: get(\"animation-timing\");\n  }\n  #{ $prefix }__chart-mask {\n    fill: color.get(get(\"color-mask\"));\n    r: calc( (get(\"viewbox-size\") / 2) - (var(--ulu-progress-circle-stroke-width) / 2) );\n  }\n  #{ $prefix }__value {\n    color: color.get(get(\"value-color-outside\"));\n    margin: get(\"value-margin-outside\");\n    font-weight: normal;\n    line-height: 1;\n  }\n\n  #{ $prefix }--outside {\n    flex-direction: row;\n    justify-content: center;\n    flex-wrap: wrap;\n  }\n  #{ $prefix }--outside-below {\n    display: block;\n  }\n  #{ $prefix }--pie {\n    // Note do not adjust the custom property for this since we want the mask to still be sized correctly\n    #{ $prefix }__chart-pie {\n      stroke-width: get(\"viewbox-size\"); // As large as the svg (so it fills the circle)\n    }\n    #{ $prefix }__chart-track {\n      fill: color.get(get(\"color-track\"));\n    }\n    #{ $prefix }__chart-mask {\n      fill: color.get(get(\"color-mask-pie\"));\n    }\n  }\n  #{ $prefix }--no-mask {\n    #{ $prefix }__chart-mask {\n      display: none;\n    }\n  }\n\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      --ulu-progress-circle-stroke-width: #{map.get($props, \"stroke-width\")};\n      #{ $prefix }__chart-svg {\n        width: map.get($props, \"size\");\n        height: map.get($props, \"size\");\n      }\n    }\n  }\n  @each $name, $color in get(\"status-colors\") {\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__chart-pie {\n        stroke: color.get($color);\n      }\n    }\n  }\n\n  \n",
              "line": {
                "start": 73,
                "end": 175
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-circle\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    --ulu-progress-circle-stroke-width: #{ get(\"stroke-width\") };\n  }\n  #{ $prefix }__chart {\n    position: relative;\n    line-height: 1;\n  }\n  #{ $prefix }__chart-value {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    color: color.get(get(\"value-color\"));\n    text-shadow: none;\n  }\n  #{ $prefix }__chart-svg {\n    width: get(\"size\");\n    height: get(\"size\");\n    transform: rotate(-90deg);\n    border-radius: 50%;\n  }\n  #{ $prefix }__chart-track {\n    fill: transparent;\n    stroke: color.get(get(\"color-track\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n  }\n  #{ $prefix }__chart-pie {\n    fill: transparent;\n    stroke: color.get(get(\"color-progress\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n    stroke-dasharray: 0 100;\n    will-change: stroke-dasharray;\n    // If value is changing\n    transition: stroke get(\"transition-duration\"); \n    // For in template composed initial animation\n    animation-duration: get(\"animation-duration\"); \n    animation-delay: get(\"animation-delay\"); \n    animation-timing-function: get(\"animation-timing\");\n  }\n  #{ $prefix }__chart-mask {\n    fill: color.get(get(\"color-mask\"));\n    r: calc( (get(\"viewbox-size\") / 2) - (var(--ulu-progress-circle-stroke-width) / 2) );\n  }\n  #{ $prefix }__value {\n    color: color.get(get(\"value-color-outside\"));\n    margin: get(\"value-margin-outside\");\n    font-weight: normal;\n    line-height: 1;\n  }\n\n  #{ $prefix }--outside {\n    flex-direction: row;\n    justify-content: center;\n    flex-wrap: wrap;\n  }\n  #{ $prefix }--outside-below {\n    display: block;\n  }\n  #{ $prefix }--pie {\n    // Note do not adjust the custom property for this since we want the mask to still be sized correctly\n    #{ $prefix }__chart-pie {\n      stroke-width: get(\"viewbox-size\"); // As large as the svg (so it fills the circle)\n    }\n    #{ $prefix }__chart-track {\n      fill: color.get(get(\"color-track\"));\n    }\n    #{ $prefix }__chart-mask {\n      fill: color.get(get(\"color-mask-pie\"));\n    }\n  }\n  #{ $prefix }--no-mask {\n    #{ $prefix }__chart-mask {\n      display: none;\n    }\n  }\n\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      --ulu-progress-circle-stroke-width: #{map.get($props, \"stroke-width\")};\n      #{ $prefix }__chart-svg {\n        width: map.get($props, \"size\");\n        height: map.get($props, \"size\");\n      }\n    }\n  }\n  @each $name, $color in get(\"status-colors\") {\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__chart-pie {\n        stroke: color.get($color);\n      }\n    }\n  }\n\n  \n",
              "line": {
                "start": 73,
                "end": 175
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-circle\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    --ulu-progress-circle-stroke-width: #{ get(\"stroke-width\") };\n  }\n  #{ $prefix }__chart {\n    position: relative;\n    line-height: 1;\n  }\n  #{ $prefix }__chart-value {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    color: color.get(get(\"value-color\"));\n    text-shadow: none;\n  }\n  #{ $prefix }__chart-svg {\n    width: get(\"size\");\n    height: get(\"size\");\n    transform: rotate(-90deg);\n    border-radius: 50%;\n  }\n  #{ $prefix }__chart-track {\n    fill: transparent;\n    stroke: color.get(get(\"color-track\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n  }\n  #{ $prefix }__chart-pie {\n    fill: transparent;\n    stroke: color.get(get(\"color-progress\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n    stroke-dasharray: 0 100;\n    will-change: stroke-dasharray;\n    // If value is changing\n    transition: stroke get(\"transition-duration\"); \n    // For in template composed initial animation\n    animation-duration: get(\"animation-duration\"); \n    animation-delay: get(\"animation-delay\"); \n    animation-timing-function: get(\"animation-timing\");\n  }\n  #{ $prefix }__chart-mask {\n    fill: color.get(get(\"color-mask\"));\n    r: calc( (get(\"viewbox-size\") / 2) - (var(--ulu-progress-circle-stroke-width) / 2) );\n  }\n  #{ $prefix }__value {\n    color: color.get(get(\"value-color-outside\"));\n    margin: get(\"value-margin-outside\");\n    font-weight: normal;\n    line-height: 1;\n  }\n\n  #{ $prefix }--outside {\n    flex-direction: row;\n    justify-content: center;\n    flex-wrap: wrap;\n  }\n  #{ $prefix }--outside-below {\n    display: block;\n  }\n  #{ $prefix }--pie {\n    // Note do not adjust the custom property for this since we want the mask to still be sized correctly\n    #{ $prefix }__chart-pie {\n      stroke-width: get(\"viewbox-size\"); // As large as the svg (so it fills the circle)\n    }\n    #{ $prefix }__chart-track {\n      fill: color.get(get(\"color-track\"));\n    }\n    #{ $prefix }__chart-mask {\n      fill: color.get(get(\"color-mask-pie\"));\n    }\n  }\n  #{ $prefix }--no-mask {\n    #{ $prefix }__chart-mask {\n      display: none;\n    }\n  }\n\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      --ulu-progress-circle-stroke-width: #{map.get($props, \"stroke-width\")};\n      #{ $prefix }__chart-svg {\n        width: map.get($props, \"size\");\n        height: map.get($props, \"size\");\n      }\n    }\n  }\n  @each $name, $color in get(\"status-colors\") {\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__chart-pie {\n        stroke: color.get($color);\n      }\n    }\n  }\n\n  \n",
              "line": {
                "start": 73,
                "end": 175
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-circle\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    --ulu-progress-circle-stroke-width: #{ get(\"stroke-width\") };\n  }\n  #{ $prefix }__chart {\n    position: relative;\n    line-height: 1;\n  }\n  #{ $prefix }__chart-value {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    color: color.get(get(\"value-color\"));\n    text-shadow: none;\n  }\n  #{ $prefix }__chart-svg {\n    width: get(\"size\");\n    height: get(\"size\");\n    transform: rotate(-90deg);\n    border-radius: 50%;\n  }\n  #{ $prefix }__chart-track {\n    fill: transparent;\n    stroke: color.get(get(\"color-track\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n  }\n  #{ $prefix }__chart-pie {\n    fill: transparent;\n    stroke: color.get(get(\"color-progress\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n    stroke-dasharray: 0 100;\n    will-change: stroke-dasharray;\n    // If value is changing\n    transition: stroke get(\"transition-duration\"); \n    // For in template composed initial animation\n    animation-duration: get(\"animation-duration\"); \n    animation-delay: get(\"animation-delay\"); \n    animation-timing-function: get(\"animation-timing\");\n  }\n  #{ $prefix }__chart-mask {\n    fill: color.get(get(\"color-mask\"));\n    r: calc( (get(\"viewbox-size\") / 2) - (var(--ulu-progress-circle-stroke-width) / 2) );\n  }\n  #{ $prefix }__value {\n    color: color.get(get(\"value-color-outside\"));\n    margin: get(\"value-margin-outside\");\n    font-weight: normal;\n    line-height: 1;\n  }\n\n  #{ $prefix }--outside {\n    flex-direction: row;\n    justify-content: center;\n    flex-wrap: wrap;\n  }\n  #{ $prefix }--outside-below {\n    display: block;\n  }\n  #{ $prefix }--pie {\n    // Note do not adjust the custom property for this since we want the mask to still be sized correctly\n    #{ $prefix }__chart-pie {\n      stroke-width: get(\"viewbox-size\"); // As large as the svg (so it fills the circle)\n    }\n    #{ $prefix }__chart-track {\n      fill: color.get(get(\"color-track\"));\n    }\n    #{ $prefix }__chart-mask {\n      fill: color.get(get(\"color-mask-pie\"));\n    }\n  }\n  #{ $prefix }--no-mask {\n    #{ $prefix }__chart-mask {\n      display: none;\n    }\n  }\n\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      --ulu-progress-circle-stroke-width: #{map.get($props, \"stroke-width\")};\n      #{ $prefix }__chart-svg {\n        width: map.get($props, \"size\");\n        height: map.get($props, \"size\");\n      }\n    }\n  }\n  @each $name, $color in get(\"status-colors\") {\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__chart-pie {\n        stroke: color.get($color);\n      }\n    }\n  }\n\n  \n",
              "line": {
                "start": 73,
                "end": 175
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-circle\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    --ulu-progress-circle-stroke-width: #{ get(\"stroke-width\") };\n  }\n  #{ $prefix }__chart {\n    position: relative;\n    line-height: 1;\n  }\n  #{ $prefix }__chart-value {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    color: color.get(get(\"value-color\"));\n    text-shadow: none;\n  }\n  #{ $prefix }__chart-svg {\n    width: get(\"size\");\n    height: get(\"size\");\n    transform: rotate(-90deg);\n    border-radius: 50%;\n  }\n  #{ $prefix }__chart-track {\n    fill: transparent;\n    stroke: color.get(get(\"color-track\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n  }\n  #{ $prefix }__chart-pie {\n    fill: transparent;\n    stroke: color.get(get(\"color-progress\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n    stroke-dasharray: 0 100;\n    will-change: stroke-dasharray;\n    // If value is changing\n    transition: stroke get(\"transition-duration\"); \n    // For in template composed initial animation\n    animation-duration: get(\"animation-duration\"); \n    animation-delay: get(\"animation-delay\"); \n    animation-timing-function: get(\"animation-timing\");\n  }\n  #{ $prefix }__chart-mask {\n    fill: color.get(get(\"color-mask\"));\n    r: calc( (get(\"viewbox-size\") / 2) - (var(--ulu-progress-circle-stroke-width) / 2) );\n  }\n  #{ $prefix }__value {\n    color: color.get(get(\"value-color-outside\"));\n    margin: get(\"value-margin-outside\");\n    font-weight: normal;\n    line-height: 1;\n  }\n\n  #{ $prefix }--outside {\n    flex-direction: row;\n    justify-content: center;\n    flex-wrap: wrap;\n  }\n  #{ $prefix }--outside-below {\n    display: block;\n  }\n  #{ $prefix }--pie {\n    // Note do not adjust the custom property for this since we want the mask to still be sized correctly\n    #{ $prefix }__chart-pie {\n      stroke-width: get(\"viewbox-size\"); // As large as the svg (so it fills the circle)\n    }\n    #{ $prefix }__chart-track {\n      fill: color.get(get(\"color-track\"));\n    }\n    #{ $prefix }__chart-mask {\n      fill: color.get(get(\"color-mask-pie\"));\n    }\n  }\n  #{ $prefix }--no-mask {\n    #{ $prefix }__chart-mask {\n      display: none;\n    }\n  }\n\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      --ulu-progress-circle-stroke-width: #{map.get($props, \"stroke-width\")};\n      #{ $prefix }__chart-svg {\n        width: map.get($props, \"size\");\n        height: map.get($props, \"size\");\n      }\n    }\n  }\n  @each $name, $color in get(\"status-colors\") {\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__chart-pie {\n        stroke: color.get($color);\n      }\n    }\n  }\n\n  \n",
              "line": {
                "start": 73,
                "end": 175
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-circle\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    --ulu-progress-circle-stroke-width: #{ get(\"stroke-width\") };\n  }\n  #{ $prefix }__chart {\n    position: relative;\n    line-height: 1;\n  }\n  #{ $prefix }__chart-value {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    color: color.get(get(\"value-color\"));\n    text-shadow: none;\n  }\n  #{ $prefix }__chart-svg {\n    width: get(\"size\");\n    height: get(\"size\");\n    transform: rotate(-90deg);\n    border-radius: 50%;\n  }\n  #{ $prefix }__chart-track {\n    fill: transparent;\n    stroke: color.get(get(\"color-track\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n  }\n  #{ $prefix }__chart-pie {\n    fill: transparent;\n    stroke: color.get(get(\"color-progress\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n    stroke-dasharray: 0 100;\n    will-change: stroke-dasharray;\n    // If value is changing\n    transition: stroke get(\"transition-duration\"); \n    // For in template composed initial animation\n    animation-duration: get(\"animation-duration\"); \n    animation-delay: get(\"animation-delay\"); \n    animation-timing-function: get(\"animation-timing\");\n  }\n  #{ $prefix }__chart-mask {\n    fill: color.get(get(\"color-mask\"));\n    r: calc( (get(\"viewbox-size\") / 2) - (var(--ulu-progress-circle-stroke-width) / 2) );\n  }\n  #{ $prefix }__value {\n    color: color.get(get(\"value-color-outside\"));\n    margin: get(\"value-margin-outside\");\n    font-weight: normal;\n    line-height: 1;\n  }\n\n  #{ $prefix }--outside {\n    flex-direction: row;\n    justify-content: center;\n    flex-wrap: wrap;\n  }\n  #{ $prefix }--outside-below {\n    display: block;\n  }\n  #{ $prefix }--pie {\n    // Note do not adjust the custom property for this since we want the mask to still be sized correctly\n    #{ $prefix }__chart-pie {\n      stroke-width: get(\"viewbox-size\"); // As large as the svg (so it fills the circle)\n    }\n    #{ $prefix }__chart-track {\n      fill: color.get(get(\"color-track\"));\n    }\n    #{ $prefix }__chart-mask {\n      fill: color.get(get(\"color-mask-pie\"));\n    }\n  }\n  #{ $prefix }--no-mask {\n    #{ $prefix }__chart-mask {\n      display: none;\n    }\n  }\n\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      --ulu-progress-circle-stroke-width: #{map.get($props, \"stroke-width\")};\n      #{ $prefix }__chart-svg {\n        width: map.get($props, \"size\");\n        height: map.get($props, \"size\");\n      }\n    }\n  }\n  @each $name, $color in get(\"status-colors\") {\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__chart-pie {\n        stroke: color.get($color);\n      }\n    }\n  }\n\n  \n",
              "line": {
                "start": 73,
                "end": 175
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-circle\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    --ulu-progress-circle-stroke-width: #{ get(\"stroke-width\") };\n  }\n  #{ $prefix }__chart {\n    position: relative;\n    line-height: 1;\n  }\n  #{ $prefix }__chart-value {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    color: color.get(get(\"value-color\"));\n    text-shadow: none;\n  }\n  #{ $prefix }__chart-svg {\n    width: get(\"size\");\n    height: get(\"size\");\n    transform: rotate(-90deg);\n    border-radius: 50%;\n  }\n  #{ $prefix }__chart-track {\n    fill: transparent;\n    stroke: color.get(get(\"color-track\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n  }\n  #{ $prefix }__chart-pie {\n    fill: transparent;\n    stroke: color.get(get(\"color-progress\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n    stroke-dasharray: 0 100;\n    will-change: stroke-dasharray;\n    // If value is changing\n    transition: stroke get(\"transition-duration\"); \n    // For in template composed initial animation\n    animation-duration: get(\"animation-duration\"); \n    animation-delay: get(\"animation-delay\"); \n    animation-timing-function: get(\"animation-timing\");\n  }\n  #{ $prefix }__chart-mask {\n    fill: color.get(get(\"color-mask\"));\n    r: calc( (get(\"viewbox-size\") / 2) - (var(--ulu-progress-circle-stroke-width) / 2) );\n  }\n  #{ $prefix }__value {\n    color: color.get(get(\"value-color-outside\"));\n    margin: get(\"value-margin-outside\");\n    font-weight: normal;\n    line-height: 1;\n  }\n\n  #{ $prefix }--outside {\n    flex-direction: row;\n    justify-content: center;\n    flex-wrap: wrap;\n  }\n  #{ $prefix }--outside-below {\n    display: block;\n  }\n  #{ $prefix }--pie {\n    // Note do not adjust the custom property for this since we want the mask to still be sized correctly\n    #{ $prefix }__chart-pie {\n      stroke-width: get(\"viewbox-size\"); // As large as the svg (so it fills the circle)\n    }\n    #{ $prefix }__chart-track {\n      fill: color.get(get(\"color-track\"));\n    }\n    #{ $prefix }__chart-mask {\n      fill: color.get(get(\"color-mask-pie\"));\n    }\n  }\n  #{ $prefix }--no-mask {\n    #{ $prefix }__chart-mask {\n      display: none;\n    }\n  }\n\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      --ulu-progress-circle-stroke-width: #{map.get($props, \"stroke-width\")};\n      #{ $prefix }__chart-svg {\n        width: map.get($props, \"size\");\n        height: map.get($props, \"size\");\n      }\n    }\n  }\n  @each $name, $color in get(\"status-colors\") {\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__chart-pie {\n        stroke: color.get($color);\n      }\n    }\n  }\n\n  \n",
              "line": {
                "start": 73,
                "end": 175
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-circle\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    --ulu-progress-circle-stroke-width: #{ get(\"stroke-width\") };\n  }\n  #{ $prefix }__chart {\n    position: relative;\n    line-height: 1;\n  }\n  #{ $prefix }__chart-value {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    color: color.get(get(\"value-color\"));\n    text-shadow: none;\n  }\n  #{ $prefix }__chart-svg {\n    width: get(\"size\");\n    height: get(\"size\");\n    transform: rotate(-90deg);\n    border-radius: 50%;\n  }\n  #{ $prefix }__chart-track {\n    fill: transparent;\n    stroke: color.get(get(\"color-track\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n  }\n  #{ $prefix }__chart-pie {\n    fill: transparent;\n    stroke: color.get(get(\"color-progress\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n    stroke-dasharray: 0 100;\n    will-change: stroke-dasharray;\n    // If value is changing\n    transition: stroke get(\"transition-duration\"); \n    // For in template composed initial animation\n    animation-duration: get(\"animation-duration\"); \n    animation-delay: get(\"animation-delay\"); \n    animation-timing-function: get(\"animation-timing\");\n  }\n  #{ $prefix }__chart-mask {\n    fill: color.get(get(\"color-mask\"));\n    r: calc( (get(\"viewbox-size\") / 2) - (var(--ulu-progress-circle-stroke-width) / 2) );\n  }\n  #{ $prefix }__value {\n    color: color.get(get(\"value-color-outside\"));\n    margin: get(\"value-margin-outside\");\n    font-weight: normal;\n    line-height: 1;\n  }\n\n  #{ $prefix }--outside {\n    flex-direction: row;\n    justify-content: center;\n    flex-wrap: wrap;\n  }\n  #{ $prefix }--outside-below {\n    display: block;\n  }\n  #{ $prefix }--pie {\n    // Note do not adjust the custom property for this since we want the mask to still be sized correctly\n    #{ $prefix }__chart-pie {\n      stroke-width: get(\"viewbox-size\"); // As large as the svg (so it fills the circle)\n    }\n    #{ $prefix }__chart-track {\n      fill: color.get(get(\"color-track\"));\n    }\n    #{ $prefix }__chart-mask {\n      fill: color.get(get(\"color-mask-pie\"));\n    }\n  }\n  #{ $prefix }--no-mask {\n    #{ $prefix }__chart-mask {\n      display: none;\n    }\n  }\n\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      --ulu-progress-circle-stroke-width: #{map.get($props, \"stroke-width\")};\n      #{ $prefix }__chart-svg {\n        width: map.get($props, \"size\");\n        height: map.get($props, \"size\");\n      }\n    }\n  }\n  @each $name, $color in get(\"status-colors\") {\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__chart-pie {\n        stroke: color.get($color);\n      }\n    }\n  }\n\n  \n",
              "line": {
                "start": 73,
                "end": 175
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-circle\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    --ulu-progress-circle-stroke-width: #{ get(\"stroke-width\") };\n  }\n  #{ $prefix }__chart {\n    position: relative;\n    line-height: 1;\n  }\n  #{ $prefix }__chart-value {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    color: color.get(get(\"value-color\"));\n    text-shadow: none;\n  }\n  #{ $prefix }__chart-svg {\n    width: get(\"size\");\n    height: get(\"size\");\n    transform: rotate(-90deg);\n    border-radius: 50%;\n  }\n  #{ $prefix }__chart-track {\n    fill: transparent;\n    stroke: color.get(get(\"color-track\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n  }\n  #{ $prefix }__chart-pie {\n    fill: transparent;\n    stroke: color.get(get(\"color-progress\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n    stroke-dasharray: 0 100;\n    will-change: stroke-dasharray;\n    // If value is changing\n    transition: stroke get(\"transition-duration\"); \n    // For in template composed initial animation\n    animation-duration: get(\"animation-duration\"); \n    animation-delay: get(\"animation-delay\"); \n    animation-timing-function: get(\"animation-timing\");\n  }\n  #{ $prefix }__chart-mask {\n    fill: color.get(get(\"color-mask\"));\n    r: calc( (get(\"viewbox-size\") / 2) - (var(--ulu-progress-circle-stroke-width) / 2) );\n  }\n  #{ $prefix }__value {\n    color: color.get(get(\"value-color-outside\"));\n    margin: get(\"value-margin-outside\");\n    font-weight: normal;\n    line-height: 1;\n  }\n\n  #{ $prefix }--outside {\n    flex-direction: row;\n    justify-content: center;\n    flex-wrap: wrap;\n  }\n  #{ $prefix }--outside-below {\n    display: block;\n  }\n  #{ $prefix }--pie {\n    // Note do not adjust the custom property for this since we want the mask to still be sized correctly\n    #{ $prefix }__chart-pie {\n      stroke-width: get(\"viewbox-size\"); // As large as the svg (so it fills the circle)\n    }\n    #{ $prefix }__chart-track {\n      fill: color.get(get(\"color-track\"));\n    }\n    #{ $prefix }__chart-mask {\n      fill: color.get(get(\"color-mask-pie\"));\n    }\n  }\n  #{ $prefix }--no-mask {\n    #{ $prefix }__chart-mask {\n      display: none;\n    }\n  }\n\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      --ulu-progress-circle-stroke-width: #{map.get($props, \"stroke-width\")};\n      #{ $prefix }__chart-svg {\n        width: map.get($props, \"size\");\n        height: map.get($props, \"size\");\n      }\n    }\n  }\n  @each $name, $color in get(\"status-colors\") {\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__chart-pie {\n        stroke: color.get($color);\n      }\n    }\n  }\n\n  \n",
              "line": {
                "start": 73,
                "end": 175
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"pull-quote\");\n\n  #{ $prefix } {\n    padding: get(\"padding-y\") 0;\n    text-align: center;\n  }\n  #{ $prefix }__body {\n    line-height: get(\"body-line-height\");\n    @if (get(\"quote-mark-enabled\")) {\n      &::before {\n        display: block;\n        position: relative;\n        // content: open-quote;\n        content: get(\"quote-mark-character\");\n        font-family: get(\"quote-mark-font-family\");\n        color: color.get(get(\"quote-mark-color\"));\n        font-size: get(\"quote-mark-font-size\");\n        margin: 0 auto;\n        line-height: get(\"quote-mark-line-height\");\n      }\n    }\n  }\n  #{ $prefix }__author-name {\n    display: block;\n    margin-top: get(\"name-margin-bottom\");\n  }\n  #{ $prefix }__author-title {\n    display: block;\n    font-style: get(\"title-font-style\");\n  }\n  #{ $prefix }__author-image {\n    margin: get(\"image-margin-top\") auto get(\"image-margin-bottom\") auto;\n    width: min-content;\n  }\n",
              "line": {
                "start": 76,
                "end": 111
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"pull-quote\");\n\n  #{ $prefix } {\n    padding: get(\"padding-y\") 0;\n    text-align: center;\n  }\n  #{ $prefix }__body {\n    line-height: get(\"body-line-height\");\n    @if (get(\"quote-mark-enabled\")) {\n      &::before {\n        display: block;\n        position: relative;\n        // content: open-quote;\n        content: get(\"quote-mark-character\");\n        font-family: get(\"quote-mark-font-family\");\n        color: color.get(get(\"quote-mark-color\"));\n        font-size: get(\"quote-mark-font-size\");\n        margin: 0 auto;\n        line-height: get(\"quote-mark-line-height\");\n      }\n    }\n  }\n  #{ $prefix }__author-name {\n    display: block;\n    margin-top: get(\"name-margin-bottom\");\n  }\n  #{ $prefix }__author-title {\n    display: block;\n    font-style: get(\"title-font-style\");\n  }\n  #{ $prefix }__author-image {\n    margin: get(\"image-margin-top\") auto get(\"image-margin-bottom\") auto;\n    width: min-content;\n  }\n",
              "line": {
                "start": 76,
                "end": 111
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"pull-quote\");\n\n  #{ $prefix } {\n    padding: get(\"padding-y\") 0;\n    text-align: center;\n  }\n  #{ $prefix }__body {\n    line-height: get(\"body-line-height\");\n    @if (get(\"quote-mark-enabled\")) {\n      &::before {\n        display: block;\n        position: relative;\n        // content: open-quote;\n        content: get(\"quote-mark-character\");\n        font-family: get(\"quote-mark-font-family\");\n        color: color.get(get(\"quote-mark-color\"));\n        font-size: get(\"quote-mark-font-size\");\n        margin: 0 auto;\n        line-height: get(\"quote-mark-line-height\");\n      }\n    }\n  }\n  #{ $prefix }__author-name {\n    display: block;\n    margin-top: get(\"name-margin-bottom\");\n  }\n  #{ $prefix }__author-title {\n    display: block;\n    font-style: get(\"title-font-style\");\n  }\n  #{ $prefix }__author-image {\n    margin: get(\"image-margin-top\") auto get(\"image-margin-bottom\") auto;\n    width: min-content;\n  }\n",
              "line": {
                "start": 76,
                "end": 111
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"pull-quote\");\n\n  #{ $prefix } {\n    padding: get(\"padding-y\") 0;\n    text-align: center;\n  }\n  #{ $prefix }__body {\n    line-height: get(\"body-line-height\");\n    @if (get(\"quote-mark-enabled\")) {\n      &::before {\n        display: block;\n        position: relative;\n        // content: open-quote;\n        content: get(\"quote-mark-character\");\n        font-family: get(\"quote-mark-font-family\");\n        color: color.get(get(\"quote-mark-color\"));\n        font-size: get(\"quote-mark-font-size\");\n        margin: 0 auto;\n        line-height: get(\"quote-mark-line-height\");\n      }\n    }\n  }\n  #{ $prefix }__author-name {\n    display: block;\n    margin-top: get(\"name-margin-bottom\");\n  }\n  #{ $prefix }__author-title {\n    display: block;\n    font-style: get(\"title-font-style\");\n  }\n  #{ $prefix }__author-image {\n    margin: get(\"image-margin-top\") auto get(\"image-margin-bottom\") auto;\n    width: min-content;\n  }\n",
              "line": {
                "start": 76,
                "end": 111
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"pull-quote\");\n\n  #{ $prefix } {\n    padding: get(\"padding-y\") 0;\n    text-align: center;\n  }\n  #{ $prefix }__body {\n    line-height: get(\"body-line-height\");\n    @if (get(\"quote-mark-enabled\")) {\n      &::before {\n        display: block;\n        position: relative;\n        // content: open-quote;\n        content: get(\"quote-mark-character\");\n        font-family: get(\"quote-mark-font-family\");\n        color: color.get(get(\"quote-mark-color\"));\n        font-size: get(\"quote-mark-font-size\");\n        margin: 0 auto;\n        line-height: get(\"quote-mark-line-height\");\n      }\n    }\n  }\n  #{ $prefix }__author-name {\n    display: block;\n    margin-top: get(\"name-margin-bottom\");\n  }\n  #{ $prefix }__author-title {\n    display: block;\n    font-style: get(\"title-font-style\");\n  }\n  #{ $prefix }__author-image {\n    margin: get(\"image-margin-top\") auto get(\"image-margin-bottom\") auto;\n    width: min-content;\n  }\n",
              "line": {
                "start": 76,
                "end": 111
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"pull-quote\");\n\n  #{ $prefix } {\n    padding: get(\"padding-y\") 0;\n    text-align: center;\n  }\n  #{ $prefix }__body {\n    line-height: get(\"body-line-height\");\n    @if (get(\"quote-mark-enabled\")) {\n      &::before {\n        display: block;\n        position: relative;\n        // content: open-quote;\n        content: get(\"quote-mark-character\");\n        font-family: get(\"quote-mark-font-family\");\n        color: color.get(get(\"quote-mark-color\"));\n        font-size: get(\"quote-mark-font-size\");\n        margin: 0 auto;\n        line-height: get(\"quote-mark-line-height\");\n      }\n    }\n  }\n  #{ $prefix }__author-name {\n    display: block;\n    margin-top: get(\"name-margin-bottom\");\n  }\n  #{ $prefix }__author-title {\n    display: block;\n    font-style: get(\"title-font-style\");\n  }\n  #{ $prefix }__author-image {\n    margin: get(\"image-margin-top\") auto get(\"image-margin-bottom\") auto;\n    width: min-content;\n  }\n",
              "line": {
                "start": 76,
                "end": 111
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"pull-quote\");\n\n  #{ $prefix } {\n    padding: get(\"padding-y\") 0;\n    text-align: center;\n  }\n  #{ $prefix }__body {\n    line-height: get(\"body-line-height\");\n    @if (get(\"quote-mark-enabled\")) {\n      &::before {\n        display: block;\n        position: relative;\n        // content: open-quote;\n        content: get(\"quote-mark-character\");\n        font-family: get(\"quote-mark-font-family\");\n        color: color.get(get(\"quote-mark-color\"));\n        font-size: get(\"quote-mark-font-size\");\n        margin: 0 auto;\n        line-height: get(\"quote-mark-line-height\");\n      }\n    }\n  }\n  #{ $prefix }__author-name {\n    display: block;\n    margin-top: get(\"name-margin-bottom\");\n  }\n  #{ $prefix }__author-title {\n    display: block;\n    font-style: get(\"title-font-style\");\n  }\n  #{ $prefix }__author-image {\n    margin: get(\"image-margin-top\") auto get(\"image-margin-bottom\") auto;\n    width: min-content;\n  }\n",
              "line": {
                "start": 76,
                "end": 111
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"pull-quote\");\n\n  #{ $prefix } {\n    padding: get(\"padding-y\") 0;\n    text-align: center;\n  }\n  #{ $prefix }__body {\n    line-height: get(\"body-line-height\");\n    @if (get(\"quote-mark-enabled\")) {\n      &::before {\n        display: block;\n        position: relative;\n        // content: open-quote;\n        content: get(\"quote-mark-character\");\n        font-family: get(\"quote-mark-font-family\");\n        color: color.get(get(\"quote-mark-color\"));\n        font-size: get(\"quote-mark-font-size\");\n        margin: 0 auto;\n        line-height: get(\"quote-mark-line-height\");\n      }\n    }\n  }\n  #{ $prefix }__author-name {\n    display: block;\n    margin-top: get(\"name-margin-bottom\");\n  }\n  #{ $prefix }__author-title {\n    display: block;\n    font-style: get(\"title-font-style\");\n  }\n  #{ $prefix }__author-image {\n    margin: get(\"image-margin-top\") auto get(\"image-margin-bottom\") auto;\n    width: min-content;\n  }\n",
              "line": {
                "start": 76,
                "end": 111
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"pull-quote\");\n\n  #{ $prefix } {\n    padding: get(\"padding-y\") 0;\n    text-align: center;\n  }\n  #{ $prefix }__body {\n    line-height: get(\"body-line-height\");\n    @if (get(\"quote-mark-enabled\")) {\n      &::before {\n        display: block;\n        position: relative;\n        // content: open-quote;\n        content: get(\"quote-mark-character\");\n        font-family: get(\"quote-mark-font-family\");\n        color: color.get(get(\"quote-mark-color\"));\n        font-size: get(\"quote-mark-font-size\");\n        margin: 0 auto;\n        line-height: get(\"quote-mark-line-height\");\n      }\n    }\n  }\n  #{ $prefix }__author-name {\n    display: block;\n    margin-top: get(\"name-margin-bottom\");\n  }\n  #{ $prefix }__author-title {\n    display: block;\n    font-style: get(\"title-font-style\");\n  }\n  #{ $prefix }__author-image {\n    margin: get(\"image-margin-top\") auto get(\"image-margin-bottom\") auto;\n    width: min-content;\n  }\n",
              "line": {
                "start": 76,
                "end": 111
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"pull-quote\");\n\n  #{ $prefix } {\n    padding: get(\"padding-y\") 0;\n    text-align: center;\n  }\n  #{ $prefix }__body {\n    line-height: get(\"body-line-height\");\n    @if (get(\"quote-mark-enabled\")) {\n      &::before {\n        display: block;\n        position: relative;\n        // content: open-quote;\n        content: get(\"quote-mark-character\");\n        font-family: get(\"quote-mark-font-family\");\n        color: color.get(get(\"quote-mark-color\"));\n        font-size: get(\"quote-mark-font-size\");\n        margin: 0 auto;\n        line-height: get(\"quote-mark-line-height\");\n      }\n    }\n  }\n  #{ $prefix }__author-name {\n    display: block;\n    margin-top: get(\"name-margin-bottom\");\n  }\n  #{ $prefix }__author-title {\n    display: block;\n    font-style: get(\"title-font-style\");\n  }\n  #{ $prefix }__author-image {\n    margin: get(\"image-margin-top\") auto get(\"image-margin-bottom\") auto;\n    width: min-content;\n  }\n",
              "line": {
                "start": 76,
                "end": 111
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"pull-quote\");\n\n  #{ $prefix } {\n    padding: get(\"padding-y\") 0;\n    text-align: center;\n  }\n  #{ $prefix }__body {\n    line-height: get(\"body-line-height\");\n    @if (get(\"quote-mark-enabled\")) {\n      &::before {\n        display: block;\n        position: relative;\n        // content: open-quote;\n        content: get(\"quote-mark-character\");\n        font-family: get(\"quote-mark-font-family\");\n        color: color.get(get(\"quote-mark-color\"));\n        font-size: get(\"quote-mark-font-size\");\n        margin: 0 auto;\n        line-height: get(\"quote-mark-line-height\");\n      }\n    }\n  }\n  #{ $prefix }__author-name {\n    display: block;\n    margin-top: get(\"name-margin-bottom\");\n  }\n  #{ $prefix }__author-title {\n    display: block;\n    font-style: get(\"title-font-style\");\n  }\n  #{ $prefix }__author-image {\n    margin: get(\"image-margin-top\") auto get(\"image-margin-bottom\") auto;\n    width: min-content;\n  }\n",
              "line": {
                "start": 76,
                "end": 111
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"pull-quote\");\n\n  #{ $prefix } {\n    padding: get(\"padding-y\") 0;\n    text-align: center;\n  }\n  #{ $prefix }__body {\n    line-height: get(\"body-line-height\");\n    @if (get(\"quote-mark-enabled\")) {\n      &::before {\n        display: block;\n        position: relative;\n        // content: open-quote;\n        content: get(\"quote-mark-character\");\n        font-family: get(\"quote-mark-font-family\");\n        color: color.get(get(\"quote-mark-color\"));\n        font-size: get(\"quote-mark-font-size\");\n        margin: 0 auto;\n        line-height: get(\"quote-mark-line-height\");\n      }\n    }\n  }\n  #{ $prefix }__author-name {\n    display: block;\n    margin-top: get(\"name-margin-bottom\");\n  }\n  #{ $prefix }__author-title {\n    display: block;\n    font-style: get(\"title-font-style\");\n  }\n  #{ $prefix }__author-image {\n    margin: get(\"image-margin-top\") auto get(\"image-margin-bottom\") auto;\n    width: min-content;\n  }\n",
              "line": {
                "start": 76,
                "end": 111
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"pull-quote\");\n\n  #{ $prefix } {\n    padding: get(\"padding-y\") 0;\n    text-align: center;\n  }\n  #{ $prefix }__body {\n    line-height: get(\"body-line-height\");\n    @if (get(\"quote-mark-enabled\")) {\n      &::before {\n        display: block;\n        position: relative;\n        // content: open-quote;\n        content: get(\"quote-mark-character\");\n        font-family: get(\"quote-mark-font-family\");\n        color: color.get(get(\"quote-mark-color\"));\n        font-size: get(\"quote-mark-font-size\");\n        margin: 0 auto;\n        line-height: get(\"quote-mark-line-height\");\n      }\n    }\n  }\n  #{ $prefix }__author-name {\n    display: block;\n    margin-top: get(\"name-margin-bottom\");\n  }\n  #{ $prefix }__author-title {\n    display: block;\n    font-style: get(\"title-font-style\");\n  }\n  #{ $prefix }__author-image {\n    margin: get(\"image-margin-top\") auto get(\"image-margin-bottom\") auto;\n    width: min-content;\n  }\n",
              "line": {
                "start": 76,
                "end": 111
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"rail\"); \n  $gap: get(\"gap\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n    gap: $gap;\n    margin-bottom: get(\"margin-bottom\");\n    max-width: 100%;\n  }\n  #{ $prefix }--rule {\n    border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    padding-bottom: get(\"rule-margin\");\n  }\n\n  // Modifiers\n  // - Note: Originally had mods for each type of flexbox layout\n  //   simplified to just agnostic naming and only what is currently needed\n  //   can update this in the future to add more alignment options if \n  //   use cases come up\n\n  #{ $prefix }--justified { \n    justify-content: space-between;\n  }\n  #{ $prefix }--baseline {\n    align-items: baseline;\n  }\n  #{ $prefix }--nowrap {\n    flex-wrap: nowrap;\n    overflow-x: auto;\n  }\n\n  // Item level modifiers\n  #{ $prefix }__item--pull {\n    margin-inline-start: auto;\n  }\n  #{ $prefix }__item--separator {\n    border-inline-start: get(\"separator\");\n    padding-inline-start: $gap;\n  }\n\n  @each $name, $value in get(\"gap-modifiers\") {\n\n    $calc-gap: $value - $gap;\n    \n    #{ $prefix }__item--gap-#{ $name } {\n      margin-inline-start: $calc-gap;\n\n      &#{ $prefix }__item--separator {\n        padding-inline-start: $value;\n      }\n    }\n  }\n",
              "line": {
                "start": 72,
                "end": 127
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"rail\"); \n  $gap: get(\"gap\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n    gap: $gap;\n    margin-bottom: get(\"margin-bottom\");\n    max-width: 100%;\n  }\n  #{ $prefix }--rule {\n    border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    padding-bottom: get(\"rule-margin\");\n  }\n\n  // Modifiers\n  // - Note: Originally had mods for each type of flexbox layout\n  //   simplified to just agnostic naming and only what is currently needed\n  //   can update this in the future to add more alignment options if \n  //   use cases come up\n\n  #{ $prefix }--justified { \n    justify-content: space-between;\n  }\n  #{ $prefix }--baseline {\n    align-items: baseline;\n  }\n  #{ $prefix }--nowrap {\n    flex-wrap: nowrap;\n    overflow-x: auto;\n  }\n\n  // Item level modifiers\n  #{ $prefix }__item--pull {\n    margin-inline-start: auto;\n  }\n  #{ $prefix }__item--separator {\n    border-inline-start: get(\"separator\");\n    padding-inline-start: $gap;\n  }\n\n  @each $name, $value in get(\"gap-modifiers\") {\n\n    $calc-gap: $value - $gap;\n    \n    #{ $prefix }__item--gap-#{ $name } {\n      margin-inline-start: $calc-gap;\n\n      &#{ $prefix }__item--separator {\n        padding-inline-start: $value;\n      }\n    }\n  }\n",
              "line": {
                "start": 72,
                "end": 127
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"rail\"); \n  $gap: get(\"gap\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n    gap: $gap;\n    margin-bottom: get(\"margin-bottom\");\n    max-width: 100%;\n  }\n  #{ $prefix }--rule {\n    border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    padding-bottom: get(\"rule-margin\");\n  }\n\n  // Modifiers\n  // - Note: Originally had mods for each type of flexbox layout\n  //   simplified to just agnostic naming and only what is currently needed\n  //   can update this in the future to add more alignment options if \n  //   use cases come up\n\n  #{ $prefix }--justified { \n    justify-content: space-between;\n  }\n  #{ $prefix }--baseline {\n    align-items: baseline;\n  }\n  #{ $prefix }--nowrap {\n    flex-wrap: nowrap;\n    overflow-x: auto;\n  }\n\n  // Item level modifiers\n  #{ $prefix }__item--pull {\n    margin-inline-start: auto;\n  }\n  #{ $prefix }__item--separator {\n    border-inline-start: get(\"separator\");\n    padding-inline-start: $gap;\n  }\n\n  @each $name, $value in get(\"gap-modifiers\") {\n\n    $calc-gap: $value - $gap;\n    \n    #{ $prefix }__item--gap-#{ $name } {\n      margin-inline-start: $calc-gap;\n\n      &#{ $prefix }__item--separator {\n        padding-inline-start: $value;\n      }\n    }\n  }\n",
              "line": {
                "start": 72,
                "end": 127
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"rail\"); \n  $gap: get(\"gap\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n    gap: $gap;\n    margin-bottom: get(\"margin-bottom\");\n    max-width: 100%;\n  }\n  #{ $prefix }--rule {\n    border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    padding-bottom: get(\"rule-margin\");\n  }\n\n  // Modifiers\n  // - Note: Originally had mods for each type of flexbox layout\n  //   simplified to just agnostic naming and only what is currently needed\n  //   can update this in the future to add more alignment options if \n  //   use cases come up\n\n  #{ $prefix }--justified { \n    justify-content: space-between;\n  }\n  #{ $prefix }--baseline {\n    align-items: baseline;\n  }\n  #{ $prefix }--nowrap {\n    flex-wrap: nowrap;\n    overflow-x: auto;\n  }\n\n  // Item level modifiers\n  #{ $prefix }__item--pull {\n    margin-inline-start: auto;\n  }\n  #{ $prefix }__item--separator {\n    border-inline-start: get(\"separator\");\n    padding-inline-start: $gap;\n  }\n\n  @each $name, $value in get(\"gap-modifiers\") {\n\n    $calc-gap: $value - $gap;\n    \n    #{ $prefix }__item--gap-#{ $name } {\n      margin-inline-start: $calc-gap;\n\n      &#{ $prefix }__item--separator {\n        padding-inline-start: $value;\n      }\n    }\n  }\n",
              "line": {
                "start": 72,
                "end": 127
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"rail\"); \n  $gap: get(\"gap\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n    gap: $gap;\n    margin-bottom: get(\"margin-bottom\");\n    max-width: 100%;\n  }\n  #{ $prefix }--rule {\n    border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    padding-bottom: get(\"rule-margin\");\n  }\n\n  // Modifiers\n  // - Note: Originally had mods for each type of flexbox layout\n  //   simplified to just agnostic naming and only what is currently needed\n  //   can update this in the future to add more alignment options if \n  //   use cases come up\n\n  #{ $prefix }--justified { \n    justify-content: space-between;\n  }\n  #{ $prefix }--baseline {\n    align-items: baseline;\n  }\n  #{ $prefix }--nowrap {\n    flex-wrap: nowrap;\n    overflow-x: auto;\n  }\n\n  // Item level modifiers\n  #{ $prefix }__item--pull {\n    margin-inline-start: auto;\n  }\n  #{ $prefix }__item--separator {\n    border-inline-start: get(\"separator\");\n    padding-inline-start: $gap;\n  }\n\n  @each $name, $value in get(\"gap-modifiers\") {\n\n    $calc-gap: $value - $gap;\n    \n    #{ $prefix }__item--gap-#{ $name } {\n      margin-inline-start: $calc-gap;\n\n      &#{ $prefix }__item--separator {\n        padding-inline-start: $value;\n      }\n    }\n  }\n",
              "line": {
                "start": 72,
                "end": 127
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"rail\"); \n  $gap: get(\"gap\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n    gap: $gap;\n    margin-bottom: get(\"margin-bottom\");\n    max-width: 100%;\n  }\n  #{ $prefix }--rule {\n    border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    padding-bottom: get(\"rule-margin\");\n  }\n\n  // Modifiers\n  // - Note: Originally had mods for each type of flexbox layout\n  //   simplified to just agnostic naming and only what is currently needed\n  //   can update this in the future to add more alignment options if \n  //   use cases come up\n\n  #{ $prefix }--justified { \n    justify-content: space-between;\n  }\n  #{ $prefix }--baseline {\n    align-items: baseline;\n  }\n  #{ $prefix }--nowrap {\n    flex-wrap: nowrap;\n    overflow-x: auto;\n  }\n\n  // Item level modifiers\n  #{ $prefix }__item--pull {\n    margin-inline-start: auto;\n  }\n  #{ $prefix }__item--separator {\n    border-inline-start: get(\"separator\");\n    padding-inline-start: $gap;\n  }\n\n  @each $name, $value in get(\"gap-modifiers\") {\n\n    $calc-gap: $value - $gap;\n    \n    #{ $prefix }__item--gap-#{ $name } {\n      margin-inline-start: $calc-gap;\n\n      &#{ $prefix }__item--separator {\n        padding-inline-start: $value;\n      }\n    }\n  }\n",
              "line": {
                "start": 72,
                "end": 127
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"rail\"); \n  $gap: get(\"gap\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n    gap: $gap;\n    margin-bottom: get(\"margin-bottom\");\n    max-width: 100%;\n  }\n  #{ $prefix }--rule {\n    border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    padding-bottom: get(\"rule-margin\");\n  }\n\n  // Modifiers\n  // - Note: Originally had mods for each type of flexbox layout\n  //   simplified to just agnostic naming and only what is currently needed\n  //   can update this in the future to add more alignment options if \n  //   use cases come up\n\n  #{ $prefix }--justified { \n    justify-content: space-between;\n  }\n  #{ $prefix }--baseline {\n    align-items: baseline;\n  }\n  #{ $prefix }--nowrap {\n    flex-wrap: nowrap;\n    overflow-x: auto;\n  }\n\n  // Item level modifiers\n  #{ $prefix }__item--pull {\n    margin-inline-start: auto;\n  }\n  #{ $prefix }__item--separator {\n    border-inline-start: get(\"separator\");\n    padding-inline-start: $gap;\n  }\n\n  @each $name, $value in get(\"gap-modifiers\") {\n\n    $calc-gap: $value - $gap;\n    \n    #{ $prefix }__item--gap-#{ $name } {\n      margin-inline-start: $calc-gap;\n\n      &#{ $prefix }__item--separator {\n        padding-inline-start: $value;\n      }\n    }\n  }\n",
              "line": {
                "start": 72,
                "end": 127
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"rail\"); \n  $gap: get(\"gap\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n    gap: $gap;\n    margin-bottom: get(\"margin-bottom\");\n    max-width: 100%;\n  }\n  #{ $prefix }--rule {\n    border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    padding-bottom: get(\"rule-margin\");\n  }\n\n  // Modifiers\n  // - Note: Originally had mods for each type of flexbox layout\n  //   simplified to just agnostic naming and only what is currently needed\n  //   can update this in the future to add more alignment options if \n  //   use cases come up\n\n  #{ $prefix }--justified { \n    justify-content: space-between;\n  }\n  #{ $prefix }--baseline {\n    align-items: baseline;\n  }\n  #{ $prefix }--nowrap {\n    flex-wrap: nowrap;\n    overflow-x: auto;\n  }\n\n  // Item level modifiers\n  #{ $prefix }__item--pull {\n    margin-inline-start: auto;\n  }\n  #{ $prefix }__item--separator {\n    border-inline-start: get(\"separator\");\n    padding-inline-start: $gap;\n  }\n\n  @each $name, $value in get(\"gap-modifiers\") {\n\n    $calc-gap: $value - $gap;\n    \n    #{ $prefix }__item--gap-#{ $name } {\n      margin-inline-start: $calc-gap;\n\n      &#{ $prefix }__item--separator {\n        padding-inline-start: $value;\n      }\n    }\n  }\n",
              "line": {
                "start": 72,
                "end": 127
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .ratio-box {\n    position: relative;\n    aspect-ratio: utils.normalize-aspect-ratio(get(\"size\"));\n  }\n  .ratio-box__content {\n    @include layout.absolute-fill(true);\n  }\n  @each $name, $size in get(\"sizes\") {\n    .ratio-box--#{ $name } {\n      aspect-ratio: utils.normalize-aspect-ratio($size);\n    }\n  }\n",
              "line": {
                "start": 49,
                "end": 62
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  .ratio-box {\n    position: relative;\n    aspect-ratio: utils.normalize-aspect-ratio(get(\"size\"));\n  }\n  .ratio-box__content {\n    @include layout.absolute-fill(true);\n  }\n  @each $name, $size in get(\"sizes\") {\n    .ratio-box--#{ $name } {\n      aspect-ratio: utils.normalize-aspect-ratio($size);\n    }\n  }\n",
              "line": {
                "start": 49,
                "end": 62
              }
            }
          },
          {
            "description": "Output styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  $class: selector.class(\"rule\");\n  \n  #{ $class } {\n    @include element.rule();\n  }\n  #{ $class }--content-on-top {\n    position: relative;\n    > * {\n      background-color: white; // User woud need to specific per context needed or something\n      position: absolute;\n      top: 50%;\n      left: 50%;\n      transform: translate(-50%, -50%);\n      max-width: 100%;\n      padding: 0.5em;\n      margin: 0;\n    }\n  }\n\n  // Output user's styles presets\n  @each $name, $value in element.$rule-styles {\n    #{ $class }--#{ $name } {\n      @include element.rule-style($name);\n    }\n  }\n  // Output user's margin presets\n  @each $name, $value in element.$rule-margins {\n    #{ $class }--margin-#{ $name } {\n      @include element.rule-margin($name);\n    }\n  }\n\n  // Meant to be user by itself without content\n  $short-width: get(\"short-width\");\n  @if ($short-width) {\n    #{ $class }--short {\n      width: $short-width;\n      max-width: 100%;\n      border-bottom-width: get(\"short-border-width\");\n      display: inline-block;\n    }\n    @if get(\"short-modifiers\") {\n      @each $mod, $opts in get(\"short-modifiers\") {\n        #{ $class }--short {\n          width: map.get($opts, \"width\");\n          border-bottom-width: map.get($opts, \"border-width\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 44,
                "end": 96
              }
            }
          },
          {
            "description": "Output styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  $class: selector.class(\"rule\");\n  \n  #{ $class } {\n    @include element.rule();\n  }\n  #{ $class }--content-on-top {\n    position: relative;\n    > * {\n      background-color: white; // User woud need to specific per context needed or something\n      position: absolute;\n      top: 50%;\n      left: 50%;\n      transform: translate(-50%, -50%);\n      max-width: 100%;\n      padding: 0.5em;\n      margin: 0;\n    }\n  }\n\n  // Output user's styles presets\n  @each $name, $value in element.$rule-styles {\n    #{ $class }--#{ $name } {\n      @include element.rule-style($name);\n    }\n  }\n  // Output user's margin presets\n  @each $name, $value in element.$rule-margins {\n    #{ $class }--margin-#{ $name } {\n      @include element.rule-margin($name);\n    }\n  }\n\n  // Meant to be user by itself without content\n  $short-width: get(\"short-width\");\n  @if ($short-width) {\n    #{ $class }--short {\n      width: $short-width;\n      max-width: 100%;\n      border-bottom-width: get(\"short-border-width\");\n      display: inline-block;\n    }\n    @if get(\"short-modifiers\") {\n      @each $mod, $opts in get(\"short-modifiers\") {\n        #{ $class }--short {\n          width: map.get($opts, \"width\");\n          border-bottom-width: map.get($opts, \"border-width\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 44,
                "end": 96
              }
            }
          },
          {
            "description": "Output styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  $class: selector.class(\"rule\");\n  \n  #{ $class } {\n    @include element.rule();\n  }\n  #{ $class }--content-on-top {\n    position: relative;\n    > * {\n      background-color: white; // User woud need to specific per context needed or something\n      position: absolute;\n      top: 50%;\n      left: 50%;\n      transform: translate(-50%, -50%);\n      max-width: 100%;\n      padding: 0.5em;\n      margin: 0;\n    }\n  }\n\n  // Output user's styles presets\n  @each $name, $value in element.$rule-styles {\n    #{ $class }--#{ $name } {\n      @include element.rule-style($name);\n    }\n  }\n  // Output user's margin presets\n  @each $name, $value in element.$rule-margins {\n    #{ $class }--margin-#{ $name } {\n      @include element.rule-margin($name);\n    }\n  }\n\n  // Meant to be user by itself without content\n  $short-width: get(\"short-width\");\n  @if ($short-width) {\n    #{ $class }--short {\n      width: $short-width;\n      max-width: 100%;\n      border-bottom-width: get(\"short-border-width\");\n      display: inline-block;\n    }\n    @if get(\"short-modifiers\") {\n      @each $mod, $opts in get(\"short-modifiers\") {\n        #{ $class }--short {\n          width: map.get($opts, \"width\");\n          border-bottom-width: map.get($opts, \"border-width\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 44,
                "end": 96
              }
            }
          },
          {
            "description": "Output styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  $class: selector.class(\"rule\");\n  \n  #{ $class } {\n    @include element.rule();\n  }\n  #{ $class }--content-on-top {\n    position: relative;\n    > * {\n      background-color: white; // User woud need to specific per context needed or something\n      position: absolute;\n      top: 50%;\n      left: 50%;\n      transform: translate(-50%, -50%);\n      max-width: 100%;\n      padding: 0.5em;\n      margin: 0;\n    }\n  }\n\n  // Output user's styles presets\n  @each $name, $value in element.$rule-styles {\n    #{ $class }--#{ $name } {\n      @include element.rule-style($name);\n    }\n  }\n  // Output user's margin presets\n  @each $name, $value in element.$rule-margins {\n    #{ $class }--margin-#{ $name } {\n      @include element.rule-margin($name);\n    }\n  }\n\n  // Meant to be user by itself without content\n  $short-width: get(\"short-width\");\n  @if ($short-width) {\n    #{ $class }--short {\n      width: $short-width;\n      max-width: 100%;\n      border-bottom-width: get(\"short-border-width\");\n      display: inline-block;\n    }\n    @if get(\"short-modifiers\") {\n      @each $mod, $opts in get(\"short-modifiers\") {\n        #{ $class }--short {\n          width: map.get($opts, \"width\");\n          border-bottom-width: map.get($opts, \"border-width\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 44,
                "end": 96
              }
            }
          },
          {
            "description": "Output styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  $class: selector.class(\"rule\");\n  \n  #{ $class } {\n    @include element.rule();\n  }\n  #{ $class }--content-on-top {\n    position: relative;\n    > * {\n      background-color: white; // User woud need to specific per context needed or something\n      position: absolute;\n      top: 50%;\n      left: 50%;\n      transform: translate(-50%, -50%);\n      max-width: 100%;\n      padding: 0.5em;\n      margin: 0;\n    }\n  }\n\n  // Output user's styles presets\n  @each $name, $value in element.$rule-styles {\n    #{ $class }--#{ $name } {\n      @include element.rule-style($name);\n    }\n  }\n  // Output user's margin presets\n  @each $name, $value in element.$rule-margins {\n    #{ $class }--margin-#{ $name } {\n      @include element.rule-margin($name);\n    }\n  }\n\n  // Meant to be user by itself without content\n  $short-width: get(\"short-width\");\n  @if ($short-width) {\n    #{ $class }--short {\n      width: $short-width;\n      max-width: 100%;\n      border-bottom-width: get(\"short-border-width\");\n      display: inline-block;\n    }\n    @if get(\"short-modifiers\") {\n      @each $mod, $opts in get(\"short-modifiers\") {\n        #{ $class }--short {\n          width: map.get($opts, \"width\");\n          border-bottom-width: map.get($opts, \"border-width\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 44,
                "end": 96
              }
            }
          },
          {
            "description": "Output styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  $class: selector.class(\"rule\");\n  \n  #{ $class } {\n    @include element.rule();\n  }\n  #{ $class }--content-on-top {\n    position: relative;\n    > * {\n      background-color: white; // User woud need to specific per context needed or something\n      position: absolute;\n      top: 50%;\n      left: 50%;\n      transform: translate(-50%, -50%);\n      max-width: 100%;\n      padding: 0.5em;\n      margin: 0;\n    }\n  }\n\n  // Output user's styles presets\n  @each $name, $value in element.$rule-styles {\n    #{ $class }--#{ $name } {\n      @include element.rule-style($name);\n    }\n  }\n  // Output user's margin presets\n  @each $name, $value in element.$rule-margins {\n    #{ $class }--margin-#{ $name } {\n      @include element.rule-margin($name);\n    }\n  }\n\n  // Meant to be user by itself without content\n  $short-width: get(\"short-width\");\n  @if ($short-width) {\n    #{ $class }--short {\n      width: $short-width;\n      max-width: 100%;\n      border-bottom-width: get(\"short-border-width\");\n      display: inline-block;\n    }\n    @if get(\"short-modifiers\") {\n      @each $mod, $opts in get(\"short-modifiers\") {\n        #{ $class }--short {\n          width: map.get($opts, \"width\");\n          border-bottom-width: map.get($opts, \"border-width\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 44,
                "end": 96
              }
            }
          },
          {
            "description": "Prints adaptive spacing component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"rule-inline\");\n\n  #{ $prefix } {\n    display: inline-block;\n    border-right: get(\"width\") solid color.get(get(\"color\"));\n    min-height: get(\"min-height\");\n    vertical-align: middle;\n    margin: 0 get(\"margin\");\n    flex-grow: 0;\n    align-self: stretch;\n  }\n",
              "line": {
                "start": 48,
                "end": 60
              }
            }
          },
          {
            "description": "Prints adaptive spacing component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"rule-inline\");\n\n  #{ $prefix } {\n    display: inline-block;\n    border-right: get(\"width\") solid color.get(get(\"color\"));\n    min-height: get(\"min-height\");\n    vertical-align: middle;\n    margin: 0 get(\"margin\");\n    flex-grow: 0;\n    align-self: stretch;\n  }\n",
              "line": {
                "start": 48,
                "end": 60
              }
            }
          },
          {
            "description": "Prints adaptive spacing component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"rule-inline\");\n\n  #{ $prefix } {\n    display: inline-block;\n    border-right: get(\"width\") solid color.get(get(\"color\"));\n    min-height: get(\"min-height\");\n    vertical-align: middle;\n    margin: 0 get(\"margin\");\n    flex-grow: 0;\n    align-self: stretch;\n  }\n",
              "line": {
                "start": 48,
                "end": 60
              }
            }
          },
          {
            "description": "Prints adaptive spacing component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"rule-inline\");\n\n  #{ $prefix } {\n    display: inline-block;\n    border-right: get(\"width\") solid color.get(get(\"color\"));\n    min-height: get(\"min-height\");\n    vertical-align: middle;\n    margin: 0 get(\"margin\");\n    flex-grow: 0;\n    align-self: stretch;\n  }\n",
              "line": {
                "start": 48,
                "end": 60
              }
            }
          },
          {
            "description": "Prints adaptive spacing component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"rule-inline\");\n\n  #{ $prefix } {\n    display: inline-block;\n    border-right: get(\"width\") solid color.get(get(\"color\"));\n    min-height: get(\"min-height\");\n    vertical-align: middle;\n    margin: 0 get(\"margin\");\n    flex-grow: 0;\n    align-self: stretch;\n  }\n",
              "line": {
                "start": 48,
                "end": 60
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(get(\"prefix\"));\n  \n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n  }\n  #{ $prefix }--cards {\n    #{ $prefix }__slide {\n      margin-right: 1.35rem;\n      > .card {\n        width: 100%;\n        max-width: none;\n        height: calc(100% - 2rem);\n        margin: 1rem 0 1rem 0;// For shadows\n      }\n    }\n    #{ $prefix }__slide--empty {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }__track {\n    display: flex;\n    overflow-x: auto;\n    scroll-behavior: smooth;\n    scroll-snap-type: x mandatory;\n    // scroll-padding-left: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    // switch below to a modifier (like #{ $prefix }--in-container, #{ $prefix }--in-container-large-x) Default is container\n    \n    // scroll-padding-right: 1rem;\n    // Hide scrollbars\n    -ms-overflow-style: none; /* for Internet Explorer, Edge */\n    scrollbar-width: none; /* for Firefox */\n    &::-webkit-scrollbar {\n      display: none; /* for Chrome, Safari, and Opera */\n    }\n    @include layout.match-container-margin(\"scroll-padding-left\", get(\"container\"));\n    // padding: 1rem;\n    // Add space to end of list\n    // &::after {\n    //   content: \"\\00a0\";\n    //   display: block;\n    //   width: 1rem;\n    //   height: 100%;\n    //   flex: 0 0 1rem;\n    // }\n  }\n  #{ $prefix }__slide {\n    \n    flex: 0 0 450px;\n    max-width: 90vw;\n    scroll-snap-align: start;\n\n    $containerBreakpoint: layout.get-container(\"container\", $breakpoint: \"small\", $required: false);\n    // Only if this container has this breakpoint\n    @if ($containerBreakpoint) {\n      @include breakpoint.max(\"small\") {\n        $pad: layout.get-container-padding-x(\"container\", \"small\");\n        max-width: none;\n        flex-basis: calc(100vw - ($pad * 2) - var(--ulu-scrollbar-width));\n      }\n    }\n  }\n  #{ $prefix }__slide--empty {\n    scroll-snap-align: none;\n    // flex-basis: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    @include layout.match-container-margin(\"flex-basis\", get(\"container\"));\n    & {\n      margin-right: 0;\n    }\n    // @include ulu.breakpoint-max(\"small\") {\n    //   &:last-child {\n    //     display: none;\n    //   }\n    // }\n  }\n  #{ $prefix }__controls {\n    list-style: none !important;\n    padding: 0;\n  }\n  .OverflowScroller__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n  }\n  @if get(\"button-icon-offset-y\") {\n    .OverflowScroller__control-icon {\n      margin-top: get(\"button-icon-offset-y\");\n    }\n  }\n  .OverflowScroller__control-button--previous {\n    left: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-left: get(\"button-icon-offset-x\");\n        \n      }\n    }\n  }\n  .OverflowScroller__control-button--next {\n    right: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-right: get(\"button-icon-offset-x\");\n      }\n    }\n  }\n  @include breakpoint.max(\"small\") {\n    .OverflowScroller__control-button--previous {\n      left: get(\"button-indent-small\");\n    }\n    .OverflowScroller__control-button--next {\n      right: get(\"button-indent-small\");\n    }\n  }\n",
              "line": {
                "start": 83,
                "end": 200
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(get(\"prefix\"));\n  \n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n  }\n  #{ $prefix }--cards {\n    #{ $prefix }__slide {\n      margin-right: 1.35rem;\n      > .card {\n        width: 100%;\n        max-width: none;\n        height: calc(100% - 2rem);\n        margin: 1rem 0 1rem 0;// For shadows\n      }\n    }\n    #{ $prefix }__slide--empty {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }__track {\n    display: flex;\n    overflow-x: auto;\n    scroll-behavior: smooth;\n    scroll-snap-type: x mandatory;\n    // scroll-padding-left: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    // switch below to a modifier (like #{ $prefix }--in-container, #{ $prefix }--in-container-large-x) Default is container\n    \n    // scroll-padding-right: 1rem;\n    // Hide scrollbars\n    -ms-overflow-style: none; /* for Internet Explorer, Edge */\n    scrollbar-width: none; /* for Firefox */\n    &::-webkit-scrollbar {\n      display: none; /* for Chrome, Safari, and Opera */\n    }\n    @include layout.match-container-margin(\"scroll-padding-left\", get(\"container\"));\n    // padding: 1rem;\n    // Add space to end of list\n    // &::after {\n    //   content: \"\\00a0\";\n    //   display: block;\n    //   width: 1rem;\n    //   height: 100%;\n    //   flex: 0 0 1rem;\n    // }\n  }\n  #{ $prefix }__slide {\n    \n    flex: 0 0 450px;\n    max-width: 90vw;\n    scroll-snap-align: start;\n\n    $containerBreakpoint: layout.get-container(\"container\", $breakpoint: \"small\", $required: false);\n    // Only if this container has this breakpoint\n    @if ($containerBreakpoint) {\n      @include breakpoint.max(\"small\") {\n        $pad: layout.get-container-padding-x(\"container\", \"small\");\n        max-width: none;\n        flex-basis: calc(100vw - ($pad * 2) - var(--ulu-scrollbar-width));\n      }\n    }\n  }\n  #{ $prefix }__slide--empty {\n    scroll-snap-align: none;\n    // flex-basis: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    @include layout.match-container-margin(\"flex-basis\", get(\"container\"));\n    & {\n      margin-right: 0;\n    }\n    // @include ulu.breakpoint-max(\"small\") {\n    //   &:last-child {\n    //     display: none;\n    //   }\n    // }\n  }\n  #{ $prefix }__controls {\n    list-style: none !important;\n    padding: 0;\n  }\n  .OverflowScroller__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n  }\n  @if get(\"button-icon-offset-y\") {\n    .OverflowScroller__control-icon {\n      margin-top: get(\"button-icon-offset-y\");\n    }\n  }\n  .OverflowScroller__control-button--previous {\n    left: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-left: get(\"button-icon-offset-x\");\n        \n      }\n    }\n  }\n  .OverflowScroller__control-button--next {\n    right: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-right: get(\"button-icon-offset-x\");\n      }\n    }\n  }\n  @include breakpoint.max(\"small\") {\n    .OverflowScroller__control-button--previous {\n      left: get(\"button-indent-small\");\n    }\n    .OverflowScroller__control-button--next {\n      right: get(\"button-indent-small\");\n    }\n  }\n",
              "line": {
                "start": 83,
                "end": 200
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(get(\"prefix\"));\n  \n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n  }\n  #{ $prefix }--cards {\n    #{ $prefix }__slide {\n      margin-right: 1.35rem;\n      > .card {\n        width: 100%;\n        max-width: none;\n        height: calc(100% - 2rem);\n        margin: 1rem 0 1rem 0;// For shadows\n      }\n    }\n    #{ $prefix }__slide--empty {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }__track {\n    display: flex;\n    overflow-x: auto;\n    scroll-behavior: smooth;\n    scroll-snap-type: x mandatory;\n    // scroll-padding-left: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    // switch below to a modifier (like #{ $prefix }--in-container, #{ $prefix }--in-container-large-x) Default is container\n    \n    // scroll-padding-right: 1rem;\n    // Hide scrollbars\n    -ms-overflow-style: none; /* for Internet Explorer, Edge */\n    scrollbar-width: none; /* for Firefox */\n    &::-webkit-scrollbar {\n      display: none; /* for Chrome, Safari, and Opera */\n    }\n    @include layout.match-container-margin(\"scroll-padding-left\", get(\"container\"));\n    // padding: 1rem;\n    // Add space to end of list\n    // &::after {\n    //   content: \"\\00a0\";\n    //   display: block;\n    //   width: 1rem;\n    //   height: 100%;\n    //   flex: 0 0 1rem;\n    // }\n  }\n  #{ $prefix }__slide {\n    \n    flex: 0 0 450px;\n    max-width: 90vw;\n    scroll-snap-align: start;\n\n    $containerBreakpoint: layout.get-container(\"container\", $breakpoint: \"small\", $required: false);\n    // Only if this container has this breakpoint\n    @if ($containerBreakpoint) {\n      @include breakpoint.max(\"small\") {\n        $pad: layout.get-container-padding-x(\"container\", \"small\");\n        max-width: none;\n        flex-basis: calc(100vw - ($pad * 2) - var(--ulu-scrollbar-width));\n      }\n    }\n  }\n  #{ $prefix }__slide--empty {\n    scroll-snap-align: none;\n    // flex-basis: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    @include layout.match-container-margin(\"flex-basis\", get(\"container\"));\n    & {\n      margin-right: 0;\n    }\n    // @include ulu.breakpoint-max(\"small\") {\n    //   &:last-child {\n    //     display: none;\n    //   }\n    // }\n  }\n  #{ $prefix }__controls {\n    list-style: none !important;\n    padding: 0;\n  }\n  .OverflowScroller__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n  }\n  @if get(\"button-icon-offset-y\") {\n    .OverflowScroller__control-icon {\n      margin-top: get(\"button-icon-offset-y\");\n    }\n  }\n  .OverflowScroller__control-button--previous {\n    left: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-left: get(\"button-icon-offset-x\");\n        \n      }\n    }\n  }\n  .OverflowScroller__control-button--next {\n    right: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-right: get(\"button-icon-offset-x\");\n      }\n    }\n  }\n  @include breakpoint.max(\"small\") {\n    .OverflowScroller__control-button--previous {\n      left: get(\"button-indent-small\");\n    }\n    .OverflowScroller__control-button--next {\n      right: get(\"button-indent-small\");\n    }\n  }\n",
              "line": {
                "start": 83,
                "end": 200
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(get(\"prefix\"));\n  \n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n  }\n  #{ $prefix }--cards {\n    #{ $prefix }__slide {\n      margin-right: 1.35rem;\n      > .card {\n        width: 100%;\n        max-width: none;\n        height: calc(100% - 2rem);\n        margin: 1rem 0 1rem 0;// For shadows\n      }\n    }\n    #{ $prefix }__slide--empty {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }__track {\n    display: flex;\n    overflow-x: auto;\n    scroll-behavior: smooth;\n    scroll-snap-type: x mandatory;\n    // scroll-padding-left: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    // switch below to a modifier (like #{ $prefix }--in-container, #{ $prefix }--in-container-large-x) Default is container\n    \n    // scroll-padding-right: 1rem;\n    // Hide scrollbars\n    -ms-overflow-style: none; /* for Internet Explorer, Edge */\n    scrollbar-width: none; /* for Firefox */\n    &::-webkit-scrollbar {\n      display: none; /* for Chrome, Safari, and Opera */\n    }\n    @include layout.match-container-margin(\"scroll-padding-left\", get(\"container\"));\n    // padding: 1rem;\n    // Add space to end of list\n    // &::after {\n    //   content: \"\\00a0\";\n    //   display: block;\n    //   width: 1rem;\n    //   height: 100%;\n    //   flex: 0 0 1rem;\n    // }\n  }\n  #{ $prefix }__slide {\n    \n    flex: 0 0 450px;\n    max-width: 90vw;\n    scroll-snap-align: start;\n\n    $containerBreakpoint: layout.get-container(\"container\", $breakpoint: \"small\", $required: false);\n    // Only if this container has this breakpoint\n    @if ($containerBreakpoint) {\n      @include breakpoint.max(\"small\") {\n        $pad: layout.get-container-padding-x(\"container\", \"small\");\n        max-width: none;\n        flex-basis: calc(100vw - ($pad * 2) - var(--ulu-scrollbar-width));\n      }\n    }\n  }\n  #{ $prefix }__slide--empty {\n    scroll-snap-align: none;\n    // flex-basis: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    @include layout.match-container-margin(\"flex-basis\", get(\"container\"));\n    & {\n      margin-right: 0;\n    }\n    // @include ulu.breakpoint-max(\"small\") {\n    //   &:last-child {\n    //     display: none;\n    //   }\n    // }\n  }\n  #{ $prefix }__controls {\n    list-style: none !important;\n    padding: 0;\n  }\n  .OverflowScroller__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n  }\n  @if get(\"button-icon-offset-y\") {\n    .OverflowScroller__control-icon {\n      margin-top: get(\"button-icon-offset-y\");\n    }\n  }\n  .OverflowScroller__control-button--previous {\n    left: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-left: get(\"button-icon-offset-x\");\n        \n      }\n    }\n  }\n  .OverflowScroller__control-button--next {\n    right: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-right: get(\"button-icon-offset-x\");\n      }\n    }\n  }\n  @include breakpoint.max(\"small\") {\n    .OverflowScroller__control-button--previous {\n      left: get(\"button-indent-small\");\n    }\n    .OverflowScroller__control-button--next {\n      right: get(\"button-indent-small\");\n    }\n  }\n",
              "line": {
                "start": 83,
                "end": 200
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(get(\"prefix\"));\n  \n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n  }\n  #{ $prefix }--cards {\n    #{ $prefix }__slide {\n      margin-right: 1.35rem;\n      > .card {\n        width: 100%;\n        max-width: none;\n        height: calc(100% - 2rem);\n        margin: 1rem 0 1rem 0;// For shadows\n      }\n    }\n    #{ $prefix }__slide--empty {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }__track {\n    display: flex;\n    overflow-x: auto;\n    scroll-behavior: smooth;\n    scroll-snap-type: x mandatory;\n    // scroll-padding-left: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    // switch below to a modifier (like #{ $prefix }--in-container, #{ $prefix }--in-container-large-x) Default is container\n    \n    // scroll-padding-right: 1rem;\n    // Hide scrollbars\n    -ms-overflow-style: none; /* for Internet Explorer, Edge */\n    scrollbar-width: none; /* for Firefox */\n    &::-webkit-scrollbar {\n      display: none; /* for Chrome, Safari, and Opera */\n    }\n    @include layout.match-container-margin(\"scroll-padding-left\", get(\"container\"));\n    // padding: 1rem;\n    // Add space to end of list\n    // &::after {\n    //   content: \"\\00a0\";\n    //   display: block;\n    //   width: 1rem;\n    //   height: 100%;\n    //   flex: 0 0 1rem;\n    // }\n  }\n  #{ $prefix }__slide {\n    \n    flex: 0 0 450px;\n    max-width: 90vw;\n    scroll-snap-align: start;\n\n    $containerBreakpoint: layout.get-container(\"container\", $breakpoint: \"small\", $required: false);\n    // Only if this container has this breakpoint\n    @if ($containerBreakpoint) {\n      @include breakpoint.max(\"small\") {\n        $pad: layout.get-container-padding-x(\"container\", \"small\");\n        max-width: none;\n        flex-basis: calc(100vw - ($pad * 2) - var(--ulu-scrollbar-width));\n      }\n    }\n  }\n  #{ $prefix }__slide--empty {\n    scroll-snap-align: none;\n    // flex-basis: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    @include layout.match-container-margin(\"flex-basis\", get(\"container\"));\n    & {\n      margin-right: 0;\n    }\n    // @include ulu.breakpoint-max(\"small\") {\n    //   &:last-child {\n    //     display: none;\n    //   }\n    // }\n  }\n  #{ $prefix }__controls {\n    list-style: none !important;\n    padding: 0;\n  }\n  .OverflowScroller__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n  }\n  @if get(\"button-icon-offset-y\") {\n    .OverflowScroller__control-icon {\n      margin-top: get(\"button-icon-offset-y\");\n    }\n  }\n  .OverflowScroller__control-button--previous {\n    left: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-left: get(\"button-icon-offset-x\");\n        \n      }\n    }\n  }\n  .OverflowScroller__control-button--next {\n    right: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-right: get(\"button-icon-offset-x\");\n      }\n    }\n  }\n  @include breakpoint.max(\"small\") {\n    .OverflowScroller__control-button--previous {\n      left: get(\"button-indent-small\");\n    }\n    .OverflowScroller__control-button--next {\n      right: get(\"button-indent-small\");\n    }\n  }\n",
              "line": {
                "start": 83,
                "end": 200
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(get(\"prefix\"));\n  \n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n  }\n  #{ $prefix }--cards {\n    #{ $prefix }__slide {\n      margin-right: 1.35rem;\n      > .card {\n        width: 100%;\n        max-width: none;\n        height: calc(100% - 2rem);\n        margin: 1rem 0 1rem 0;// For shadows\n      }\n    }\n    #{ $prefix }__slide--empty {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }__track {\n    display: flex;\n    overflow-x: auto;\n    scroll-behavior: smooth;\n    scroll-snap-type: x mandatory;\n    // scroll-padding-left: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    // switch below to a modifier (like #{ $prefix }--in-container, #{ $prefix }--in-container-large-x) Default is container\n    \n    // scroll-padding-right: 1rem;\n    // Hide scrollbars\n    -ms-overflow-style: none; /* for Internet Explorer, Edge */\n    scrollbar-width: none; /* for Firefox */\n    &::-webkit-scrollbar {\n      display: none; /* for Chrome, Safari, and Opera */\n    }\n    @include layout.match-container-margin(\"scroll-padding-left\", get(\"container\"));\n    // padding: 1rem;\n    // Add space to end of list\n    // &::after {\n    //   content: \"\\00a0\";\n    //   display: block;\n    //   width: 1rem;\n    //   height: 100%;\n    //   flex: 0 0 1rem;\n    // }\n  }\n  #{ $prefix }__slide {\n    \n    flex: 0 0 450px;\n    max-width: 90vw;\n    scroll-snap-align: start;\n\n    $containerBreakpoint: layout.get-container(\"container\", $breakpoint: \"small\", $required: false);\n    // Only if this container has this breakpoint\n    @if ($containerBreakpoint) {\n      @include breakpoint.max(\"small\") {\n        $pad: layout.get-container-padding-x(\"container\", \"small\");\n        max-width: none;\n        flex-basis: calc(100vw - ($pad * 2) - var(--ulu-scrollbar-width));\n      }\n    }\n  }\n  #{ $prefix }__slide--empty {\n    scroll-snap-align: none;\n    // flex-basis: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    @include layout.match-container-margin(\"flex-basis\", get(\"container\"));\n    & {\n      margin-right: 0;\n    }\n    // @include ulu.breakpoint-max(\"small\") {\n    //   &:last-child {\n    //     display: none;\n    //   }\n    // }\n  }\n  #{ $prefix }__controls {\n    list-style: none !important;\n    padding: 0;\n  }\n  .OverflowScroller__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n  }\n  @if get(\"button-icon-offset-y\") {\n    .OverflowScroller__control-icon {\n      margin-top: get(\"button-icon-offset-y\");\n    }\n  }\n  .OverflowScroller__control-button--previous {\n    left: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-left: get(\"button-icon-offset-x\");\n        \n      }\n    }\n  }\n  .OverflowScroller__control-button--next {\n    right: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-right: get(\"button-icon-offset-x\");\n      }\n    }\n  }\n  @include breakpoint.max(\"small\") {\n    .OverflowScroller__control-button--previous {\n      left: get(\"button-indent-small\");\n    }\n    .OverflowScroller__control-button--next {\n      right: get(\"button-indent-small\");\n    }\n  }\n",
              "line": {
                "start": 83,
                "end": 200
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(get(\"prefix\"));\n  \n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n  }\n  #{ $prefix }--cards {\n    #{ $prefix }__slide {\n      margin-right: 1.35rem;\n      > .card {\n        width: 100%;\n        max-width: none;\n        height: calc(100% - 2rem);\n        margin: 1rem 0 1rem 0;// For shadows\n      }\n    }\n    #{ $prefix }__slide--empty {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }__track {\n    display: flex;\n    overflow-x: auto;\n    scroll-behavior: smooth;\n    scroll-snap-type: x mandatory;\n    // scroll-padding-left: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    // switch below to a modifier (like #{ $prefix }--in-container, #{ $prefix }--in-container-large-x) Default is container\n    \n    // scroll-padding-right: 1rem;\n    // Hide scrollbars\n    -ms-overflow-style: none; /* for Internet Explorer, Edge */\n    scrollbar-width: none; /* for Firefox */\n    &::-webkit-scrollbar {\n      display: none; /* for Chrome, Safari, and Opera */\n    }\n    @include layout.match-container-margin(\"scroll-padding-left\", get(\"container\"));\n    // padding: 1rem;\n    // Add space to end of list\n    // &::after {\n    //   content: \"\\00a0\";\n    //   display: block;\n    //   width: 1rem;\n    //   height: 100%;\n    //   flex: 0 0 1rem;\n    // }\n  }\n  #{ $prefix }__slide {\n    \n    flex: 0 0 450px;\n    max-width: 90vw;\n    scroll-snap-align: start;\n\n    $containerBreakpoint: layout.get-container(\"container\", $breakpoint: \"small\", $required: false);\n    // Only if this container has this breakpoint\n    @if ($containerBreakpoint) {\n      @include breakpoint.max(\"small\") {\n        $pad: layout.get-container-padding-x(\"container\", \"small\");\n        max-width: none;\n        flex-basis: calc(100vw - ($pad * 2) - var(--ulu-scrollbar-width));\n      }\n    }\n  }\n  #{ $prefix }__slide--empty {\n    scroll-snap-align: none;\n    // flex-basis: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    @include layout.match-container-margin(\"flex-basis\", get(\"container\"));\n    & {\n      margin-right: 0;\n    }\n    // @include ulu.breakpoint-max(\"small\") {\n    //   &:last-child {\n    //     display: none;\n    //   }\n    // }\n  }\n  #{ $prefix }__controls {\n    list-style: none !important;\n    padding: 0;\n  }\n  .OverflowScroller__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n  }\n  @if get(\"button-icon-offset-y\") {\n    .OverflowScroller__control-icon {\n      margin-top: get(\"button-icon-offset-y\");\n    }\n  }\n  .OverflowScroller__control-button--previous {\n    left: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-left: get(\"button-icon-offset-x\");\n        \n      }\n    }\n  }\n  .OverflowScroller__control-button--next {\n    right: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-right: get(\"button-icon-offset-x\");\n      }\n    }\n  }\n  @include breakpoint.max(\"small\") {\n    .OverflowScroller__control-button--previous {\n      left: get(\"button-indent-small\");\n    }\n    .OverflowScroller__control-button--next {\n      right: get(\"button-indent-small\");\n    }\n  }\n",
              "line": {
                "start": 83,
                "end": 200
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(get(\"prefix\"));\n  \n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n  }\n  #{ $prefix }--cards {\n    #{ $prefix }__slide {\n      margin-right: 1.35rem;\n      > .card {\n        width: 100%;\n        max-width: none;\n        height: calc(100% - 2rem);\n        margin: 1rem 0 1rem 0;// For shadows\n      }\n    }\n    #{ $prefix }__slide--empty {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }__track {\n    display: flex;\n    overflow-x: auto;\n    scroll-behavior: smooth;\n    scroll-snap-type: x mandatory;\n    // scroll-padding-left: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    // switch below to a modifier (like #{ $prefix }--in-container, #{ $prefix }--in-container-large-x) Default is container\n    \n    // scroll-padding-right: 1rem;\n    // Hide scrollbars\n    -ms-overflow-style: none; /* for Internet Explorer, Edge */\n    scrollbar-width: none; /* for Firefox */\n    &::-webkit-scrollbar {\n      display: none; /* for Chrome, Safari, and Opera */\n    }\n    @include layout.match-container-margin(\"scroll-padding-left\", get(\"container\"));\n    // padding: 1rem;\n    // Add space to end of list\n    // &::after {\n    //   content: \"\\00a0\";\n    //   display: block;\n    //   width: 1rem;\n    //   height: 100%;\n    //   flex: 0 0 1rem;\n    // }\n  }\n  #{ $prefix }__slide {\n    \n    flex: 0 0 450px;\n    max-width: 90vw;\n    scroll-snap-align: start;\n\n    $containerBreakpoint: layout.get-container(\"container\", $breakpoint: \"small\", $required: false);\n    // Only if this container has this breakpoint\n    @if ($containerBreakpoint) {\n      @include breakpoint.max(\"small\") {\n        $pad: layout.get-container-padding-x(\"container\", \"small\");\n        max-width: none;\n        flex-basis: calc(100vw - ($pad * 2) - var(--ulu-scrollbar-width));\n      }\n    }\n  }\n  #{ $prefix }__slide--empty {\n    scroll-snap-align: none;\n    // flex-basis: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    @include layout.match-container-margin(\"flex-basis\", get(\"container\"));\n    & {\n      margin-right: 0;\n    }\n    // @include ulu.breakpoint-max(\"small\") {\n    //   &:last-child {\n    //     display: none;\n    //   }\n    // }\n  }\n  #{ $prefix }__controls {\n    list-style: none !important;\n    padding: 0;\n  }\n  .OverflowScroller__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n  }\n  @if get(\"button-icon-offset-y\") {\n    .OverflowScroller__control-icon {\n      margin-top: get(\"button-icon-offset-y\");\n    }\n  }\n  .OverflowScroller__control-button--previous {\n    left: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-left: get(\"button-icon-offset-x\");\n        \n      }\n    }\n  }\n  .OverflowScroller__control-button--next {\n    right: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-right: get(\"button-icon-offset-x\");\n      }\n    }\n  }\n  @include breakpoint.max(\"small\") {\n    .OverflowScroller__control-button--previous {\n      left: get(\"button-indent-small\");\n    }\n    .OverflowScroller__control-button--next {\n      right: get(\"button-indent-small\");\n    }\n  }\n",
              "line": {
                "start": 83,
                "end": 200
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(get(\"prefix\"));\n  \n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n  }\n  #{ $prefix }--cards {\n    #{ $prefix }__slide {\n      margin-right: 1.35rem;\n      > .card {\n        width: 100%;\n        max-width: none;\n        height: calc(100% - 2rem);\n        margin: 1rem 0 1rem 0;// For shadows\n      }\n    }\n    #{ $prefix }__slide--empty {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }__track {\n    display: flex;\n    overflow-x: auto;\n    scroll-behavior: smooth;\n    scroll-snap-type: x mandatory;\n    // scroll-padding-left: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    // switch below to a modifier (like #{ $prefix }--in-container, #{ $prefix }--in-container-large-x) Default is container\n    \n    // scroll-padding-right: 1rem;\n    // Hide scrollbars\n    -ms-overflow-style: none; /* for Internet Explorer, Edge */\n    scrollbar-width: none; /* for Firefox */\n    &::-webkit-scrollbar {\n      display: none; /* for Chrome, Safari, and Opera */\n    }\n    @include layout.match-container-margin(\"scroll-padding-left\", get(\"container\"));\n    // padding: 1rem;\n    // Add space to end of list\n    // &::after {\n    //   content: \"\\00a0\";\n    //   display: block;\n    //   width: 1rem;\n    //   height: 100%;\n    //   flex: 0 0 1rem;\n    // }\n  }\n  #{ $prefix }__slide {\n    \n    flex: 0 0 450px;\n    max-width: 90vw;\n    scroll-snap-align: start;\n\n    $containerBreakpoint: layout.get-container(\"container\", $breakpoint: \"small\", $required: false);\n    // Only if this container has this breakpoint\n    @if ($containerBreakpoint) {\n      @include breakpoint.max(\"small\") {\n        $pad: layout.get-container-padding-x(\"container\", \"small\");\n        max-width: none;\n        flex-basis: calc(100vw - ($pad * 2) - var(--ulu-scrollbar-width));\n      }\n    }\n  }\n  #{ $prefix }__slide--empty {\n    scroll-snap-align: none;\n    // flex-basis: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    @include layout.match-container-margin(\"flex-basis\", get(\"container\"));\n    & {\n      margin-right: 0;\n    }\n    // @include ulu.breakpoint-max(\"small\") {\n    //   &:last-child {\n    //     display: none;\n    //   }\n    // }\n  }\n  #{ $prefix }__controls {\n    list-style: none !important;\n    padding: 0;\n  }\n  .OverflowScroller__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n  }\n  @if get(\"button-icon-offset-y\") {\n    .OverflowScroller__control-icon {\n      margin-top: get(\"button-icon-offset-y\");\n    }\n  }\n  .OverflowScroller__control-button--previous {\n    left: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-left: get(\"button-icon-offset-x\");\n        \n      }\n    }\n  }\n  .OverflowScroller__control-button--next {\n    right: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-right: get(\"button-icon-offset-x\");\n      }\n    }\n  }\n  @include breakpoint.max(\"small\") {\n    .OverflowScroller__control-button--previous {\n      left: get(\"button-indent-small\");\n    }\n    .OverflowScroller__control-button--next {\n      right: get(\"button-indent-small\");\n    }\n  }\n",
              "line": {
                "start": 83,
                "end": 200
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(get(\"prefix\"));\n  \n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n  }\n  #{ $prefix }--cards {\n    #{ $prefix }__slide {\n      margin-right: 1.35rem;\n      > .card {\n        width: 100%;\n        max-width: none;\n        height: calc(100% - 2rem);\n        margin: 1rem 0 1rem 0;// For shadows\n      }\n    }\n    #{ $prefix }__slide--empty {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }__track {\n    display: flex;\n    overflow-x: auto;\n    scroll-behavior: smooth;\n    scroll-snap-type: x mandatory;\n    // scroll-padding-left: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    // switch below to a modifier (like #{ $prefix }--in-container, #{ $prefix }--in-container-large-x) Default is container\n    \n    // scroll-padding-right: 1rem;\n    // Hide scrollbars\n    -ms-overflow-style: none; /* for Internet Explorer, Edge */\n    scrollbar-width: none; /* for Firefox */\n    &::-webkit-scrollbar {\n      display: none; /* for Chrome, Safari, and Opera */\n    }\n    @include layout.match-container-margin(\"scroll-padding-left\", get(\"container\"));\n    // padding: 1rem;\n    // Add space to end of list\n    // &::after {\n    //   content: \"\\00a0\";\n    //   display: block;\n    //   width: 1rem;\n    //   height: 100%;\n    //   flex: 0 0 1rem;\n    // }\n  }\n  #{ $prefix }__slide {\n    \n    flex: 0 0 450px;\n    max-width: 90vw;\n    scroll-snap-align: start;\n\n    $containerBreakpoint: layout.get-container(\"container\", $breakpoint: \"small\", $required: false);\n    // Only if this container has this breakpoint\n    @if ($containerBreakpoint) {\n      @include breakpoint.max(\"small\") {\n        $pad: layout.get-container-padding-x(\"container\", \"small\");\n        max-width: none;\n        flex-basis: calc(100vw - ($pad * 2) - var(--ulu-scrollbar-width));\n      }\n    }\n  }\n  #{ $prefix }__slide--empty {\n    scroll-snap-align: none;\n    // flex-basis: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    @include layout.match-container-margin(\"flex-basis\", get(\"container\"));\n    & {\n      margin-right: 0;\n    }\n    // @include ulu.breakpoint-max(\"small\") {\n    //   &:last-child {\n    //     display: none;\n    //   }\n    // }\n  }\n  #{ $prefix }__controls {\n    list-style: none !important;\n    padding: 0;\n  }\n  .OverflowScroller__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n  }\n  @if get(\"button-icon-offset-y\") {\n    .OverflowScroller__control-icon {\n      margin-top: get(\"button-icon-offset-y\");\n    }\n  }\n  .OverflowScroller__control-button--previous {\n    left: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-left: get(\"button-icon-offset-x\");\n        \n      }\n    }\n  }\n  .OverflowScroller__control-button--next {\n    right: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-right: get(\"button-icon-offset-x\");\n      }\n    }\n  }\n  @include breakpoint.max(\"small\") {\n    .OverflowScroller__control-button--previous {\n      left: get(\"button-indent-small\");\n    }\n    .OverflowScroller__control-button--next {\n      right: get(\"button-indent-small\");\n    }\n  }\n",
              "line": {
                "start": 83,
                "end": 200
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(get(\"prefix\"));\n  \n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n  }\n  #{ $prefix }--cards {\n    #{ $prefix }__slide {\n      margin-right: 1.35rem;\n      > .card {\n        width: 100%;\n        max-width: none;\n        height: calc(100% - 2rem);\n        margin: 1rem 0 1rem 0;// For shadows\n      }\n    }\n    #{ $prefix }__slide--empty {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }__track {\n    display: flex;\n    overflow-x: auto;\n    scroll-behavior: smooth;\n    scroll-snap-type: x mandatory;\n    // scroll-padding-left: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    // switch below to a modifier (like #{ $prefix }--in-container, #{ $prefix }--in-container-large-x) Default is container\n    \n    // scroll-padding-right: 1rem;\n    // Hide scrollbars\n    -ms-overflow-style: none; /* for Internet Explorer, Edge */\n    scrollbar-width: none; /* for Firefox */\n    &::-webkit-scrollbar {\n      display: none; /* for Chrome, Safari, and Opera */\n    }\n    @include layout.match-container-margin(\"scroll-padding-left\", get(\"container\"));\n    // padding: 1rem;\n    // Add space to end of list\n    // &::after {\n    //   content: \"\\00a0\";\n    //   display: block;\n    //   width: 1rem;\n    //   height: 100%;\n    //   flex: 0 0 1rem;\n    // }\n  }\n  #{ $prefix }__slide {\n    \n    flex: 0 0 450px;\n    max-width: 90vw;\n    scroll-snap-align: start;\n\n    $containerBreakpoint: layout.get-container(\"container\", $breakpoint: \"small\", $required: false);\n    // Only if this container has this breakpoint\n    @if ($containerBreakpoint) {\n      @include breakpoint.max(\"small\") {\n        $pad: layout.get-container-padding-x(\"container\", \"small\");\n        max-width: none;\n        flex-basis: calc(100vw - ($pad * 2) - var(--ulu-scrollbar-width));\n      }\n    }\n  }\n  #{ $prefix }__slide--empty {\n    scroll-snap-align: none;\n    // flex-basis: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    @include layout.match-container-margin(\"flex-basis\", get(\"container\"));\n    & {\n      margin-right: 0;\n    }\n    // @include ulu.breakpoint-max(\"small\") {\n    //   &:last-child {\n    //     display: none;\n    //   }\n    // }\n  }\n  #{ $prefix }__controls {\n    list-style: none !important;\n    padding: 0;\n  }\n  .OverflowScroller__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n  }\n  @if get(\"button-icon-offset-y\") {\n    .OverflowScroller__control-icon {\n      margin-top: get(\"button-icon-offset-y\");\n    }\n  }\n  .OverflowScroller__control-button--previous {\n    left: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-left: get(\"button-icon-offset-x\");\n        \n      }\n    }\n  }\n  .OverflowScroller__control-button--next {\n    right: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-right: get(\"button-icon-offset-x\");\n      }\n    }\n  }\n  @include breakpoint.max(\"small\") {\n    .OverflowScroller__control-button--previous {\n      left: get(\"button-indent-small\");\n    }\n    .OverflowScroller__control-button--next {\n      right: get(\"button-indent-small\");\n    }\n  }\n",
              "line": {
                "start": 83,
                "end": 200
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(get(\"prefix\"));\n  \n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n  }\n  #{ $prefix }--cards {\n    #{ $prefix }__slide {\n      margin-right: 1.35rem;\n      > .card {\n        width: 100%;\n        max-width: none;\n        height: calc(100% - 2rem);\n        margin: 1rem 0 1rem 0;// For shadows\n      }\n    }\n    #{ $prefix }__slide--empty {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }__track {\n    display: flex;\n    overflow-x: auto;\n    scroll-behavior: smooth;\n    scroll-snap-type: x mandatory;\n    // scroll-padding-left: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    // switch below to a modifier (like #{ $prefix }--in-container, #{ $prefix }--in-container-large-x) Default is container\n    \n    // scroll-padding-right: 1rem;\n    // Hide scrollbars\n    -ms-overflow-style: none; /* for Internet Explorer, Edge */\n    scrollbar-width: none; /* for Firefox */\n    &::-webkit-scrollbar {\n      display: none; /* for Chrome, Safari, and Opera */\n    }\n    @include layout.match-container-margin(\"scroll-padding-left\", get(\"container\"));\n    // padding: 1rem;\n    // Add space to end of list\n    // &::after {\n    //   content: \"\\00a0\";\n    //   display: block;\n    //   width: 1rem;\n    //   height: 100%;\n    //   flex: 0 0 1rem;\n    // }\n  }\n  #{ $prefix }__slide {\n    \n    flex: 0 0 450px;\n    max-width: 90vw;\n    scroll-snap-align: start;\n\n    $containerBreakpoint: layout.get-container(\"container\", $breakpoint: \"small\", $required: false);\n    // Only if this container has this breakpoint\n    @if ($containerBreakpoint) {\n      @include breakpoint.max(\"small\") {\n        $pad: layout.get-container-padding-x(\"container\", \"small\");\n        max-width: none;\n        flex-basis: calc(100vw - ($pad * 2) - var(--ulu-scrollbar-width));\n      }\n    }\n  }\n  #{ $prefix }__slide--empty {\n    scroll-snap-align: none;\n    // flex-basis: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    @include layout.match-container-margin(\"flex-basis\", get(\"container\"));\n    & {\n      margin-right: 0;\n    }\n    // @include ulu.breakpoint-max(\"small\") {\n    //   &:last-child {\n    //     display: none;\n    //   }\n    // }\n  }\n  #{ $prefix }__controls {\n    list-style: none !important;\n    padding: 0;\n  }\n  .OverflowScroller__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n  }\n  @if get(\"button-icon-offset-y\") {\n    .OverflowScroller__control-icon {\n      margin-top: get(\"button-icon-offset-y\");\n    }\n  }\n  .OverflowScroller__control-button--previous {\n    left: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-left: get(\"button-icon-offset-x\");\n        \n      }\n    }\n  }\n  .OverflowScroller__control-button--next {\n    right: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-right: get(\"button-icon-offset-x\");\n      }\n    }\n  }\n  @include breakpoint.max(\"small\") {\n    .OverflowScroller__control-button--previous {\n      left: get(\"button-indent-small\");\n    }\n    .OverflowScroller__control-button--next {\n      right: get(\"button-indent-small\");\n    }\n  }\n",
              "line": {
                "start": 83,
                "end": 200
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(get(\"prefix\"));\n  \n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n  }\n  #{ $prefix }--cards {\n    #{ $prefix }__slide {\n      margin-right: 1.35rem;\n      > .card {\n        width: 100%;\n        max-width: none;\n        height: calc(100% - 2rem);\n        margin: 1rem 0 1rem 0;// For shadows\n      }\n    }\n    #{ $prefix }__slide--empty {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }__track {\n    display: flex;\n    overflow-x: auto;\n    scroll-behavior: smooth;\n    scroll-snap-type: x mandatory;\n    // scroll-padding-left: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    // switch below to a modifier (like #{ $prefix }--in-container, #{ $prefix }--in-container-large-x) Default is container\n    \n    // scroll-padding-right: 1rem;\n    // Hide scrollbars\n    -ms-overflow-style: none; /* for Internet Explorer, Edge */\n    scrollbar-width: none; /* for Firefox */\n    &::-webkit-scrollbar {\n      display: none; /* for Chrome, Safari, and Opera */\n    }\n    @include layout.match-container-margin(\"scroll-padding-left\", get(\"container\"));\n    // padding: 1rem;\n    // Add space to end of list\n    // &::after {\n    //   content: \"\\00a0\";\n    //   display: block;\n    //   width: 1rem;\n    //   height: 100%;\n    //   flex: 0 0 1rem;\n    // }\n  }\n  #{ $prefix }__slide {\n    \n    flex: 0 0 450px;\n    max-width: 90vw;\n    scroll-snap-align: start;\n\n    $containerBreakpoint: layout.get-container(\"container\", $breakpoint: \"small\", $required: false);\n    // Only if this container has this breakpoint\n    @if ($containerBreakpoint) {\n      @include breakpoint.max(\"small\") {\n        $pad: layout.get-container-padding-x(\"container\", \"small\");\n        max-width: none;\n        flex-basis: calc(100vw - ($pad * 2) - var(--ulu-scrollbar-width));\n      }\n    }\n  }\n  #{ $prefix }__slide--empty {\n    scroll-snap-align: none;\n    // flex-basis: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    @include layout.match-container-margin(\"flex-basis\", get(\"container\"));\n    & {\n      margin-right: 0;\n    }\n    // @include ulu.breakpoint-max(\"small\") {\n    //   &:last-child {\n    //     display: none;\n    //   }\n    // }\n  }\n  #{ $prefix }__controls {\n    list-style: none !important;\n    padding: 0;\n  }\n  .OverflowScroller__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n  }\n  @if get(\"button-icon-offset-y\") {\n    .OverflowScroller__control-icon {\n      margin-top: get(\"button-icon-offset-y\");\n    }\n  }\n  .OverflowScroller__control-button--previous {\n    left: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-left: get(\"button-icon-offset-x\");\n        \n      }\n    }\n  }\n  .OverflowScroller__control-button--next {\n    right: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-right: get(\"button-icon-offset-x\");\n      }\n    }\n  }\n  @include breakpoint.max(\"small\") {\n    .OverflowScroller__control-button--previous {\n      left: get(\"button-indent-small\");\n    }\n    .OverflowScroller__control-button--next {\n      right: get(\"button-indent-small\");\n    }\n  }\n",
              "line": {
                "start": 83,
                "end": 200
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(get(\"prefix\"));\n  \n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n  }\n  #{ $prefix }--cards {\n    #{ $prefix }__slide {\n      margin-right: 1.35rem;\n      > .card {\n        width: 100%;\n        max-width: none;\n        height: calc(100% - 2rem);\n        margin: 1rem 0 1rem 0;// For shadows\n      }\n    }\n    #{ $prefix }__slide--empty {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }__track {\n    display: flex;\n    overflow-x: auto;\n    scroll-behavior: smooth;\n    scroll-snap-type: x mandatory;\n    // scroll-padding-left: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    // switch below to a modifier (like #{ $prefix }--in-container, #{ $prefix }--in-container-large-x) Default is container\n    \n    // scroll-padding-right: 1rem;\n    // Hide scrollbars\n    -ms-overflow-style: none; /* for Internet Explorer, Edge */\n    scrollbar-width: none; /* for Firefox */\n    &::-webkit-scrollbar {\n      display: none; /* for Chrome, Safari, and Opera */\n    }\n    @include layout.match-container-margin(\"scroll-padding-left\", get(\"container\"));\n    // padding: 1rem;\n    // Add space to end of list\n    // &::after {\n    //   content: \"\\00a0\";\n    //   display: block;\n    //   width: 1rem;\n    //   height: 100%;\n    //   flex: 0 0 1rem;\n    // }\n  }\n  #{ $prefix }__slide {\n    \n    flex: 0 0 450px;\n    max-width: 90vw;\n    scroll-snap-align: start;\n\n    $containerBreakpoint: layout.get-container(\"container\", $breakpoint: \"small\", $required: false);\n    // Only if this container has this breakpoint\n    @if ($containerBreakpoint) {\n      @include breakpoint.max(\"small\") {\n        $pad: layout.get-container-padding-x(\"container\", \"small\");\n        max-width: none;\n        flex-basis: calc(100vw - ($pad * 2) - var(--ulu-scrollbar-width));\n      }\n    }\n  }\n  #{ $prefix }__slide--empty {\n    scroll-snap-align: none;\n    // flex-basis: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    @include layout.match-container-margin(\"flex-basis\", get(\"container\"));\n    & {\n      margin-right: 0;\n    }\n    // @include ulu.breakpoint-max(\"small\") {\n    //   &:last-child {\n    //     display: none;\n    //   }\n    // }\n  }\n  #{ $prefix }__controls {\n    list-style: none !important;\n    padding: 0;\n  }\n  .OverflowScroller__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n  }\n  @if get(\"button-icon-offset-y\") {\n    .OverflowScroller__control-icon {\n      margin-top: get(\"button-icon-offset-y\");\n    }\n  }\n  .OverflowScroller__control-button--previous {\n    left: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-left: get(\"button-icon-offset-x\");\n        \n      }\n    }\n  }\n  .OverflowScroller__control-button--next {\n    right: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-right: get(\"button-icon-offset-x\");\n      }\n    }\n  }\n  @include breakpoint.max(\"small\") {\n    .OverflowScroller__control-button--previous {\n      left: get(\"button-indent-small\");\n    }\n    .OverflowScroller__control-button--next {\n      right: get(\"button-indent-small\");\n    }\n  }\n",
              "line": {
                "start": 83,
                "end": 200
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(get(\"prefix\"));\n  \n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n  }\n  #{ $prefix }--cards {\n    #{ $prefix }__slide {\n      margin-right: 1.35rem;\n      > .card {\n        width: 100%;\n        max-width: none;\n        height: calc(100% - 2rem);\n        margin: 1rem 0 1rem 0;// For shadows\n      }\n    }\n    #{ $prefix }__slide--empty {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }__track {\n    display: flex;\n    overflow-x: auto;\n    scroll-behavior: smooth;\n    scroll-snap-type: x mandatory;\n    // scroll-padding-left: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    // switch below to a modifier (like #{ $prefix }--in-container, #{ $prefix }--in-container-large-x) Default is container\n    \n    // scroll-padding-right: 1rem;\n    // Hide scrollbars\n    -ms-overflow-style: none; /* for Internet Explorer, Edge */\n    scrollbar-width: none; /* for Firefox */\n    &::-webkit-scrollbar {\n      display: none; /* for Chrome, Safari, and Opera */\n    }\n    @include layout.match-container-margin(\"scroll-padding-left\", get(\"container\"));\n    // padding: 1rem;\n    // Add space to end of list\n    // &::after {\n    //   content: \"\\00a0\";\n    //   display: block;\n    //   width: 1rem;\n    //   height: 100%;\n    //   flex: 0 0 1rem;\n    // }\n  }\n  #{ $prefix }__slide {\n    \n    flex: 0 0 450px;\n    max-width: 90vw;\n    scroll-snap-align: start;\n\n    $containerBreakpoint: layout.get-container(\"container\", $breakpoint: \"small\", $required: false);\n    // Only if this container has this breakpoint\n    @if ($containerBreakpoint) {\n      @include breakpoint.max(\"small\") {\n        $pad: layout.get-container-padding-x(\"container\", \"small\");\n        max-width: none;\n        flex-basis: calc(100vw - ($pad * 2) - var(--ulu-scrollbar-width));\n      }\n    }\n  }\n  #{ $prefix }__slide--empty {\n    scroll-snap-align: none;\n    // flex-basis: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    @include layout.match-container-margin(\"flex-basis\", get(\"container\"));\n    & {\n      margin-right: 0;\n    }\n    // @include ulu.breakpoint-max(\"small\") {\n    //   &:last-child {\n    //     display: none;\n    //   }\n    // }\n  }\n  #{ $prefix }__controls {\n    list-style: none !important;\n    padding: 0;\n  }\n  .OverflowScroller__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n  }\n  @if get(\"button-icon-offset-y\") {\n    .OverflowScroller__control-icon {\n      margin-top: get(\"button-icon-offset-y\");\n    }\n  }\n  .OverflowScroller__control-button--previous {\n    left: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-left: get(\"button-icon-offset-x\");\n        \n      }\n    }\n  }\n  .OverflowScroller__control-button--next {\n    right: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-right: get(\"button-icon-offset-x\");\n      }\n    }\n  }\n  @include breakpoint.max(\"small\") {\n    .OverflowScroller__control-button--previous {\n      left: get(\"button-indent-small\");\n    }\n    .OverflowScroller__control-button--next {\n      right: get(\"button-indent-small\");\n    }\n  }\n",
              "line": {
                "start": 83,
                "end": 200
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(get(\"prefix\"));\n  \n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n  }\n  #{ $prefix }--cards {\n    #{ $prefix }__slide {\n      margin-right: 1.35rem;\n      > .card {\n        width: 100%;\n        max-width: none;\n        height: calc(100% - 2rem);\n        margin: 1rem 0 1rem 0;// For shadows\n      }\n    }\n    #{ $prefix }__slide--empty {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }__track {\n    display: flex;\n    overflow-x: auto;\n    scroll-behavior: smooth;\n    scroll-snap-type: x mandatory;\n    // scroll-padding-left: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    // switch below to a modifier (like #{ $prefix }--in-container, #{ $prefix }--in-container-large-x) Default is container\n    \n    // scroll-padding-right: 1rem;\n    // Hide scrollbars\n    -ms-overflow-style: none; /* for Internet Explorer, Edge */\n    scrollbar-width: none; /* for Firefox */\n    &::-webkit-scrollbar {\n      display: none; /* for Chrome, Safari, and Opera */\n    }\n    @include layout.match-container-margin(\"scroll-padding-left\", get(\"container\"));\n    // padding: 1rem;\n    // Add space to end of list\n    // &::after {\n    //   content: \"\\00a0\";\n    //   display: block;\n    //   width: 1rem;\n    //   height: 100%;\n    //   flex: 0 0 1rem;\n    // }\n  }\n  #{ $prefix }__slide {\n    \n    flex: 0 0 450px;\n    max-width: 90vw;\n    scroll-snap-align: start;\n\n    $containerBreakpoint: layout.get-container(\"container\", $breakpoint: \"small\", $required: false);\n    // Only if this container has this breakpoint\n    @if ($containerBreakpoint) {\n      @include breakpoint.max(\"small\") {\n        $pad: layout.get-container-padding-x(\"container\", \"small\");\n        max-width: none;\n        flex-basis: calc(100vw - ($pad * 2) - var(--ulu-scrollbar-width));\n      }\n    }\n  }\n  #{ $prefix }__slide--empty {\n    scroll-snap-align: none;\n    // flex-basis: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    @include layout.match-container-margin(\"flex-basis\", get(\"container\"));\n    & {\n      margin-right: 0;\n    }\n    // @include ulu.breakpoint-max(\"small\") {\n    //   &:last-child {\n    //     display: none;\n    //   }\n    // }\n  }\n  #{ $prefix }__controls {\n    list-style: none !important;\n    padding: 0;\n  }\n  .OverflowScroller__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n  }\n  @if get(\"button-icon-offset-y\") {\n    .OverflowScroller__control-icon {\n      margin-top: get(\"button-icon-offset-y\");\n    }\n  }\n  .OverflowScroller__control-button--previous {\n    left: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-left: get(\"button-icon-offset-x\");\n        \n      }\n    }\n  }\n  .OverflowScroller__control-button--next {\n    right: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-right: get(\"button-icon-offset-x\");\n      }\n    }\n  }\n  @include breakpoint.max(\"small\") {\n    .OverflowScroller__control-button--previous {\n      left: get(\"button-indent-small\");\n    }\n    .OverflowScroller__control-button--next {\n      right: get(\"button-indent-small\");\n    }\n  }\n",
              "line": {
                "start": 83,
                "end": 200
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(get(\"prefix\"));\n  \n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n  }\n  #{ $prefix }--cards {\n    #{ $prefix }__slide {\n      margin-right: 1.35rem;\n      > .card {\n        width: 100%;\n        max-width: none;\n        height: calc(100% - 2rem);\n        margin: 1rem 0 1rem 0;// For shadows\n      }\n    }\n    #{ $prefix }__slide--empty {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }__track {\n    display: flex;\n    overflow-x: auto;\n    scroll-behavior: smooth;\n    scroll-snap-type: x mandatory;\n    // scroll-padding-left: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    // switch below to a modifier (like #{ $prefix }--in-container, #{ $prefix }--in-container-large-x) Default is container\n    \n    // scroll-padding-right: 1rem;\n    // Hide scrollbars\n    -ms-overflow-style: none; /* for Internet Explorer, Edge */\n    scrollbar-width: none; /* for Firefox */\n    &::-webkit-scrollbar {\n      display: none; /* for Chrome, Safari, and Opera */\n    }\n    @include layout.match-container-margin(\"scroll-padding-left\", get(\"container\"));\n    // padding: 1rem;\n    // Add space to end of list\n    // &::after {\n    //   content: \"\\00a0\";\n    //   display: block;\n    //   width: 1rem;\n    //   height: 100%;\n    //   flex: 0 0 1rem;\n    // }\n  }\n  #{ $prefix }__slide {\n    \n    flex: 0 0 450px;\n    max-width: 90vw;\n    scroll-snap-align: start;\n\n    $containerBreakpoint: layout.get-container(\"container\", $breakpoint: \"small\", $required: false);\n    // Only if this container has this breakpoint\n    @if ($containerBreakpoint) {\n      @include breakpoint.max(\"small\") {\n        $pad: layout.get-container-padding-x(\"container\", \"small\");\n        max-width: none;\n        flex-basis: calc(100vw - ($pad * 2) - var(--ulu-scrollbar-width));\n      }\n    }\n  }\n  #{ $prefix }__slide--empty {\n    scroll-snap-align: none;\n    // flex-basis: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    @include layout.match-container-margin(\"flex-basis\", get(\"container\"));\n    & {\n      margin-right: 0;\n    }\n    // @include ulu.breakpoint-max(\"small\") {\n    //   &:last-child {\n    //     display: none;\n    //   }\n    // }\n  }\n  #{ $prefix }__controls {\n    list-style: none !important;\n    padding: 0;\n  }\n  .OverflowScroller__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n  }\n  @if get(\"button-icon-offset-y\") {\n    .OverflowScroller__control-icon {\n      margin-top: get(\"button-icon-offset-y\");\n    }\n  }\n  .OverflowScroller__control-button--previous {\n    left: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-left: get(\"button-icon-offset-x\");\n        \n      }\n    }\n  }\n  .OverflowScroller__control-button--next {\n    right: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-right: get(\"button-icon-offset-x\");\n      }\n    }\n  }\n  @include breakpoint.max(\"small\") {\n    .OverflowScroller__control-button--previous {\n      left: get(\"button-indent-small\");\n    }\n    .OverflowScroller__control-button--next {\n      right: get(\"button-indent-small\");\n    }\n  }\n",
              "line": {
                "start": 83,
                "end": 200
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"skeleton\");\n\n  #{ $prefix } {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n  }\n  #{ $prefix }--background {\n    background-color: color.get(get(\"background-color\")) !important;\n  }\n  #{ $prefix }--block,\n  #{ $prefix }--text,\n  #{ $prefix }--media {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\")) !important;\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }--media {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    aspect-ratio: get(\"media-ratio\");\n    font-size: get(\"media-font-size\");\n  }\n  #{ $prefix }--text {\n    height: 1em;\n    width: 60%;\n    border-radius: get(\"text-border-radius\");\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n  }\n  #{ $prefix }--inline + #{ $prefix }--inline {\n    margin-left: get(\"inline-margin\");\n  }\n  #{ $prefix }--background-alt {\n    background-color: color.get(get(\"background-color-alt\")) !important;\n  }\n  @each $name, $value in get(\"widths\") {\n    #{ $prefix }--width-#{ $name } {\n      width: $value;\n    }\n  }\n",
              "line": {
                "start": 82,
                "end": 126
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"skeleton\");\n\n  #{ $prefix } {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n  }\n  #{ $prefix }--background {\n    background-color: color.get(get(\"background-color\")) !important;\n  }\n  #{ $prefix }--block,\n  #{ $prefix }--text,\n  #{ $prefix }--media {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\")) !important;\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }--media {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    aspect-ratio: get(\"media-ratio\");\n    font-size: get(\"media-font-size\");\n  }\n  #{ $prefix }--text {\n    height: 1em;\n    width: 60%;\n    border-radius: get(\"text-border-radius\");\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n  }\n  #{ $prefix }--inline + #{ $prefix }--inline {\n    margin-left: get(\"inline-margin\");\n  }\n  #{ $prefix }--background-alt {\n    background-color: color.get(get(\"background-color-alt\")) !important;\n  }\n  @each $name, $value in get(\"widths\") {\n    #{ $prefix }--width-#{ $name } {\n      width: $value;\n    }\n  }\n",
              "line": {
                "start": 82,
                "end": 126
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"skeleton\");\n\n  #{ $prefix } {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n  }\n  #{ $prefix }--background {\n    background-color: color.get(get(\"background-color\")) !important;\n  }\n  #{ $prefix }--block,\n  #{ $prefix }--text,\n  #{ $prefix }--media {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\")) !important;\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }--media {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    aspect-ratio: get(\"media-ratio\");\n    font-size: get(\"media-font-size\");\n  }\n  #{ $prefix }--text {\n    height: 1em;\n    width: 60%;\n    border-radius: get(\"text-border-radius\");\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n  }\n  #{ $prefix }--inline + #{ $prefix }--inline {\n    margin-left: get(\"inline-margin\");\n  }\n  #{ $prefix }--background-alt {\n    background-color: color.get(get(\"background-color-alt\")) !important;\n  }\n  @each $name, $value in get(\"widths\") {\n    #{ $prefix }--width-#{ $name } {\n      width: $value;\n    }\n  }\n",
              "line": {
                "start": 82,
                "end": 126
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"skeleton\");\n\n  #{ $prefix } {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n  }\n  #{ $prefix }--background {\n    background-color: color.get(get(\"background-color\")) !important;\n  }\n  #{ $prefix }--block,\n  #{ $prefix }--text,\n  #{ $prefix }--media {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\")) !important;\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }--media {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    aspect-ratio: get(\"media-ratio\");\n    font-size: get(\"media-font-size\");\n  }\n  #{ $prefix }--text {\n    height: 1em;\n    width: 60%;\n    border-radius: get(\"text-border-radius\");\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n  }\n  #{ $prefix }--inline + #{ $prefix }--inline {\n    margin-left: get(\"inline-margin\");\n  }\n  #{ $prefix }--background-alt {\n    background-color: color.get(get(\"background-color-alt\")) !important;\n  }\n  @each $name, $value in get(\"widths\") {\n    #{ $prefix }--width-#{ $name } {\n      width: $value;\n    }\n  }\n",
              "line": {
                "start": 82,
                "end": 126
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"skeleton\");\n\n  #{ $prefix } {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n  }\n  #{ $prefix }--background {\n    background-color: color.get(get(\"background-color\")) !important;\n  }\n  #{ $prefix }--block,\n  #{ $prefix }--text,\n  #{ $prefix }--media {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\")) !important;\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }--media {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    aspect-ratio: get(\"media-ratio\");\n    font-size: get(\"media-font-size\");\n  }\n  #{ $prefix }--text {\n    height: 1em;\n    width: 60%;\n    border-radius: get(\"text-border-radius\");\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n  }\n  #{ $prefix }--inline + #{ $prefix }--inline {\n    margin-left: get(\"inline-margin\");\n  }\n  #{ $prefix }--background-alt {\n    background-color: color.get(get(\"background-color-alt\")) !important;\n  }\n  @each $name, $value in get(\"widths\") {\n    #{ $prefix }--width-#{ $name } {\n      width: $value;\n    }\n  }\n",
              "line": {
                "start": 82,
                "end": 126
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"skeleton\");\n\n  #{ $prefix } {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n  }\n  #{ $prefix }--background {\n    background-color: color.get(get(\"background-color\")) !important;\n  }\n  #{ $prefix }--block,\n  #{ $prefix }--text,\n  #{ $prefix }--media {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\")) !important;\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }--media {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    aspect-ratio: get(\"media-ratio\");\n    font-size: get(\"media-font-size\");\n  }\n  #{ $prefix }--text {\n    height: 1em;\n    width: 60%;\n    border-radius: get(\"text-border-radius\");\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n  }\n  #{ $prefix }--inline + #{ $prefix }--inline {\n    margin-left: get(\"inline-margin\");\n  }\n  #{ $prefix }--background-alt {\n    background-color: color.get(get(\"background-color-alt\")) !important;\n  }\n  @each $name, $value in get(\"widths\") {\n    #{ $prefix }--width-#{ $name } {\n      width: $value;\n    }\n  }\n",
              "line": {
                "start": 82,
                "end": 126
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"skeleton\");\n\n  #{ $prefix } {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n  }\n  #{ $prefix }--background {\n    background-color: color.get(get(\"background-color\")) !important;\n  }\n  #{ $prefix }--block,\n  #{ $prefix }--text,\n  #{ $prefix }--media {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\")) !important;\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }--media {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    aspect-ratio: get(\"media-ratio\");\n    font-size: get(\"media-font-size\");\n  }\n  #{ $prefix }--text {\n    height: 1em;\n    width: 60%;\n    border-radius: get(\"text-border-radius\");\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n  }\n  #{ $prefix }--inline + #{ $prefix }--inline {\n    margin-left: get(\"inline-margin\");\n  }\n  #{ $prefix }--background-alt {\n    background-color: color.get(get(\"background-color-alt\")) !important;\n  }\n  @each $name, $value in get(\"widths\") {\n    #{ $prefix }--width-#{ $name } {\n      width: $value;\n    }\n  }\n",
              "line": {
                "start": 82,
                "end": 126
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"skeleton\");\n\n  #{ $prefix } {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n  }\n  #{ $prefix }--background {\n    background-color: color.get(get(\"background-color\")) !important;\n  }\n  #{ $prefix }--block,\n  #{ $prefix }--text,\n  #{ $prefix }--media {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\")) !important;\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }--media {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    aspect-ratio: get(\"media-ratio\");\n    font-size: get(\"media-font-size\");\n  }\n  #{ $prefix }--text {\n    height: 1em;\n    width: 60%;\n    border-radius: get(\"text-border-radius\");\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n  }\n  #{ $prefix }--inline + #{ $prefix }--inline {\n    margin-left: get(\"inline-margin\");\n  }\n  #{ $prefix }--background-alt {\n    background-color: color.get(get(\"background-color-alt\")) !important;\n  }\n  @each $name, $value in get(\"widths\") {\n    #{ $prefix }--width-#{ $name } {\n      width: $value;\n    }\n  }\n",
              "line": {
                "start": 82,
                "end": 126
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"skeleton\");\n\n  #{ $prefix } {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n  }\n  #{ $prefix }--background {\n    background-color: color.get(get(\"background-color\")) !important;\n  }\n  #{ $prefix }--block,\n  #{ $prefix }--text,\n  #{ $prefix }--media {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\")) !important;\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }--media {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    aspect-ratio: get(\"media-ratio\");\n    font-size: get(\"media-font-size\");\n  }\n  #{ $prefix }--text {\n    height: 1em;\n    width: 60%;\n    border-radius: get(\"text-border-radius\");\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n  }\n  #{ $prefix }--inline + #{ $prefix }--inline {\n    margin-left: get(\"inline-margin\");\n  }\n  #{ $prefix }--background-alt {\n    background-color: color.get(get(\"background-color-alt\")) !important;\n  }\n  @each $name, $value in get(\"widths\") {\n    #{ $prefix }--width-#{ $name } {\n      width: $value;\n    }\n  }\n",
              "line": {
                "start": 82,
                "end": 126
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"skeleton\");\n\n  #{ $prefix } {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n  }\n  #{ $prefix }--background {\n    background-color: color.get(get(\"background-color\")) !important;\n  }\n  #{ $prefix }--block,\n  #{ $prefix }--text,\n  #{ $prefix }--media {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\")) !important;\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }--media {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    aspect-ratio: get(\"media-ratio\");\n    font-size: get(\"media-font-size\");\n  }\n  #{ $prefix }--text {\n    height: 1em;\n    width: 60%;\n    border-radius: get(\"text-border-radius\");\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n  }\n  #{ $prefix }--inline + #{ $prefix }--inline {\n    margin-left: get(\"inline-margin\");\n  }\n  #{ $prefix }--background-alt {\n    background-color: color.get(get(\"background-color-alt\")) !important;\n  }\n  @each $name, $value in get(\"widths\") {\n    #{ $prefix }--width-#{ $name } {\n      width: $value;\n    }\n  }\n",
              "line": {
                "start": 82,
                "end": 126
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"skeleton\");\n\n  #{ $prefix } {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n  }\n  #{ $prefix }--background {\n    background-color: color.get(get(\"background-color\")) !important;\n  }\n  #{ $prefix }--block,\n  #{ $prefix }--text,\n  #{ $prefix }--media {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\")) !important;\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }--media {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    aspect-ratio: get(\"media-ratio\");\n    font-size: get(\"media-font-size\");\n  }\n  #{ $prefix }--text {\n    height: 1em;\n    width: 60%;\n    border-radius: get(\"text-border-radius\");\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n  }\n  #{ $prefix }--inline + #{ $prefix }--inline {\n    margin-left: get(\"inline-margin\");\n  }\n  #{ $prefix }--background-alt {\n    background-color: color.get(get(\"background-color-alt\")) !important;\n  }\n  @each $name, $value in get(\"widths\") {\n    #{ $prefix }--width-#{ $name } {\n      width: $value;\n    }\n  }\n",
              "line": {
                "start": 82,
                "end": 126
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"skeleton\");\n\n  #{ $prefix } {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n  }\n  #{ $prefix }--background {\n    background-color: color.get(get(\"background-color\")) !important;\n  }\n  #{ $prefix }--block,\n  #{ $prefix }--text,\n  #{ $prefix }--media {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\")) !important;\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }--media {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    aspect-ratio: get(\"media-ratio\");\n    font-size: get(\"media-font-size\");\n  }\n  #{ $prefix }--text {\n    height: 1em;\n    width: 60%;\n    border-radius: get(\"text-border-radius\");\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n  }\n  #{ $prefix }--inline + #{ $prefix }--inline {\n    margin-left: get(\"inline-margin\");\n  }\n  #{ $prefix }--background-alt {\n    background-color: color.get(get(\"background-color-alt\")) !important;\n  }\n  @each $name, $value in get(\"widths\") {\n    #{ $prefix }--width-#{ $name } {\n      width: $value;\n    }\n  }\n",
              "line": {
                "start": 82,
                "end": 126
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"skeleton\");\n\n  #{ $prefix } {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n  }\n  #{ $prefix }--background {\n    background-color: color.get(get(\"background-color\")) !important;\n  }\n  #{ $prefix }--block,\n  #{ $prefix }--text,\n  #{ $prefix }--media {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\")) !important;\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }--media {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    aspect-ratio: get(\"media-ratio\");\n    font-size: get(\"media-font-size\");\n  }\n  #{ $prefix }--text {\n    height: 1em;\n    width: 60%;\n    border-radius: get(\"text-border-radius\");\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n  }\n  #{ $prefix }--inline + #{ $prefix }--inline {\n    margin-left: get(\"inline-margin\");\n  }\n  #{ $prefix }--background-alt {\n    background-color: color.get(get(\"background-color-alt\")) !important;\n  }\n  @each $name, $value in get(\"widths\") {\n    #{ $prefix }--width-#{ $name } {\n      width: $value;\n    }\n  }\n",
              "line": {
                "start": 82,
                "end": 126
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"skeleton\");\n\n  #{ $prefix } {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n  }\n  #{ $prefix }--background {\n    background-color: color.get(get(\"background-color\")) !important;\n  }\n  #{ $prefix }--block,\n  #{ $prefix }--text,\n  #{ $prefix }--media {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\")) !important;\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }--media {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    aspect-ratio: get(\"media-ratio\");\n    font-size: get(\"media-font-size\");\n  }\n  #{ $prefix }--text {\n    height: 1em;\n    width: 60%;\n    border-radius: get(\"text-border-radius\");\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n  }\n  #{ $prefix }--inline + #{ $prefix }--inline {\n    margin-left: get(\"inline-margin\");\n  }\n  #{ $prefix }--background-alt {\n    background-color: color.get(get(\"background-color-alt\")) !important;\n  }\n  @each $name, $value in get(\"widths\") {\n    #{ $prefix }--width-#{ $name } {\n      width: $value;\n    }\n  }\n",
              "line": {
                "start": 82,
                "end": 126
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"skeleton\");\n\n  #{ $prefix } {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n  }\n  #{ $prefix }--background {\n    background-color: color.get(get(\"background-color\")) !important;\n  }\n  #{ $prefix }--block,\n  #{ $prefix }--text,\n  #{ $prefix }--media {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\")) !important;\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }--media {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    aspect-ratio: get(\"media-ratio\");\n    font-size: get(\"media-font-size\");\n  }\n  #{ $prefix }--text {\n    height: 1em;\n    width: 60%;\n    border-radius: get(\"text-border-radius\");\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n  }\n  #{ $prefix }--inline + #{ $prefix }--inline {\n    margin-left: get(\"inline-margin\");\n  }\n  #{ $prefix }--background-alt {\n    background-color: color.get(get(\"background-color-alt\")) !important;\n  }\n  @each $name, $value in get(\"widths\") {\n    #{ $prefix }--width-#{ $name } {\n      width: $value;\n    }\n  }\n",
              "line": {
                "start": 82,
                "end": 126
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"skeleton\");\n\n  #{ $prefix } {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n  }\n  #{ $prefix }--background {\n    background-color: color.get(get(\"background-color\")) !important;\n  }\n  #{ $prefix }--block,\n  #{ $prefix }--text,\n  #{ $prefix }--media {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\")) !important;\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }--media {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    aspect-ratio: get(\"media-ratio\");\n    font-size: get(\"media-font-size\");\n  }\n  #{ $prefix }--text {\n    height: 1em;\n    width: 60%;\n    border-radius: get(\"text-border-radius\");\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n  }\n  #{ $prefix }--inline + #{ $prefix }--inline {\n    margin-left: get(\"inline-margin\");\n  }\n  #{ $prefix }--background-alt {\n    background-color: color.get(get(\"background-color-alt\")) !important;\n  }\n  @each $name, $value in get(\"widths\") {\n    #{ $prefix }--width-#{ $name } {\n      width: $value;\n    }\n  }\n",
              "line": {
                "start": 82,
                "end": 126
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"skeleton\");\n\n  #{ $prefix } {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n  }\n  #{ $prefix }--background {\n    background-color: color.get(get(\"background-color\")) !important;\n  }\n  #{ $prefix }--block,\n  #{ $prefix }--text,\n  #{ $prefix }--media {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\")) !important;\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }--media {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    aspect-ratio: get(\"media-ratio\");\n    font-size: get(\"media-font-size\");\n  }\n  #{ $prefix }--text {\n    height: 1em;\n    width: 60%;\n    border-radius: get(\"text-border-radius\");\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n  }\n  #{ $prefix }--inline + #{ $prefix }--inline {\n    margin-left: get(\"inline-margin\");\n  }\n  #{ $prefix }--background-alt {\n    background-color: color.get(get(\"background-color-alt\")) !important;\n  }\n  @each $name, $value in get(\"widths\") {\n    #{ $prefix }--width-#{ $name } {\n      width: $value;\n    }\n  }\n",
              "line": {
                "start": 82,
                "end": 126
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"skeleton\");\n\n  #{ $prefix } {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n  }\n  #{ $prefix }--background {\n    background-color: color.get(get(\"background-color\")) !important;\n  }\n  #{ $prefix }--block,\n  #{ $prefix }--text,\n  #{ $prefix }--media {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\")) !important;\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }--media {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    aspect-ratio: get(\"media-ratio\");\n    font-size: get(\"media-font-size\");\n  }\n  #{ $prefix }--text {\n    height: 1em;\n    width: 60%;\n    border-radius: get(\"text-border-radius\");\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n  }\n  #{ $prefix }--inline + #{ $prefix }--inline {\n    margin-left: get(\"inline-margin\");\n  }\n  #{ $prefix }--background-alt {\n    background-color: color.get(get(\"background-color-alt\")) !important;\n  }\n  @each $name, $value in get(\"widths\") {\n    #{ $prefix }--width-#{ $name } {\n      width: $value;\n    }\n  }\n",
              "line": {
                "start": 82,
                "end": 126
              }
            }
          },
          {
            "description": "Output component stylesheet\n- Note: This needs to be paired with the display helper class \"hidden-visually-focusable\"\n- Note: Remember to add an id to the content you want to skip to. Often this will go to the content after the nav menu.\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"skip-link\");\n\n  #{ $prefix } {\n    display: block;\n    position: fixed;\n    z-index: get(\"z-index\");\n    top: 0;\n    left: 50%;\n    transform: translateX(-50%);\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    font-weight: bold;\n    box-shadow: get(\"box-shadow\");\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n",
              "line": {
                "start": 76,
                "end": 93
              }
            }
          },
          {
            "description": "Output component stylesheet\n- Note: This needs to be paired with the display helper class \"hidden-visually-focusable\"\n- Note: Remember to add an id to the content you want to skip to. Often this will go to the content after the nav menu.\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"skip-link\");\n\n  #{ $prefix } {\n    display: block;\n    position: fixed;\n    z-index: get(\"z-index\");\n    top: 0;\n    left: 50%;\n    transform: translateX(-50%);\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    font-weight: bold;\n    box-shadow: get(\"box-shadow\");\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n",
              "line": {
                "start": 76,
                "end": 93
              }
            }
          },
          {
            "description": "Output component stylesheet\n- Note: This needs to be paired with the display helper class \"hidden-visually-focusable\"\n- Note: Remember to add an id to the content you want to skip to. Often this will go to the content after the nav menu.\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"skip-link\");\n\n  #{ $prefix } {\n    display: block;\n    position: fixed;\n    z-index: get(\"z-index\");\n    top: 0;\n    left: 50%;\n    transform: translateX(-50%);\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    font-weight: bold;\n    box-shadow: get(\"box-shadow\");\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n",
              "line": {
                "start": 76,
                "end": 93
              }
            }
          },
          {
            "description": "Output component stylesheet\n- Note: This needs to be paired with the display helper class \"hidden-visually-focusable\"\n- Note: Remember to add an id to the content you want to skip to. Often this will go to the content after the nav menu.\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"skip-link\");\n\n  #{ $prefix } {\n    display: block;\n    position: fixed;\n    z-index: get(\"z-index\");\n    top: 0;\n    left: 50%;\n    transform: translateX(-50%);\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    font-weight: bold;\n    box-shadow: get(\"box-shadow\");\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n",
              "line": {
                "start": 76,
                "end": 93
              }
            }
          },
          {
            "description": "Output component stylesheet\n- Note: This needs to be paired with the display helper class \"hidden-visually-focusable\"\n- Note: Remember to add an id to the content you want to skip to. Often this will go to the content after the nav menu.\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"skip-link\");\n\n  #{ $prefix } {\n    display: block;\n    position: fixed;\n    z-index: get(\"z-index\");\n    top: 0;\n    left: 50%;\n    transform: translateX(-50%);\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    font-weight: bold;\n    box-shadow: get(\"box-shadow\");\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n",
              "line": {
                "start": 76,
                "end": 93
              }
            }
          },
          {
            "description": "Output component stylesheet\n- Note: This needs to be paired with the display helper class \"hidden-visually-focusable\"\n- Note: Remember to add an id to the content you want to skip to. Often this will go to the content after the nav menu.\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"skip-link\");\n\n  #{ $prefix } {\n    display: block;\n    position: fixed;\n    z-index: get(\"z-index\");\n    top: 0;\n    left: 50%;\n    transform: translateX(-50%);\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    font-weight: bold;\n    box-shadow: get(\"box-shadow\");\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n",
              "line": {
                "start": 76,
                "end": 93
              }
            }
          },
          {
            "description": "Output component stylesheet\n- Note: This needs to be paired with the display helper class \"hidden-visually-focusable\"\n- Note: Remember to add an id to the content you want to skip to. Often this will go to the content after the nav menu.\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"skip-link\");\n\n  #{ $prefix } {\n    display: block;\n    position: fixed;\n    z-index: get(\"z-index\");\n    top: 0;\n    left: 50%;\n    transform: translateX(-50%);\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    font-weight: bold;\n    box-shadow: get(\"box-shadow\");\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n",
              "line": {
                "start": 76,
                "end": 93
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
              "line": {
                "start": 78,
                "end": 182
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"spoke-spinner\");\n\n\n  $size: get(\"size\");\n  $sizeHalf: math.div($size, 2);\n\n  $spoke-width: get(\"spoke-width\");\n  $spoke-widthHalf: math.div($spoke-width, 2);\n\n  #{ $prefix } {\n    position: relative;\n    vertical-align: middle; // When used as inline-block\n  }\n  #{ $prefix }__spinner {\n    display: inline-block;\n    position: relative;\n    width: $size;\n    height: $size;\n  }\n  #{ $prefix }__spinner div {\n    transform-origin: $sizeHalf $sizeHalf;\n    animation: UluFadeOut get(\"duration\") linear infinite;\n  }\n  #{ $prefix }__spinner div::after {\n    content: \" \";\n    display: block;\n    position: absolute;\n    top: 0;\n    left: $sizeHalf - $spoke-widthHalf;\n    width: $spoke-width;\n    height: get(\"spoke-height\");\n    border-radius: get(\"border-radius\");\n    background: color.get(get(\"color\"));\n  }\n  #{ $prefix }__spinner div:nth-child(1) {\n    transform: rotate(0deg);\n    animation-delay: -1.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(2) {\n    transform: rotate(30deg);\n    animation-delay: -1s;\n  }\n  #{ $prefix }__spinner div:nth-child(3) {\n    transform: rotate(60deg);\n    animation-delay: -0.9s;\n  }\n  #{ $prefix }__spinner div:nth-child(4) {\n    transform: rotate(90deg);\n    animation-delay: -0.8s;\n  }\n  #{ $prefix }__spinner div:nth-child(5) {\n    transform: rotate(120deg);\n    animation-delay: -0.7s;\n  }\n  #{ $prefix }__spinner div:nth-child(6) {\n    transform: rotate(150deg);\n    animation-delay: -0.6s;\n  }\n  #{ $prefix }__spinner div:nth-child(7) {\n    transform: rotate(180deg);\n    animation-delay: -0.5s;\n  }\n  #{ $prefix }__spinner div:nth-child(8) {\n    transform: rotate(210deg);\n    animation-delay: -0.4s;\n  }\n  #{ $prefix }__spinner div:nth-child(9) {\n    transform: rotate(240deg);\n    animation-delay: -0.3s;\n  }\n  #{ $prefix }__spinner div:nth-child(10) {\n    transform: rotate(270deg);\n    animation-delay: -0.2s;\n  }\n  #{ $prefix }__spinner div:nth-child(11) {\n    transform: rotate(300deg);\n    animation-delay: -0.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(12) {\n    transform: rotate(330deg);\n    animation-delay: 0s;\n  }\n\n  // Map of config props needed for a new style, omitting props like color that aren't required\n  $required: (\n    \"size\" : get(\"size\"),\n    \"spoke-width\" : get(\"spoke-width\"),\n    \"spoke-height\" : get(\"spoke-height\"),\n  );\n\n  @each $name, $style in $styles {\n    $merged: map.merge($required, $style);\n\n    $size: map.get($merged, \"size\");\n    $sizeHalf: math.div($size, 2);\n\n    $spoke-width: map.get($merged, \"spoke-width\");\n    $spoke-widthHalf: math.div($spoke-width, 2);\n\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__spinner {\n        width: $size;\n        height: $size;\n      }\n      #{ $prefix }__spinner div {\n        transform-origin: $sizeHalf $sizeHalf;\n        animation-duration: map.get($merged, \"duration\");\n      }\n      #{ $prefix }__spinner div::after {\n        left: $sizeHalf - $spoke-widthHalf;\n        width: $spoke-width;\n        height: map.get($merged, \"spoke-height\");\n        border-radius: map.get($merged, \"border-radius\");\n        background: color.get(map.get($merged, \"color\"));\n      }\n    }\n  }\n",
              "line": {
                "start": 75,
                "end": 193
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"spoke-spinner\");\n\n\n  $size: get(\"size\");\n  $sizeHalf: math.div($size, 2);\n\n  $spoke-width: get(\"spoke-width\");\n  $spoke-widthHalf: math.div($spoke-width, 2);\n\n  #{ $prefix } {\n    position: relative;\n    vertical-align: middle; // When used as inline-block\n  }\n  #{ $prefix }__spinner {\n    display: inline-block;\n    position: relative;\n    width: $size;\n    height: $size;\n  }\n  #{ $prefix }__spinner div {\n    transform-origin: $sizeHalf $sizeHalf;\n    animation: UluFadeOut get(\"duration\") linear infinite;\n  }\n  #{ $prefix }__spinner div::after {\n    content: \" \";\n    display: block;\n    position: absolute;\n    top: 0;\n    left: $sizeHalf - $spoke-widthHalf;\n    width: $spoke-width;\n    height: get(\"spoke-height\");\n    border-radius: get(\"border-radius\");\n    background: color.get(get(\"color\"));\n  }\n  #{ $prefix }__spinner div:nth-child(1) {\n    transform: rotate(0deg);\n    animation-delay: -1.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(2) {\n    transform: rotate(30deg);\n    animation-delay: -1s;\n  }\n  #{ $prefix }__spinner div:nth-child(3) {\n    transform: rotate(60deg);\n    animation-delay: -0.9s;\n  }\n  #{ $prefix }__spinner div:nth-child(4) {\n    transform: rotate(90deg);\n    animation-delay: -0.8s;\n  }\n  #{ $prefix }__spinner div:nth-child(5) {\n    transform: rotate(120deg);\n    animation-delay: -0.7s;\n  }\n  #{ $prefix }__spinner div:nth-child(6) {\n    transform: rotate(150deg);\n    animation-delay: -0.6s;\n  }\n  #{ $prefix }__spinner div:nth-child(7) {\n    transform: rotate(180deg);\n    animation-delay: -0.5s;\n  }\n  #{ $prefix }__spinner div:nth-child(8) {\n    transform: rotate(210deg);\n    animation-delay: -0.4s;\n  }\n  #{ $prefix }__spinner div:nth-child(9) {\n    transform: rotate(240deg);\n    animation-delay: -0.3s;\n  }\n  #{ $prefix }__spinner div:nth-child(10) {\n    transform: rotate(270deg);\n    animation-delay: -0.2s;\n  }\n  #{ $prefix }__spinner div:nth-child(11) {\n    transform: rotate(300deg);\n    animation-delay: -0.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(12) {\n    transform: rotate(330deg);\n    animation-delay: 0s;\n  }\n\n  // Map of config props needed for a new style, omitting props like color that aren't required\n  $required: (\n    \"size\" : get(\"size\"),\n    \"spoke-width\" : get(\"spoke-width\"),\n    \"spoke-height\" : get(\"spoke-height\"),\n  );\n\n  @each $name, $style in $styles {\n    $merged: map.merge($required, $style);\n\n    $size: map.get($merged, \"size\");\n    $sizeHalf: math.div($size, 2);\n\n    $spoke-width: map.get($merged, \"spoke-width\");\n    $spoke-widthHalf: math.div($spoke-width, 2);\n\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__spinner {\n        width: $size;\n        height: $size;\n      }\n      #{ $prefix }__spinner div {\n        transform-origin: $sizeHalf $sizeHalf;\n        animation-duration: map.get($merged, \"duration\");\n      }\n      #{ $prefix }__spinner div::after {\n        left: $sizeHalf - $spoke-widthHalf;\n        width: $spoke-width;\n        height: map.get($merged, \"spoke-height\");\n        border-radius: map.get($merged, \"border-radius\");\n        background: color.get(map.get($merged, \"color\"));\n      }\n    }\n  }\n",
              "line": {
                "start": 75,
                "end": 193
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"spoke-spinner\");\n\n\n  $size: get(\"size\");\n  $sizeHalf: math.div($size, 2);\n\n  $spoke-width: get(\"spoke-width\");\n  $spoke-widthHalf: math.div($spoke-width, 2);\n\n  #{ $prefix } {\n    position: relative;\n    vertical-align: middle; // When used as inline-block\n  }\n  #{ $prefix }__spinner {\n    display: inline-block;\n    position: relative;\n    width: $size;\n    height: $size;\n  }\n  #{ $prefix }__spinner div {\n    transform-origin: $sizeHalf $sizeHalf;\n    animation: UluFadeOut get(\"duration\") linear infinite;\n  }\n  #{ $prefix }__spinner div::after {\n    content: \" \";\n    display: block;\n    position: absolute;\n    top: 0;\n    left: $sizeHalf - $spoke-widthHalf;\n    width: $spoke-width;\n    height: get(\"spoke-height\");\n    border-radius: get(\"border-radius\");\n    background: color.get(get(\"color\"));\n  }\n  #{ $prefix }__spinner div:nth-child(1) {\n    transform: rotate(0deg);\n    animation-delay: -1.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(2) {\n    transform: rotate(30deg);\n    animation-delay: -1s;\n  }\n  #{ $prefix }__spinner div:nth-child(3) {\n    transform: rotate(60deg);\n    animation-delay: -0.9s;\n  }\n  #{ $prefix }__spinner div:nth-child(4) {\n    transform: rotate(90deg);\n    animation-delay: -0.8s;\n  }\n  #{ $prefix }__spinner div:nth-child(5) {\n    transform: rotate(120deg);\n    animation-delay: -0.7s;\n  }\n  #{ $prefix }__spinner div:nth-child(6) {\n    transform: rotate(150deg);\n    animation-delay: -0.6s;\n  }\n  #{ $prefix }__spinner div:nth-child(7) {\n    transform: rotate(180deg);\n    animation-delay: -0.5s;\n  }\n  #{ $prefix }__spinner div:nth-child(8) {\n    transform: rotate(210deg);\n    animation-delay: -0.4s;\n  }\n  #{ $prefix }__spinner div:nth-child(9) {\n    transform: rotate(240deg);\n    animation-delay: -0.3s;\n  }\n  #{ $prefix }__spinner div:nth-child(10) {\n    transform: rotate(270deg);\n    animation-delay: -0.2s;\n  }\n  #{ $prefix }__spinner div:nth-child(11) {\n    transform: rotate(300deg);\n    animation-delay: -0.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(12) {\n    transform: rotate(330deg);\n    animation-delay: 0s;\n  }\n\n  // Map of config props needed for a new style, omitting props like color that aren't required\n  $required: (\n    \"size\" : get(\"size\"),\n    \"spoke-width\" : get(\"spoke-width\"),\n    \"spoke-height\" : get(\"spoke-height\"),\n  );\n\n  @each $name, $style in $styles {\n    $merged: map.merge($required, $style);\n\n    $size: map.get($merged, \"size\");\n    $sizeHalf: math.div($size, 2);\n\n    $spoke-width: map.get($merged, \"spoke-width\");\n    $spoke-widthHalf: math.div($spoke-width, 2);\n\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__spinner {\n        width: $size;\n        height: $size;\n      }\n      #{ $prefix }__spinner div {\n        transform-origin: $sizeHalf $sizeHalf;\n        animation-duration: map.get($merged, \"duration\");\n      }\n      #{ $prefix }__spinner div::after {\n        left: $sizeHalf - $spoke-widthHalf;\n        width: $spoke-width;\n        height: map.get($merged, \"spoke-height\");\n        border-radius: map.get($merged, \"border-radius\");\n        background: color.get(map.get($merged, \"color\"));\n      }\n    }\n  }\n",
              "line": {
                "start": 75,
                "end": 193
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"spoke-spinner\");\n\n\n  $size: get(\"size\");\n  $sizeHalf: math.div($size, 2);\n\n  $spoke-width: get(\"spoke-width\");\n  $spoke-widthHalf: math.div($spoke-width, 2);\n\n  #{ $prefix } {\n    position: relative;\n    vertical-align: middle; // When used as inline-block\n  }\n  #{ $prefix }__spinner {\n    display: inline-block;\n    position: relative;\n    width: $size;\n    height: $size;\n  }\n  #{ $prefix }__spinner div {\n    transform-origin: $sizeHalf $sizeHalf;\n    animation: UluFadeOut get(\"duration\") linear infinite;\n  }\n  #{ $prefix }__spinner div::after {\n    content: \" \";\n    display: block;\n    position: absolute;\n    top: 0;\n    left: $sizeHalf - $spoke-widthHalf;\n    width: $spoke-width;\n    height: get(\"spoke-height\");\n    border-radius: get(\"border-radius\");\n    background: color.get(get(\"color\"));\n  }\n  #{ $prefix }__spinner div:nth-child(1) {\n    transform: rotate(0deg);\n    animation-delay: -1.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(2) {\n    transform: rotate(30deg);\n    animation-delay: -1s;\n  }\n  #{ $prefix }__spinner div:nth-child(3) {\n    transform: rotate(60deg);\n    animation-delay: -0.9s;\n  }\n  #{ $prefix }__spinner div:nth-child(4) {\n    transform: rotate(90deg);\n    animation-delay: -0.8s;\n  }\n  #{ $prefix }__spinner div:nth-child(5) {\n    transform: rotate(120deg);\n    animation-delay: -0.7s;\n  }\n  #{ $prefix }__spinner div:nth-child(6) {\n    transform: rotate(150deg);\n    animation-delay: -0.6s;\n  }\n  #{ $prefix }__spinner div:nth-child(7) {\n    transform: rotate(180deg);\n    animation-delay: -0.5s;\n  }\n  #{ $prefix }__spinner div:nth-child(8) {\n    transform: rotate(210deg);\n    animation-delay: -0.4s;\n  }\n  #{ $prefix }__spinner div:nth-child(9) {\n    transform: rotate(240deg);\n    animation-delay: -0.3s;\n  }\n  #{ $prefix }__spinner div:nth-child(10) {\n    transform: rotate(270deg);\n    animation-delay: -0.2s;\n  }\n  #{ $prefix }__spinner div:nth-child(11) {\n    transform: rotate(300deg);\n    animation-delay: -0.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(12) {\n    transform: rotate(330deg);\n    animation-delay: 0s;\n  }\n\n  // Map of config props needed for a new style, omitting props like color that aren't required\n  $required: (\n    \"size\" : get(\"size\"),\n    \"spoke-width\" : get(\"spoke-width\"),\n    \"spoke-height\" : get(\"spoke-height\"),\n  );\n\n  @each $name, $style in $styles {\n    $merged: map.merge($required, $style);\n\n    $size: map.get($merged, \"size\");\n    $sizeHalf: math.div($size, 2);\n\n    $spoke-width: map.get($merged, \"spoke-width\");\n    $spoke-widthHalf: math.div($spoke-width, 2);\n\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__spinner {\n        width: $size;\n        height: $size;\n      }\n      #{ $prefix }__spinner div {\n        transform-origin: $sizeHalf $sizeHalf;\n        animation-duration: map.get($merged, \"duration\");\n      }\n      #{ $prefix }__spinner div::after {\n        left: $sizeHalf - $spoke-widthHalf;\n        width: $spoke-width;\n        height: map.get($merged, \"spoke-height\");\n        border-radius: map.get($merged, \"border-radius\");\n        background: color.get(map.get($merged, \"color\"));\n      }\n    }\n  }\n",
              "line": {
                "start": 75,
                "end": 193
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"spoke-spinner\");\n\n\n  $size: get(\"size\");\n  $sizeHalf: math.div($size, 2);\n\n  $spoke-width: get(\"spoke-width\");\n  $spoke-widthHalf: math.div($spoke-width, 2);\n\n  #{ $prefix } {\n    position: relative;\n    vertical-align: middle; // When used as inline-block\n  }\n  #{ $prefix }__spinner {\n    display: inline-block;\n    position: relative;\n    width: $size;\n    height: $size;\n  }\n  #{ $prefix }__spinner div {\n    transform-origin: $sizeHalf $sizeHalf;\n    animation: UluFadeOut get(\"duration\") linear infinite;\n  }\n  #{ $prefix }__spinner div::after {\n    content: \" \";\n    display: block;\n    position: absolute;\n    top: 0;\n    left: $sizeHalf - $spoke-widthHalf;\n    width: $spoke-width;\n    height: get(\"spoke-height\");\n    border-radius: get(\"border-radius\");\n    background: color.get(get(\"color\"));\n  }\n  #{ $prefix }__spinner div:nth-child(1) {\n    transform: rotate(0deg);\n    animation-delay: -1.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(2) {\n    transform: rotate(30deg);\n    animation-delay: -1s;\n  }\n  #{ $prefix }__spinner div:nth-child(3) {\n    transform: rotate(60deg);\n    animation-delay: -0.9s;\n  }\n  #{ $prefix }__spinner div:nth-child(4) {\n    transform: rotate(90deg);\n    animation-delay: -0.8s;\n  }\n  #{ $prefix }__spinner div:nth-child(5) {\n    transform: rotate(120deg);\n    animation-delay: -0.7s;\n  }\n  #{ $prefix }__spinner div:nth-child(6) {\n    transform: rotate(150deg);\n    animation-delay: -0.6s;\n  }\n  #{ $prefix }__spinner div:nth-child(7) {\n    transform: rotate(180deg);\n    animation-delay: -0.5s;\n  }\n  #{ $prefix }__spinner div:nth-child(8) {\n    transform: rotate(210deg);\n    animation-delay: -0.4s;\n  }\n  #{ $prefix }__spinner div:nth-child(9) {\n    transform: rotate(240deg);\n    animation-delay: -0.3s;\n  }\n  #{ $prefix }__spinner div:nth-child(10) {\n    transform: rotate(270deg);\n    animation-delay: -0.2s;\n  }\n  #{ $prefix }__spinner div:nth-child(11) {\n    transform: rotate(300deg);\n    animation-delay: -0.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(12) {\n    transform: rotate(330deg);\n    animation-delay: 0s;\n  }\n\n  // Map of config props needed for a new style, omitting props like color that aren't required\n  $required: (\n    \"size\" : get(\"size\"),\n    \"spoke-width\" : get(\"spoke-width\"),\n    \"spoke-height\" : get(\"spoke-height\"),\n  );\n\n  @each $name, $style in $styles {\n    $merged: map.merge($required, $style);\n\n    $size: map.get($merged, \"size\");\n    $sizeHalf: math.div($size, 2);\n\n    $spoke-width: map.get($merged, \"spoke-width\");\n    $spoke-widthHalf: math.div($spoke-width, 2);\n\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__spinner {\n        width: $size;\n        height: $size;\n      }\n      #{ $prefix }__spinner div {\n        transform-origin: $sizeHalf $sizeHalf;\n        animation-duration: map.get($merged, \"duration\");\n      }\n      #{ $prefix }__spinner div::after {\n        left: $sizeHalf - $spoke-widthHalf;\n        width: $spoke-width;\n        height: map.get($merged, \"spoke-height\");\n        border-radius: map.get($merged, \"border-radius\");\n        background: color.get(map.get($merged, \"color\"));\n      }\n    }\n  }\n",
              "line": {
                "start": 75,
                "end": 193
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"spoke-spinner\");\n\n\n  $size: get(\"size\");\n  $sizeHalf: math.div($size, 2);\n\n  $spoke-width: get(\"spoke-width\");\n  $spoke-widthHalf: math.div($spoke-width, 2);\n\n  #{ $prefix } {\n    position: relative;\n    vertical-align: middle; // When used as inline-block\n  }\n  #{ $prefix }__spinner {\n    display: inline-block;\n    position: relative;\n    width: $size;\n    height: $size;\n  }\n  #{ $prefix }__spinner div {\n    transform-origin: $sizeHalf $sizeHalf;\n    animation: UluFadeOut get(\"duration\") linear infinite;\n  }\n  #{ $prefix }__spinner div::after {\n    content: \" \";\n    display: block;\n    position: absolute;\n    top: 0;\n    left: $sizeHalf - $spoke-widthHalf;\n    width: $spoke-width;\n    height: get(\"spoke-height\");\n    border-radius: get(\"border-radius\");\n    background: color.get(get(\"color\"));\n  }\n  #{ $prefix }__spinner div:nth-child(1) {\n    transform: rotate(0deg);\n    animation-delay: -1.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(2) {\n    transform: rotate(30deg);\n    animation-delay: -1s;\n  }\n  #{ $prefix }__spinner div:nth-child(3) {\n    transform: rotate(60deg);\n    animation-delay: -0.9s;\n  }\n  #{ $prefix }__spinner div:nth-child(4) {\n    transform: rotate(90deg);\n    animation-delay: -0.8s;\n  }\n  #{ $prefix }__spinner div:nth-child(5) {\n    transform: rotate(120deg);\n    animation-delay: -0.7s;\n  }\n  #{ $prefix }__spinner div:nth-child(6) {\n    transform: rotate(150deg);\n    animation-delay: -0.6s;\n  }\n  #{ $prefix }__spinner div:nth-child(7) {\n    transform: rotate(180deg);\n    animation-delay: -0.5s;\n  }\n  #{ $prefix }__spinner div:nth-child(8) {\n    transform: rotate(210deg);\n    animation-delay: -0.4s;\n  }\n  #{ $prefix }__spinner div:nth-child(9) {\n    transform: rotate(240deg);\n    animation-delay: -0.3s;\n  }\n  #{ $prefix }__spinner div:nth-child(10) {\n    transform: rotate(270deg);\n    animation-delay: -0.2s;\n  }\n  #{ $prefix }__spinner div:nth-child(11) {\n    transform: rotate(300deg);\n    animation-delay: -0.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(12) {\n    transform: rotate(330deg);\n    animation-delay: 0s;\n  }\n\n  // Map of config props needed for a new style, omitting props like color that aren't required\n  $required: (\n    \"size\" : get(\"size\"),\n    \"spoke-width\" : get(\"spoke-width\"),\n    \"spoke-height\" : get(\"spoke-height\"),\n  );\n\n  @each $name, $style in $styles {\n    $merged: map.merge($required, $style);\n\n    $size: map.get($merged, \"size\");\n    $sizeHalf: math.div($size, 2);\n\n    $spoke-width: map.get($merged, \"spoke-width\");\n    $spoke-widthHalf: math.div($spoke-width, 2);\n\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__spinner {\n        width: $size;\n        height: $size;\n      }\n      #{ $prefix }__spinner div {\n        transform-origin: $sizeHalf $sizeHalf;\n        animation-duration: map.get($merged, \"duration\");\n      }\n      #{ $prefix }__spinner div::after {\n        left: $sizeHalf - $spoke-widthHalf;\n        width: $spoke-width;\n        height: map.get($merged, \"spoke-height\");\n        border-radius: map.get($merged, \"border-radius\");\n        background: color.get(map.get($merged, \"color\"));\n      }\n    }\n  }\n",
              "line": {
                "start": 75,
                "end": 193
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"spoke-spinner\");\n\n\n  $size: get(\"size\");\n  $sizeHalf: math.div($size, 2);\n\n  $spoke-width: get(\"spoke-width\");\n  $spoke-widthHalf: math.div($spoke-width, 2);\n\n  #{ $prefix } {\n    position: relative;\n    vertical-align: middle; // When used as inline-block\n  }\n  #{ $prefix }__spinner {\n    display: inline-block;\n    position: relative;\n    width: $size;\n    height: $size;\n  }\n  #{ $prefix }__spinner div {\n    transform-origin: $sizeHalf $sizeHalf;\n    animation: UluFadeOut get(\"duration\") linear infinite;\n  }\n  #{ $prefix }__spinner div::after {\n    content: \" \";\n    display: block;\n    position: absolute;\n    top: 0;\n    left: $sizeHalf - $spoke-widthHalf;\n    width: $spoke-width;\n    height: get(\"spoke-height\");\n    border-radius: get(\"border-radius\");\n    background: color.get(get(\"color\"));\n  }\n  #{ $prefix }__spinner div:nth-child(1) {\n    transform: rotate(0deg);\n    animation-delay: -1.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(2) {\n    transform: rotate(30deg);\n    animation-delay: -1s;\n  }\n  #{ $prefix }__spinner div:nth-child(3) {\n    transform: rotate(60deg);\n    animation-delay: -0.9s;\n  }\n  #{ $prefix }__spinner div:nth-child(4) {\n    transform: rotate(90deg);\n    animation-delay: -0.8s;\n  }\n  #{ $prefix }__spinner div:nth-child(5) {\n    transform: rotate(120deg);\n    animation-delay: -0.7s;\n  }\n  #{ $prefix }__spinner div:nth-child(6) {\n    transform: rotate(150deg);\n    animation-delay: -0.6s;\n  }\n  #{ $prefix }__spinner div:nth-child(7) {\n    transform: rotate(180deg);\n    animation-delay: -0.5s;\n  }\n  #{ $prefix }__spinner div:nth-child(8) {\n    transform: rotate(210deg);\n    animation-delay: -0.4s;\n  }\n  #{ $prefix }__spinner div:nth-child(9) {\n    transform: rotate(240deg);\n    animation-delay: -0.3s;\n  }\n  #{ $prefix }__spinner div:nth-child(10) {\n    transform: rotate(270deg);\n    animation-delay: -0.2s;\n  }\n  #{ $prefix }__spinner div:nth-child(11) {\n    transform: rotate(300deg);\n    animation-delay: -0.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(12) {\n    transform: rotate(330deg);\n    animation-delay: 0s;\n  }\n\n  // Map of config props needed for a new style, omitting props like color that aren't required\n  $required: (\n    \"size\" : get(\"size\"),\n    \"spoke-width\" : get(\"spoke-width\"),\n    \"spoke-height\" : get(\"spoke-height\"),\n  );\n\n  @each $name, $style in $styles {\n    $merged: map.merge($required, $style);\n\n    $size: map.get($merged, \"size\");\n    $sizeHalf: math.div($size, 2);\n\n    $spoke-width: map.get($merged, \"spoke-width\");\n    $spoke-widthHalf: math.div($spoke-width, 2);\n\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__spinner {\n        width: $size;\n        height: $size;\n      }\n      #{ $prefix }__spinner div {\n        transform-origin: $sizeHalf $sizeHalf;\n        animation-duration: map.get($merged, \"duration\");\n      }\n      #{ $prefix }__spinner div::after {\n        left: $sizeHalf - $spoke-widthHalf;\n        width: $spoke-width;\n        height: map.get($merged, \"spoke-height\");\n        border-radius: map.get($merged, \"border-radius\");\n        background: color.get(map.get($merged, \"color\"));\n      }\n    }\n  }\n",
              "line": {
                "start": 75,
                "end": 193
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"spoke-spinner\");\n\n\n  $size: get(\"size\");\n  $sizeHalf: math.div($size, 2);\n\n  $spoke-width: get(\"spoke-width\");\n  $spoke-widthHalf: math.div($spoke-width, 2);\n\n  #{ $prefix } {\n    position: relative;\n    vertical-align: middle; // When used as inline-block\n  }\n  #{ $prefix }__spinner {\n    display: inline-block;\n    position: relative;\n    width: $size;\n    height: $size;\n  }\n  #{ $prefix }__spinner div {\n    transform-origin: $sizeHalf $sizeHalf;\n    animation: UluFadeOut get(\"duration\") linear infinite;\n  }\n  #{ $prefix }__spinner div::after {\n    content: \" \";\n    display: block;\n    position: absolute;\n    top: 0;\n    left: $sizeHalf - $spoke-widthHalf;\n    width: $spoke-width;\n    height: get(\"spoke-height\");\n    border-radius: get(\"border-radius\");\n    background: color.get(get(\"color\"));\n  }\n  #{ $prefix }__spinner div:nth-child(1) {\n    transform: rotate(0deg);\n    animation-delay: -1.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(2) {\n    transform: rotate(30deg);\n    animation-delay: -1s;\n  }\n  #{ $prefix }__spinner div:nth-child(3) {\n    transform: rotate(60deg);\n    animation-delay: -0.9s;\n  }\n  #{ $prefix }__spinner div:nth-child(4) {\n    transform: rotate(90deg);\n    animation-delay: -0.8s;\n  }\n  #{ $prefix }__spinner div:nth-child(5) {\n    transform: rotate(120deg);\n    animation-delay: -0.7s;\n  }\n  #{ $prefix }__spinner div:nth-child(6) {\n    transform: rotate(150deg);\n    animation-delay: -0.6s;\n  }\n  #{ $prefix }__spinner div:nth-child(7) {\n    transform: rotate(180deg);\n    animation-delay: -0.5s;\n  }\n  #{ $prefix }__spinner div:nth-child(8) {\n    transform: rotate(210deg);\n    animation-delay: -0.4s;\n  }\n  #{ $prefix }__spinner div:nth-child(9) {\n    transform: rotate(240deg);\n    animation-delay: -0.3s;\n  }\n  #{ $prefix }__spinner div:nth-child(10) {\n    transform: rotate(270deg);\n    animation-delay: -0.2s;\n  }\n  #{ $prefix }__spinner div:nth-child(11) {\n    transform: rotate(300deg);\n    animation-delay: -0.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(12) {\n    transform: rotate(330deg);\n    animation-delay: 0s;\n  }\n\n  // Map of config props needed for a new style, omitting props like color that aren't required\n  $required: (\n    \"size\" : get(\"size\"),\n    \"spoke-width\" : get(\"spoke-width\"),\n    \"spoke-height\" : get(\"spoke-height\"),\n  );\n\n  @each $name, $style in $styles {\n    $merged: map.merge($required, $style);\n\n    $size: map.get($merged, \"size\");\n    $sizeHalf: math.div($size, 2);\n\n    $spoke-width: map.get($merged, \"spoke-width\");\n    $spoke-widthHalf: math.div($spoke-width, 2);\n\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__spinner {\n        width: $size;\n        height: $size;\n      }\n      #{ $prefix }__spinner div {\n        transform-origin: $sizeHalf $sizeHalf;\n        animation-duration: map.get($merged, \"duration\");\n      }\n      #{ $prefix }__spinner div::after {\n        left: $sizeHalf - $spoke-widthHalf;\n        width: $spoke-width;\n        height: map.get($merged, \"spoke-height\");\n        border-radius: map.get($merged, \"border-radius\");\n        background: color.get(map.get($merged, \"color\"));\n      }\n    }\n  }\n",
              "line": {
                "start": 75,
                "end": 193
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"spoke-spinner\");\n\n\n  $size: get(\"size\");\n  $sizeHalf: math.div($size, 2);\n\n  $spoke-width: get(\"spoke-width\");\n  $spoke-widthHalf: math.div($spoke-width, 2);\n\n  #{ $prefix } {\n    position: relative;\n    vertical-align: middle; // When used as inline-block\n  }\n  #{ $prefix }__spinner {\n    display: inline-block;\n    position: relative;\n    width: $size;\n    height: $size;\n  }\n  #{ $prefix }__spinner div {\n    transform-origin: $sizeHalf $sizeHalf;\n    animation: UluFadeOut get(\"duration\") linear infinite;\n  }\n  #{ $prefix }__spinner div::after {\n    content: \" \";\n    display: block;\n    position: absolute;\n    top: 0;\n    left: $sizeHalf - $spoke-widthHalf;\n    width: $spoke-width;\n    height: get(\"spoke-height\");\n    border-radius: get(\"border-radius\");\n    background: color.get(get(\"color\"));\n  }\n  #{ $prefix }__spinner div:nth-child(1) {\n    transform: rotate(0deg);\n    animation-delay: -1.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(2) {\n    transform: rotate(30deg);\n    animation-delay: -1s;\n  }\n  #{ $prefix }__spinner div:nth-child(3) {\n    transform: rotate(60deg);\n    animation-delay: -0.9s;\n  }\n  #{ $prefix }__spinner div:nth-child(4) {\n    transform: rotate(90deg);\n    animation-delay: -0.8s;\n  }\n  #{ $prefix }__spinner div:nth-child(5) {\n    transform: rotate(120deg);\n    animation-delay: -0.7s;\n  }\n  #{ $prefix }__spinner div:nth-child(6) {\n    transform: rotate(150deg);\n    animation-delay: -0.6s;\n  }\n  #{ $prefix }__spinner div:nth-child(7) {\n    transform: rotate(180deg);\n    animation-delay: -0.5s;\n  }\n  #{ $prefix }__spinner div:nth-child(8) {\n    transform: rotate(210deg);\n    animation-delay: -0.4s;\n  }\n  #{ $prefix }__spinner div:nth-child(9) {\n    transform: rotate(240deg);\n    animation-delay: -0.3s;\n  }\n  #{ $prefix }__spinner div:nth-child(10) {\n    transform: rotate(270deg);\n    animation-delay: -0.2s;\n  }\n  #{ $prefix }__spinner div:nth-child(11) {\n    transform: rotate(300deg);\n    animation-delay: -0.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(12) {\n    transform: rotate(330deg);\n    animation-delay: 0s;\n  }\n\n  // Map of config props needed for a new style, omitting props like color that aren't required\n  $required: (\n    \"size\" : get(\"size\"),\n    \"spoke-width\" : get(\"spoke-width\"),\n    \"spoke-height\" : get(\"spoke-height\"),\n  );\n\n  @each $name, $style in $styles {\n    $merged: map.merge($required, $style);\n\n    $size: map.get($merged, \"size\");\n    $sizeHalf: math.div($size, 2);\n\n    $spoke-width: map.get($merged, \"spoke-width\");\n    $spoke-widthHalf: math.div($spoke-width, 2);\n\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__spinner {\n        width: $size;\n        height: $size;\n      }\n      #{ $prefix }__spinner div {\n        transform-origin: $sizeHalf $sizeHalf;\n        animation-duration: map.get($merged, \"duration\");\n      }\n      #{ $prefix }__spinner div::after {\n        left: $sizeHalf - $spoke-widthHalf;\n        width: $spoke-width;\n        height: map.get($merged, \"spoke-height\");\n        border-radius: map.get($merged, \"border-radius\");\n        background: color.get(map.get($merged, \"color\"));\n      }\n    }\n  }\n",
              "line": {
                "start": 75,
                "end": 193
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"spoke-spinner\");\n\n\n  $size: get(\"size\");\n  $sizeHalf: math.div($size, 2);\n\n  $spoke-width: get(\"spoke-width\");\n  $spoke-widthHalf: math.div($spoke-width, 2);\n\n  #{ $prefix } {\n    position: relative;\n    vertical-align: middle; // When used as inline-block\n  }\n  #{ $prefix }__spinner {\n    display: inline-block;\n    position: relative;\n    width: $size;\n    height: $size;\n  }\n  #{ $prefix }__spinner div {\n    transform-origin: $sizeHalf $sizeHalf;\n    animation: UluFadeOut get(\"duration\") linear infinite;\n  }\n  #{ $prefix }__spinner div::after {\n    content: \" \";\n    display: block;\n    position: absolute;\n    top: 0;\n    left: $sizeHalf - $spoke-widthHalf;\n    width: $spoke-width;\n    height: get(\"spoke-height\");\n    border-radius: get(\"border-radius\");\n    background: color.get(get(\"color\"));\n  }\n  #{ $prefix }__spinner div:nth-child(1) {\n    transform: rotate(0deg);\n    animation-delay: -1.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(2) {\n    transform: rotate(30deg);\n    animation-delay: -1s;\n  }\n  #{ $prefix }__spinner div:nth-child(3) {\n    transform: rotate(60deg);\n    animation-delay: -0.9s;\n  }\n  #{ $prefix }__spinner div:nth-child(4) {\n    transform: rotate(90deg);\n    animation-delay: -0.8s;\n  }\n  #{ $prefix }__spinner div:nth-child(5) {\n    transform: rotate(120deg);\n    animation-delay: -0.7s;\n  }\n  #{ $prefix }__spinner div:nth-child(6) {\n    transform: rotate(150deg);\n    animation-delay: -0.6s;\n  }\n  #{ $prefix }__spinner div:nth-child(7) {\n    transform: rotate(180deg);\n    animation-delay: -0.5s;\n  }\n  #{ $prefix }__spinner div:nth-child(8) {\n    transform: rotate(210deg);\n    animation-delay: -0.4s;\n  }\n  #{ $prefix }__spinner div:nth-child(9) {\n    transform: rotate(240deg);\n    animation-delay: -0.3s;\n  }\n  #{ $prefix }__spinner div:nth-child(10) {\n    transform: rotate(270deg);\n    animation-delay: -0.2s;\n  }\n  #{ $prefix }__spinner div:nth-child(11) {\n    transform: rotate(300deg);\n    animation-delay: -0.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(12) {\n    transform: rotate(330deg);\n    animation-delay: 0s;\n  }\n\n  // Map of config props needed for a new style, omitting props like color that aren't required\n  $required: (\n    \"size\" : get(\"size\"),\n    \"spoke-width\" : get(\"spoke-width\"),\n    \"spoke-height\" : get(\"spoke-height\"),\n  );\n\n  @each $name, $style in $styles {\n    $merged: map.merge($required, $style);\n\n    $size: map.get($merged, \"size\");\n    $sizeHalf: math.div($size, 2);\n\n    $spoke-width: map.get($merged, \"spoke-width\");\n    $spoke-widthHalf: math.div($spoke-width, 2);\n\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__spinner {\n        width: $size;\n        height: $size;\n      }\n      #{ $prefix }__spinner div {\n        transform-origin: $sizeHalf $sizeHalf;\n        animation-duration: map.get($merged, \"duration\");\n      }\n      #{ $prefix }__spinner div::after {\n        left: $sizeHalf - $spoke-widthHalf;\n        width: $spoke-width;\n        height: map.get($merged, \"spoke-height\");\n        border-radius: map.get($merged, \"border-radius\");\n        background: color.get(map.get($merged, \"color\"));\n      }\n    }\n  }\n",
              "line": {
                "start": 75,
                "end": 193
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"spoke-spinner\");\n\n\n  $size: get(\"size\");\n  $sizeHalf: math.div($size, 2);\n\n  $spoke-width: get(\"spoke-width\");\n  $spoke-widthHalf: math.div($spoke-width, 2);\n\n  #{ $prefix } {\n    position: relative;\n    vertical-align: middle; // When used as inline-block\n  }\n  #{ $prefix }__spinner {\n    display: inline-block;\n    position: relative;\n    width: $size;\n    height: $size;\n  }\n  #{ $prefix }__spinner div {\n    transform-origin: $sizeHalf $sizeHalf;\n    animation: UluFadeOut get(\"duration\") linear infinite;\n  }\n  #{ $prefix }__spinner div::after {\n    content: \" \";\n    display: block;\n    position: absolute;\n    top: 0;\n    left: $sizeHalf - $spoke-widthHalf;\n    width: $spoke-width;\n    height: get(\"spoke-height\");\n    border-radius: get(\"border-radius\");\n    background: color.get(get(\"color\"));\n  }\n  #{ $prefix }__spinner div:nth-child(1) {\n    transform: rotate(0deg);\n    animation-delay: -1.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(2) {\n    transform: rotate(30deg);\n    animation-delay: -1s;\n  }\n  #{ $prefix }__spinner div:nth-child(3) {\n    transform: rotate(60deg);\n    animation-delay: -0.9s;\n  }\n  #{ $prefix }__spinner div:nth-child(4) {\n    transform: rotate(90deg);\n    animation-delay: -0.8s;\n  }\n  #{ $prefix }__spinner div:nth-child(5) {\n    transform: rotate(120deg);\n    animation-delay: -0.7s;\n  }\n  #{ $prefix }__spinner div:nth-child(6) {\n    transform: rotate(150deg);\n    animation-delay: -0.6s;\n  }\n  #{ $prefix }__spinner div:nth-child(7) {\n    transform: rotate(180deg);\n    animation-delay: -0.5s;\n  }\n  #{ $prefix }__spinner div:nth-child(8) {\n    transform: rotate(210deg);\n    animation-delay: -0.4s;\n  }\n  #{ $prefix }__spinner div:nth-child(9) {\n    transform: rotate(240deg);\n    animation-delay: -0.3s;\n  }\n  #{ $prefix }__spinner div:nth-child(10) {\n    transform: rotate(270deg);\n    animation-delay: -0.2s;\n  }\n  #{ $prefix }__spinner div:nth-child(11) {\n    transform: rotate(300deg);\n    animation-delay: -0.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(12) {\n    transform: rotate(330deg);\n    animation-delay: 0s;\n  }\n\n  // Map of config props needed for a new style, omitting props like color that aren't required\n  $required: (\n    \"size\" : get(\"size\"),\n    \"spoke-width\" : get(\"spoke-width\"),\n    \"spoke-height\" : get(\"spoke-height\"),\n  );\n\n  @each $name, $style in $styles {\n    $merged: map.merge($required, $style);\n\n    $size: map.get($merged, \"size\");\n    $sizeHalf: math.div($size, 2);\n\n    $spoke-width: map.get($merged, \"spoke-width\");\n    $spoke-widthHalf: math.div($spoke-width, 2);\n\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__spinner {\n        width: $size;\n        height: $size;\n      }\n      #{ $prefix }__spinner div {\n        transform-origin: $sizeHalf $sizeHalf;\n        animation-duration: map.get($merged, \"duration\");\n      }\n      #{ $prefix }__spinner div::after {\n        left: $sizeHalf - $spoke-widthHalf;\n        width: $spoke-width;\n        height: map.get($merged, \"spoke-height\");\n        border-radius: map.get($merged, \"border-radius\");\n        background: color.get(map.get($merged, \"color\"));\n      }\n    }\n  }\n",
              "line": {
                "start": 75,
                "end": 193
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"spoke-spinner\");\n\n\n  $size: get(\"size\");\n  $sizeHalf: math.div($size, 2);\n\n  $spoke-width: get(\"spoke-width\");\n  $spoke-widthHalf: math.div($spoke-width, 2);\n\n  #{ $prefix } {\n    position: relative;\n    vertical-align: middle; // When used as inline-block\n  }\n  #{ $prefix }__spinner {\n    display: inline-block;\n    position: relative;\n    width: $size;\n    height: $size;\n  }\n  #{ $prefix }__spinner div {\n    transform-origin: $sizeHalf $sizeHalf;\n    animation: UluFadeOut get(\"duration\") linear infinite;\n  }\n  #{ $prefix }__spinner div::after {\n    content: \" \";\n    display: block;\n    position: absolute;\n    top: 0;\n    left: $sizeHalf - $spoke-widthHalf;\n    width: $spoke-width;\n    height: get(\"spoke-height\");\n    border-radius: get(\"border-radius\");\n    background: color.get(get(\"color\"));\n  }\n  #{ $prefix }__spinner div:nth-child(1) {\n    transform: rotate(0deg);\n    animation-delay: -1.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(2) {\n    transform: rotate(30deg);\n    animation-delay: -1s;\n  }\n  #{ $prefix }__spinner div:nth-child(3) {\n    transform: rotate(60deg);\n    animation-delay: -0.9s;\n  }\n  #{ $prefix }__spinner div:nth-child(4) {\n    transform: rotate(90deg);\n    animation-delay: -0.8s;\n  }\n  #{ $prefix }__spinner div:nth-child(5) {\n    transform: rotate(120deg);\n    animation-delay: -0.7s;\n  }\n  #{ $prefix }__spinner div:nth-child(6) {\n    transform: rotate(150deg);\n    animation-delay: -0.6s;\n  }\n  #{ $prefix }__spinner div:nth-child(7) {\n    transform: rotate(180deg);\n    animation-delay: -0.5s;\n  }\n  #{ $prefix }__spinner div:nth-child(8) {\n    transform: rotate(210deg);\n    animation-delay: -0.4s;\n  }\n  #{ $prefix }__spinner div:nth-child(9) {\n    transform: rotate(240deg);\n    animation-delay: -0.3s;\n  }\n  #{ $prefix }__spinner div:nth-child(10) {\n    transform: rotate(270deg);\n    animation-delay: -0.2s;\n  }\n  #{ $prefix }__spinner div:nth-child(11) {\n    transform: rotate(300deg);\n    animation-delay: -0.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(12) {\n    transform: rotate(330deg);\n    animation-delay: 0s;\n  }\n\n  // Map of config props needed for a new style, omitting props like color that aren't required\n  $required: (\n    \"size\" : get(\"size\"),\n    \"spoke-width\" : get(\"spoke-width\"),\n    \"spoke-height\" : get(\"spoke-height\"),\n  );\n\n  @each $name, $style in $styles {\n    $merged: map.merge($required, $style);\n\n    $size: map.get($merged, \"size\");\n    $sizeHalf: math.div($size, 2);\n\n    $spoke-width: map.get($merged, \"spoke-width\");\n    $spoke-widthHalf: math.div($spoke-width, 2);\n\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__spinner {\n        width: $size;\n        height: $size;\n      }\n      #{ $prefix }__spinner div {\n        transform-origin: $sizeHalf $sizeHalf;\n        animation-duration: map.get($merged, \"duration\");\n      }\n      #{ $prefix }__spinner div::after {\n        left: $sizeHalf - $spoke-widthHalf;\n        width: $spoke-width;\n        height: map.get($merged, \"spoke-height\");\n        border-radius: map.get($merged, \"border-radius\");\n        background: color.get(map.get($merged, \"color\"));\n      }\n    }\n  }\n",
              "line": {
                "start": 75,
                "end": 193
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"spoke-spinner\");\n\n\n  $size: get(\"size\");\n  $sizeHalf: math.div($size, 2);\n\n  $spoke-width: get(\"spoke-width\");\n  $spoke-widthHalf: math.div($spoke-width, 2);\n\n  #{ $prefix } {\n    position: relative;\n    vertical-align: middle; // When used as inline-block\n  }\n  #{ $prefix }__spinner {\n    display: inline-block;\n    position: relative;\n    width: $size;\n    height: $size;\n  }\n  #{ $prefix }__spinner div {\n    transform-origin: $sizeHalf $sizeHalf;\n    animation: UluFadeOut get(\"duration\") linear infinite;\n  }\n  #{ $prefix }__spinner div::after {\n    content: \" \";\n    display: block;\n    position: absolute;\n    top: 0;\n    left: $sizeHalf - $spoke-widthHalf;\n    width: $spoke-width;\n    height: get(\"spoke-height\");\n    border-radius: get(\"border-radius\");\n    background: color.get(get(\"color\"));\n  }\n  #{ $prefix }__spinner div:nth-child(1) {\n    transform: rotate(0deg);\n    animation-delay: -1.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(2) {\n    transform: rotate(30deg);\n    animation-delay: -1s;\n  }\n  #{ $prefix }__spinner div:nth-child(3) {\n    transform: rotate(60deg);\n    animation-delay: -0.9s;\n  }\n  #{ $prefix }__spinner div:nth-child(4) {\n    transform: rotate(90deg);\n    animation-delay: -0.8s;\n  }\n  #{ $prefix }__spinner div:nth-child(5) {\n    transform: rotate(120deg);\n    animation-delay: -0.7s;\n  }\n  #{ $prefix }__spinner div:nth-child(6) {\n    transform: rotate(150deg);\n    animation-delay: -0.6s;\n  }\n  #{ $prefix }__spinner div:nth-child(7) {\n    transform: rotate(180deg);\n    animation-delay: -0.5s;\n  }\n  #{ $prefix }__spinner div:nth-child(8) {\n    transform: rotate(210deg);\n    animation-delay: -0.4s;\n  }\n  #{ $prefix }__spinner div:nth-child(9) {\n    transform: rotate(240deg);\n    animation-delay: -0.3s;\n  }\n  #{ $prefix }__spinner div:nth-child(10) {\n    transform: rotate(270deg);\n    animation-delay: -0.2s;\n  }\n  #{ $prefix }__spinner div:nth-child(11) {\n    transform: rotate(300deg);\n    animation-delay: -0.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(12) {\n    transform: rotate(330deg);\n    animation-delay: 0s;\n  }\n\n  // Map of config props needed for a new style, omitting props like color that aren't required\n  $required: (\n    \"size\" : get(\"size\"),\n    \"spoke-width\" : get(\"spoke-width\"),\n    \"spoke-height\" : get(\"spoke-height\"),\n  );\n\n  @each $name, $style in $styles {\n    $merged: map.merge($required, $style);\n\n    $size: map.get($merged, \"size\");\n    $sizeHalf: math.div($size, 2);\n\n    $spoke-width: map.get($merged, \"spoke-width\");\n    $spoke-widthHalf: math.div($spoke-width, 2);\n\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__spinner {\n        width: $size;\n        height: $size;\n      }\n      #{ $prefix }__spinner div {\n        transform-origin: $sizeHalf $sizeHalf;\n        animation-duration: map.get($merged, \"duration\");\n      }\n      #{ $prefix }__spinner div::after {\n        left: $sizeHalf - $spoke-widthHalf;\n        width: $spoke-width;\n        height: map.get($merged, \"spoke-height\");\n        border-radius: map.get($merged, \"border-radius\");\n        background: color.get(map.get($merged, \"color\"));\n      }\n    }\n  }\n",
              "line": {
                "start": 75,
                "end": 193
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"spoke-spinner\");\n\n\n  $size: get(\"size\");\n  $sizeHalf: math.div($size, 2);\n\n  $spoke-width: get(\"spoke-width\");\n  $spoke-widthHalf: math.div($spoke-width, 2);\n\n  #{ $prefix } {\n    position: relative;\n    vertical-align: middle; // When used as inline-block\n  }\n  #{ $prefix }__spinner {\n    display: inline-block;\n    position: relative;\n    width: $size;\n    height: $size;\n  }\n  #{ $prefix }__spinner div {\n    transform-origin: $sizeHalf $sizeHalf;\n    animation: UluFadeOut get(\"duration\") linear infinite;\n  }\n  #{ $prefix }__spinner div::after {\n    content: \" \";\n    display: block;\n    position: absolute;\n    top: 0;\n    left: $sizeHalf - $spoke-widthHalf;\n    width: $spoke-width;\n    height: get(\"spoke-height\");\n    border-radius: get(\"border-radius\");\n    background: color.get(get(\"color\"));\n  }\n  #{ $prefix }__spinner div:nth-child(1) {\n    transform: rotate(0deg);\n    animation-delay: -1.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(2) {\n    transform: rotate(30deg);\n    animation-delay: -1s;\n  }\n  #{ $prefix }__spinner div:nth-child(3) {\n    transform: rotate(60deg);\n    animation-delay: -0.9s;\n  }\n  #{ $prefix }__spinner div:nth-child(4) {\n    transform: rotate(90deg);\n    animation-delay: -0.8s;\n  }\n  #{ $prefix }__spinner div:nth-child(5) {\n    transform: rotate(120deg);\n    animation-delay: -0.7s;\n  }\n  #{ $prefix }__spinner div:nth-child(6) {\n    transform: rotate(150deg);\n    animation-delay: -0.6s;\n  }\n  #{ $prefix }__spinner div:nth-child(7) {\n    transform: rotate(180deg);\n    animation-delay: -0.5s;\n  }\n  #{ $prefix }__spinner div:nth-child(8) {\n    transform: rotate(210deg);\n    animation-delay: -0.4s;\n  }\n  #{ $prefix }__spinner div:nth-child(9) {\n    transform: rotate(240deg);\n    animation-delay: -0.3s;\n  }\n  #{ $prefix }__spinner div:nth-child(10) {\n    transform: rotate(270deg);\n    animation-delay: -0.2s;\n  }\n  #{ $prefix }__spinner div:nth-child(11) {\n    transform: rotate(300deg);\n    animation-delay: -0.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(12) {\n    transform: rotate(330deg);\n    animation-delay: 0s;\n  }\n\n  // Map of config props needed for a new style, omitting props like color that aren't required\n  $required: (\n    \"size\" : get(\"size\"),\n    \"spoke-width\" : get(\"spoke-width\"),\n    \"spoke-height\" : get(\"spoke-height\"),\n  );\n\n  @each $name, $style in $styles {\n    $merged: map.merge($required, $style);\n\n    $size: map.get($merged, \"size\");\n    $sizeHalf: math.div($size, 2);\n\n    $spoke-width: map.get($merged, \"spoke-width\");\n    $spoke-widthHalf: math.div($spoke-width, 2);\n\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__spinner {\n        width: $size;\n        height: $size;\n      }\n      #{ $prefix }__spinner div {\n        transform-origin: $sizeHalf $sizeHalf;\n        animation-duration: map.get($merged, \"duration\");\n      }\n      #{ $prefix }__spinner div::after {\n        left: $sizeHalf - $spoke-widthHalf;\n        width: $spoke-width;\n        height: map.get($merged, \"spoke-height\");\n        border-radius: map.get($merged, \"border-radius\");\n        background: color.get(map.get($merged, \"color\"));\n      }\n    }\n  }\n",
              "line": {
                "start": 75,
                "end": 193
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"spoke-spinner\");\n\n\n  $size: get(\"size\");\n  $sizeHalf: math.div($size, 2);\n\n  $spoke-width: get(\"spoke-width\");\n  $spoke-widthHalf: math.div($spoke-width, 2);\n\n  #{ $prefix } {\n    position: relative;\n    vertical-align: middle; // When used as inline-block\n  }\n  #{ $prefix }__spinner {\n    display: inline-block;\n    position: relative;\n    width: $size;\n    height: $size;\n  }\n  #{ $prefix }__spinner div {\n    transform-origin: $sizeHalf $sizeHalf;\n    animation: UluFadeOut get(\"duration\") linear infinite;\n  }\n  #{ $prefix }__spinner div::after {\n    content: \" \";\n    display: block;\n    position: absolute;\n    top: 0;\n    left: $sizeHalf - $spoke-widthHalf;\n    width: $spoke-width;\n    height: get(\"spoke-height\");\n    border-radius: get(\"border-radius\");\n    background: color.get(get(\"color\"));\n  }\n  #{ $prefix }__spinner div:nth-child(1) {\n    transform: rotate(0deg);\n    animation-delay: -1.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(2) {\n    transform: rotate(30deg);\n    animation-delay: -1s;\n  }\n  #{ $prefix }__spinner div:nth-child(3) {\n    transform: rotate(60deg);\n    animation-delay: -0.9s;\n  }\n  #{ $prefix }__spinner div:nth-child(4) {\n    transform: rotate(90deg);\n    animation-delay: -0.8s;\n  }\n  #{ $prefix }__spinner div:nth-child(5) {\n    transform: rotate(120deg);\n    animation-delay: -0.7s;\n  }\n  #{ $prefix }__spinner div:nth-child(6) {\n    transform: rotate(150deg);\n    animation-delay: -0.6s;\n  }\n  #{ $prefix }__spinner div:nth-child(7) {\n    transform: rotate(180deg);\n    animation-delay: -0.5s;\n  }\n  #{ $prefix }__spinner div:nth-child(8) {\n    transform: rotate(210deg);\n    animation-delay: -0.4s;\n  }\n  #{ $prefix }__spinner div:nth-child(9) {\n    transform: rotate(240deg);\n    animation-delay: -0.3s;\n  }\n  #{ $prefix }__spinner div:nth-child(10) {\n    transform: rotate(270deg);\n    animation-delay: -0.2s;\n  }\n  #{ $prefix }__spinner div:nth-child(11) {\n    transform: rotate(300deg);\n    animation-delay: -0.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(12) {\n    transform: rotate(330deg);\n    animation-delay: 0s;\n  }\n\n  // Map of config props needed for a new style, omitting props like color that aren't required\n  $required: (\n    \"size\" : get(\"size\"),\n    \"spoke-width\" : get(\"spoke-width\"),\n    \"spoke-height\" : get(\"spoke-height\"),\n  );\n\n  @each $name, $style in $styles {\n    $merged: map.merge($required, $style);\n\n    $size: map.get($merged, \"size\");\n    $sizeHalf: math.div($size, 2);\n\n    $spoke-width: map.get($merged, \"spoke-width\");\n    $spoke-widthHalf: math.div($spoke-width, 2);\n\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__spinner {\n        width: $size;\n        height: $size;\n      }\n      #{ $prefix }__spinner div {\n        transform-origin: $sizeHalf $sizeHalf;\n        animation-duration: map.get($merged, \"duration\");\n      }\n      #{ $prefix }__spinner div::after {\n        left: $sizeHalf - $spoke-widthHalf;\n        width: $spoke-width;\n        height: map.get($merged, \"spoke-height\");\n        border-radius: map.get($merged, \"border-radius\");\n        background: color.get(map.get($merged, \"color\"));\n      }\n    }\n  }\n",
              "line": {
                "start": 75,
                "end": 193
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"spoke-spinner\");\n\n\n  $size: get(\"size\");\n  $sizeHalf: math.div($size, 2);\n\n  $spoke-width: get(\"spoke-width\");\n  $spoke-widthHalf: math.div($spoke-width, 2);\n\n  #{ $prefix } {\n    position: relative;\n    vertical-align: middle; // When used as inline-block\n  }\n  #{ $prefix }__spinner {\n    display: inline-block;\n    position: relative;\n    width: $size;\n    height: $size;\n  }\n  #{ $prefix }__spinner div {\n    transform-origin: $sizeHalf $sizeHalf;\n    animation: UluFadeOut get(\"duration\") linear infinite;\n  }\n  #{ $prefix }__spinner div::after {\n    content: \" \";\n    display: block;\n    position: absolute;\n    top: 0;\n    left: $sizeHalf - $spoke-widthHalf;\n    width: $spoke-width;\n    height: get(\"spoke-height\");\n    border-radius: get(\"border-radius\");\n    background: color.get(get(\"color\"));\n  }\n  #{ $prefix }__spinner div:nth-child(1) {\n    transform: rotate(0deg);\n    animation-delay: -1.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(2) {\n    transform: rotate(30deg);\n    animation-delay: -1s;\n  }\n  #{ $prefix }__spinner div:nth-child(3) {\n    transform: rotate(60deg);\n    animation-delay: -0.9s;\n  }\n  #{ $prefix }__spinner div:nth-child(4) {\n    transform: rotate(90deg);\n    animation-delay: -0.8s;\n  }\n  #{ $prefix }__spinner div:nth-child(5) {\n    transform: rotate(120deg);\n    animation-delay: -0.7s;\n  }\n  #{ $prefix }__spinner div:nth-child(6) {\n    transform: rotate(150deg);\n    animation-delay: -0.6s;\n  }\n  #{ $prefix }__spinner div:nth-child(7) {\n    transform: rotate(180deg);\n    animation-delay: -0.5s;\n  }\n  #{ $prefix }__spinner div:nth-child(8) {\n    transform: rotate(210deg);\n    animation-delay: -0.4s;\n  }\n  #{ $prefix }__spinner div:nth-child(9) {\n    transform: rotate(240deg);\n    animation-delay: -0.3s;\n  }\n  #{ $prefix }__spinner div:nth-child(10) {\n    transform: rotate(270deg);\n    animation-delay: -0.2s;\n  }\n  #{ $prefix }__spinner div:nth-child(11) {\n    transform: rotate(300deg);\n    animation-delay: -0.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(12) {\n    transform: rotate(330deg);\n    animation-delay: 0s;\n  }\n\n  // Map of config props needed for a new style, omitting props like color that aren't required\n  $required: (\n    \"size\" : get(\"size\"),\n    \"spoke-width\" : get(\"spoke-width\"),\n    \"spoke-height\" : get(\"spoke-height\"),\n  );\n\n  @each $name, $style in $styles {\n    $merged: map.merge($required, $style);\n\n    $size: map.get($merged, \"size\");\n    $sizeHalf: math.div($size, 2);\n\n    $spoke-width: map.get($merged, \"spoke-width\");\n    $spoke-widthHalf: math.div($spoke-width, 2);\n\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__spinner {\n        width: $size;\n        height: $size;\n      }\n      #{ $prefix }__spinner div {\n        transform-origin: $sizeHalf $sizeHalf;\n        animation-duration: map.get($merged, \"duration\");\n      }\n      #{ $prefix }__spinner div::after {\n        left: $sizeHalf - $spoke-widthHalf;\n        width: $spoke-width;\n        height: map.get($merged, \"spoke-height\");\n        border-radius: map.get($merged, \"border-radius\");\n        background: color.get(map.get($merged, \"color\"));\n      }\n    }\n  }\n",
              "line": {
                "start": 75,
                "end": 193
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"spoke-spinner\");\n\n\n  $size: get(\"size\");\n  $sizeHalf: math.div($size, 2);\n\n  $spoke-width: get(\"spoke-width\");\n  $spoke-widthHalf: math.div($spoke-width, 2);\n\n  #{ $prefix } {\n    position: relative;\n    vertical-align: middle; // When used as inline-block\n  }\n  #{ $prefix }__spinner {\n    display: inline-block;\n    position: relative;\n    width: $size;\n    height: $size;\n  }\n  #{ $prefix }__spinner div {\n    transform-origin: $sizeHalf $sizeHalf;\n    animation: UluFadeOut get(\"duration\") linear infinite;\n  }\n  #{ $prefix }__spinner div::after {\n    content: \" \";\n    display: block;\n    position: absolute;\n    top: 0;\n    left: $sizeHalf - $spoke-widthHalf;\n    width: $spoke-width;\n    height: get(\"spoke-height\");\n    border-radius: get(\"border-radius\");\n    background: color.get(get(\"color\"));\n  }\n  #{ $prefix }__spinner div:nth-child(1) {\n    transform: rotate(0deg);\n    animation-delay: -1.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(2) {\n    transform: rotate(30deg);\n    animation-delay: -1s;\n  }\n  #{ $prefix }__spinner div:nth-child(3) {\n    transform: rotate(60deg);\n    animation-delay: -0.9s;\n  }\n  #{ $prefix }__spinner div:nth-child(4) {\n    transform: rotate(90deg);\n    animation-delay: -0.8s;\n  }\n  #{ $prefix }__spinner div:nth-child(5) {\n    transform: rotate(120deg);\n    animation-delay: -0.7s;\n  }\n  #{ $prefix }__spinner div:nth-child(6) {\n    transform: rotate(150deg);\n    animation-delay: -0.6s;\n  }\n  #{ $prefix }__spinner div:nth-child(7) {\n    transform: rotate(180deg);\n    animation-delay: -0.5s;\n  }\n  #{ $prefix }__spinner div:nth-child(8) {\n    transform: rotate(210deg);\n    animation-delay: -0.4s;\n  }\n  #{ $prefix }__spinner div:nth-child(9) {\n    transform: rotate(240deg);\n    animation-delay: -0.3s;\n  }\n  #{ $prefix }__spinner div:nth-child(10) {\n    transform: rotate(270deg);\n    animation-delay: -0.2s;\n  }\n  #{ $prefix }__spinner div:nth-child(11) {\n    transform: rotate(300deg);\n    animation-delay: -0.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(12) {\n    transform: rotate(330deg);\n    animation-delay: 0s;\n  }\n\n  // Map of config props needed for a new style, omitting props like color that aren't required\n  $required: (\n    \"size\" : get(\"size\"),\n    \"spoke-width\" : get(\"spoke-width\"),\n    \"spoke-height\" : get(\"spoke-height\"),\n  );\n\n  @each $name, $style in $styles {\n    $merged: map.merge($required, $style);\n\n    $size: map.get($merged, \"size\");\n    $sizeHalf: math.div($size, 2);\n\n    $spoke-width: map.get($merged, \"spoke-width\");\n    $spoke-widthHalf: math.div($spoke-width, 2);\n\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__spinner {\n        width: $size;\n        height: $size;\n      }\n      #{ $prefix }__spinner div {\n        transform-origin: $sizeHalf $sizeHalf;\n        animation-duration: map.get($merged, \"duration\");\n      }\n      #{ $prefix }__spinner div::after {\n        left: $sizeHalf - $spoke-widthHalf;\n        width: $spoke-width;\n        height: map.get($merged, \"spoke-height\");\n        border-radius: map.get($merged, \"border-radius\");\n        background: color.get(map.get($merged, \"color\"));\n      }\n    }\n  }\n",
              "line": {
                "start": 75,
                "end": 193
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"sticky-list\");\n  $mask-offset-top: get(\"mask-offset-top\");\n  $mask-offset-bottom: get(\"mask-offset-bottom\");\n  $type-size: get(\"type-size\");\n  $sticky-top: get(\"sticky-top\");\n\n  #{ $prefix } {\n    padding: get(\"margin\") 0;\n  }\n  @include breakpoint.min(get(\"breakpoint\")) {\n    #{ $prefix } {\n      display: flex;\n      align-items: flex-start;\n      gap: get(\"gap\");\n      position: relative;\n      @if ($type-size and typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      } @else if ($type-size) {\n        @warn \"Unable to find '#{$type-size}' typography size for title\";\n      }\n    }\n    #{ $prefix }__title,\n    #{ $prefix } > :not(ul) {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      flex-basis: get(\"title-width\");\n      min-width: get(\"title-min-width\");\n      padding-top: $mask-offset-top;\n      padding-bottom: $mask-offset-bottom;\n      text-align: get(\"title-text-align\");\n    }\n    #{ $prefix }__list,\n    #{ $prefix } > ul {\n      list-style: none;\n      margin: 0;\n      display: flex;\n      flex-direction: column;\n      justify-content: space-between;\n      align-self: stretch;\n    }\n    #{ $prefix }__item,\n    #{ $prefix } > ul > li {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      margin: 0 !important; // If in editor (to complicated for :not())\n      padding: $mask-offset-top get(\"item-padding-x\") $mask-offset-bottom get(\"item-padding-x\");\n      @include set-background(get(\"background-color\"));\n    }\n    #{ $prefix }__item:first-child,\n    #{ $prefix } > ul > li:first-child {\n      margin-top: 0;\n    }\n    #{ $prefix }__item:last-child,\n    #{ $prefix } > ul > li:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Print out any contextual background styles\n  @each $props in get(\"background-contexts\") {\n    $selector: map.get($props, \"selector\");\n    $item-padding-x: map.get($props, \"item-padding-x\");\n    @include breakpoint.min(get(\"breakpoint\")) {\n      #{ $selector } {\n        #{ $prefix }__item,\n        #{ $prefix } > ul > li {\n          @if ($item-padding-x) {\n            padding-left: $item-padding-x;\n            padding-right: $item-padding-x;\n          }\n          @include set-background(map.get($props, \"background-color\"));\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 118,
                "end": 196
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"sticky-list\");\n  $mask-offset-top: get(\"mask-offset-top\");\n  $mask-offset-bottom: get(\"mask-offset-bottom\");\n  $type-size: get(\"type-size\");\n  $sticky-top: get(\"sticky-top\");\n\n  #{ $prefix } {\n    padding: get(\"margin\") 0;\n  }\n  @include breakpoint.min(get(\"breakpoint\")) {\n    #{ $prefix } {\n      display: flex;\n      align-items: flex-start;\n      gap: get(\"gap\");\n      position: relative;\n      @if ($type-size and typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      } @else if ($type-size) {\n        @warn \"Unable to find '#{$type-size}' typography size for title\";\n      }\n    }\n    #{ $prefix }__title,\n    #{ $prefix } > :not(ul) {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      flex-basis: get(\"title-width\");\n      min-width: get(\"title-min-width\");\n      padding-top: $mask-offset-top;\n      padding-bottom: $mask-offset-bottom;\n      text-align: get(\"title-text-align\");\n    }\n    #{ $prefix }__list,\n    #{ $prefix } > ul {\n      list-style: none;\n      margin: 0;\n      display: flex;\n      flex-direction: column;\n      justify-content: space-between;\n      align-self: stretch;\n    }\n    #{ $prefix }__item,\n    #{ $prefix } > ul > li {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      margin: 0 !important; // If in editor (to complicated for :not())\n      padding: $mask-offset-top get(\"item-padding-x\") $mask-offset-bottom get(\"item-padding-x\");\n      @include set-background(get(\"background-color\"));\n    }\n    #{ $prefix }__item:first-child,\n    #{ $prefix } > ul > li:first-child {\n      margin-top: 0;\n    }\n    #{ $prefix }__item:last-child,\n    #{ $prefix } > ul > li:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Print out any contextual background styles\n  @each $props in get(\"background-contexts\") {\n    $selector: map.get($props, \"selector\");\n    $item-padding-x: map.get($props, \"item-padding-x\");\n    @include breakpoint.min(get(\"breakpoint\")) {\n      #{ $selector } {\n        #{ $prefix }__item,\n        #{ $prefix } > ul > li {\n          @if ($item-padding-x) {\n            padding-left: $item-padding-x;\n            padding-right: $item-padding-x;\n          }\n          @include set-background(map.get($props, \"background-color\"));\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 118,
                "end": 196
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"sticky-list\");\n  $mask-offset-top: get(\"mask-offset-top\");\n  $mask-offset-bottom: get(\"mask-offset-bottom\");\n  $type-size: get(\"type-size\");\n  $sticky-top: get(\"sticky-top\");\n\n  #{ $prefix } {\n    padding: get(\"margin\") 0;\n  }\n  @include breakpoint.min(get(\"breakpoint\")) {\n    #{ $prefix } {\n      display: flex;\n      align-items: flex-start;\n      gap: get(\"gap\");\n      position: relative;\n      @if ($type-size and typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      } @else if ($type-size) {\n        @warn \"Unable to find '#{$type-size}' typography size for title\";\n      }\n    }\n    #{ $prefix }__title,\n    #{ $prefix } > :not(ul) {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      flex-basis: get(\"title-width\");\n      min-width: get(\"title-min-width\");\n      padding-top: $mask-offset-top;\n      padding-bottom: $mask-offset-bottom;\n      text-align: get(\"title-text-align\");\n    }\n    #{ $prefix }__list,\n    #{ $prefix } > ul {\n      list-style: none;\n      margin: 0;\n      display: flex;\n      flex-direction: column;\n      justify-content: space-between;\n      align-self: stretch;\n    }\n    #{ $prefix }__item,\n    #{ $prefix } > ul > li {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      margin: 0 !important; // If in editor (to complicated for :not())\n      padding: $mask-offset-top get(\"item-padding-x\") $mask-offset-bottom get(\"item-padding-x\");\n      @include set-background(get(\"background-color\"));\n    }\n    #{ $prefix }__item:first-child,\n    #{ $prefix } > ul > li:first-child {\n      margin-top: 0;\n    }\n    #{ $prefix }__item:last-child,\n    #{ $prefix } > ul > li:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Print out any contextual background styles\n  @each $props in get(\"background-contexts\") {\n    $selector: map.get($props, \"selector\");\n    $item-padding-x: map.get($props, \"item-padding-x\");\n    @include breakpoint.min(get(\"breakpoint\")) {\n      #{ $selector } {\n        #{ $prefix }__item,\n        #{ $prefix } > ul > li {\n          @if ($item-padding-x) {\n            padding-left: $item-padding-x;\n            padding-right: $item-padding-x;\n          }\n          @include set-background(map.get($props, \"background-color\"));\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 118,
                "end": 196
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"sticky-list\");\n  $mask-offset-top: get(\"mask-offset-top\");\n  $mask-offset-bottom: get(\"mask-offset-bottom\");\n  $type-size: get(\"type-size\");\n  $sticky-top: get(\"sticky-top\");\n\n  #{ $prefix } {\n    padding: get(\"margin\") 0;\n  }\n  @include breakpoint.min(get(\"breakpoint\")) {\n    #{ $prefix } {\n      display: flex;\n      align-items: flex-start;\n      gap: get(\"gap\");\n      position: relative;\n      @if ($type-size and typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      } @else if ($type-size) {\n        @warn \"Unable to find '#{$type-size}' typography size for title\";\n      }\n    }\n    #{ $prefix }__title,\n    #{ $prefix } > :not(ul) {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      flex-basis: get(\"title-width\");\n      min-width: get(\"title-min-width\");\n      padding-top: $mask-offset-top;\n      padding-bottom: $mask-offset-bottom;\n      text-align: get(\"title-text-align\");\n    }\n    #{ $prefix }__list,\n    #{ $prefix } > ul {\n      list-style: none;\n      margin: 0;\n      display: flex;\n      flex-direction: column;\n      justify-content: space-between;\n      align-self: stretch;\n    }\n    #{ $prefix }__item,\n    #{ $prefix } > ul > li {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      margin: 0 !important; // If in editor (to complicated for :not())\n      padding: $mask-offset-top get(\"item-padding-x\") $mask-offset-bottom get(\"item-padding-x\");\n      @include set-background(get(\"background-color\"));\n    }\n    #{ $prefix }__item:first-child,\n    #{ $prefix } > ul > li:first-child {\n      margin-top: 0;\n    }\n    #{ $prefix }__item:last-child,\n    #{ $prefix } > ul > li:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Print out any contextual background styles\n  @each $props in get(\"background-contexts\") {\n    $selector: map.get($props, \"selector\");\n    $item-padding-x: map.get($props, \"item-padding-x\");\n    @include breakpoint.min(get(\"breakpoint\")) {\n      #{ $selector } {\n        #{ $prefix }__item,\n        #{ $prefix } > ul > li {\n          @if ($item-padding-x) {\n            padding-left: $item-padding-x;\n            padding-right: $item-padding-x;\n          }\n          @include set-background(map.get($props, \"background-color\"));\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 118,
                "end": 196
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"sticky-list\");\n  $mask-offset-top: get(\"mask-offset-top\");\n  $mask-offset-bottom: get(\"mask-offset-bottom\");\n  $type-size: get(\"type-size\");\n  $sticky-top: get(\"sticky-top\");\n\n  #{ $prefix } {\n    padding: get(\"margin\") 0;\n  }\n  @include breakpoint.min(get(\"breakpoint\")) {\n    #{ $prefix } {\n      display: flex;\n      align-items: flex-start;\n      gap: get(\"gap\");\n      position: relative;\n      @if ($type-size and typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      } @else if ($type-size) {\n        @warn \"Unable to find '#{$type-size}' typography size for title\";\n      }\n    }\n    #{ $prefix }__title,\n    #{ $prefix } > :not(ul) {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      flex-basis: get(\"title-width\");\n      min-width: get(\"title-min-width\");\n      padding-top: $mask-offset-top;\n      padding-bottom: $mask-offset-bottom;\n      text-align: get(\"title-text-align\");\n    }\n    #{ $prefix }__list,\n    #{ $prefix } > ul {\n      list-style: none;\n      margin: 0;\n      display: flex;\n      flex-direction: column;\n      justify-content: space-between;\n      align-self: stretch;\n    }\n    #{ $prefix }__item,\n    #{ $prefix } > ul > li {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      margin: 0 !important; // If in editor (to complicated for :not())\n      padding: $mask-offset-top get(\"item-padding-x\") $mask-offset-bottom get(\"item-padding-x\");\n      @include set-background(get(\"background-color\"));\n    }\n    #{ $prefix }__item:first-child,\n    #{ $prefix } > ul > li:first-child {\n      margin-top: 0;\n    }\n    #{ $prefix }__item:last-child,\n    #{ $prefix } > ul > li:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Print out any contextual background styles\n  @each $props in get(\"background-contexts\") {\n    $selector: map.get($props, \"selector\");\n    $item-padding-x: map.get($props, \"item-padding-x\");\n    @include breakpoint.min(get(\"breakpoint\")) {\n      #{ $selector } {\n        #{ $prefix }__item,\n        #{ $prefix } > ul > li {\n          @if ($item-padding-x) {\n            padding-left: $item-padding-x;\n            padding-right: $item-padding-x;\n          }\n          @include set-background(map.get($props, \"background-color\"));\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 118,
                "end": 196
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"sticky-list\");\n  $mask-offset-top: get(\"mask-offset-top\");\n  $mask-offset-bottom: get(\"mask-offset-bottom\");\n  $type-size: get(\"type-size\");\n  $sticky-top: get(\"sticky-top\");\n\n  #{ $prefix } {\n    padding: get(\"margin\") 0;\n  }\n  @include breakpoint.min(get(\"breakpoint\")) {\n    #{ $prefix } {\n      display: flex;\n      align-items: flex-start;\n      gap: get(\"gap\");\n      position: relative;\n      @if ($type-size and typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      } @else if ($type-size) {\n        @warn \"Unable to find '#{$type-size}' typography size for title\";\n      }\n    }\n    #{ $prefix }__title,\n    #{ $prefix } > :not(ul) {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      flex-basis: get(\"title-width\");\n      min-width: get(\"title-min-width\");\n      padding-top: $mask-offset-top;\n      padding-bottom: $mask-offset-bottom;\n      text-align: get(\"title-text-align\");\n    }\n    #{ $prefix }__list,\n    #{ $prefix } > ul {\n      list-style: none;\n      margin: 0;\n      display: flex;\n      flex-direction: column;\n      justify-content: space-between;\n      align-self: stretch;\n    }\n    #{ $prefix }__item,\n    #{ $prefix } > ul > li {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      margin: 0 !important; // If in editor (to complicated for :not())\n      padding: $mask-offset-top get(\"item-padding-x\") $mask-offset-bottom get(\"item-padding-x\");\n      @include set-background(get(\"background-color\"));\n    }\n    #{ $prefix }__item:first-child,\n    #{ $prefix } > ul > li:first-child {\n      margin-top: 0;\n    }\n    #{ $prefix }__item:last-child,\n    #{ $prefix } > ul > li:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Print out any contextual background styles\n  @each $props in get(\"background-contexts\") {\n    $selector: map.get($props, \"selector\");\n    $item-padding-x: map.get($props, \"item-padding-x\");\n    @include breakpoint.min(get(\"breakpoint\")) {\n      #{ $selector } {\n        #{ $prefix }__item,\n        #{ $prefix } > ul > li {\n          @if ($item-padding-x) {\n            padding-left: $item-padding-x;\n            padding-right: $item-padding-x;\n          }\n          @include set-background(map.get($props, \"background-color\"));\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 118,
                "end": 196
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"sticky-list\");\n  $mask-offset-top: get(\"mask-offset-top\");\n  $mask-offset-bottom: get(\"mask-offset-bottom\");\n  $type-size: get(\"type-size\");\n  $sticky-top: get(\"sticky-top\");\n\n  #{ $prefix } {\n    padding: get(\"margin\") 0;\n  }\n  @include breakpoint.min(get(\"breakpoint\")) {\n    #{ $prefix } {\n      display: flex;\n      align-items: flex-start;\n      gap: get(\"gap\");\n      position: relative;\n      @if ($type-size and typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      } @else if ($type-size) {\n        @warn \"Unable to find '#{$type-size}' typography size for title\";\n      }\n    }\n    #{ $prefix }__title,\n    #{ $prefix } > :not(ul) {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      flex-basis: get(\"title-width\");\n      min-width: get(\"title-min-width\");\n      padding-top: $mask-offset-top;\n      padding-bottom: $mask-offset-bottom;\n      text-align: get(\"title-text-align\");\n    }\n    #{ $prefix }__list,\n    #{ $prefix } > ul {\n      list-style: none;\n      margin: 0;\n      display: flex;\n      flex-direction: column;\n      justify-content: space-between;\n      align-self: stretch;\n    }\n    #{ $prefix }__item,\n    #{ $prefix } > ul > li {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      margin: 0 !important; // If in editor (to complicated for :not())\n      padding: $mask-offset-top get(\"item-padding-x\") $mask-offset-bottom get(\"item-padding-x\");\n      @include set-background(get(\"background-color\"));\n    }\n    #{ $prefix }__item:first-child,\n    #{ $prefix } > ul > li:first-child {\n      margin-top: 0;\n    }\n    #{ $prefix }__item:last-child,\n    #{ $prefix } > ul > li:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Print out any contextual background styles\n  @each $props in get(\"background-contexts\") {\n    $selector: map.get($props, \"selector\");\n    $item-padding-x: map.get($props, \"item-padding-x\");\n    @include breakpoint.min(get(\"breakpoint\")) {\n      #{ $selector } {\n        #{ $prefix }__item,\n        #{ $prefix } > ul > li {\n          @if ($item-padding-x) {\n            padding-left: $item-padding-x;\n            padding-right: $item-padding-x;\n          }\n          @include set-background(map.get($props, \"background-color\"));\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 118,
                "end": 196
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"sticky-list\");\n  $mask-offset-top: get(\"mask-offset-top\");\n  $mask-offset-bottom: get(\"mask-offset-bottom\");\n  $type-size: get(\"type-size\");\n  $sticky-top: get(\"sticky-top\");\n\n  #{ $prefix } {\n    padding: get(\"margin\") 0;\n  }\n  @include breakpoint.min(get(\"breakpoint\")) {\n    #{ $prefix } {\n      display: flex;\n      align-items: flex-start;\n      gap: get(\"gap\");\n      position: relative;\n      @if ($type-size and typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      } @else if ($type-size) {\n        @warn \"Unable to find '#{$type-size}' typography size for title\";\n      }\n    }\n    #{ $prefix }__title,\n    #{ $prefix } > :not(ul) {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      flex-basis: get(\"title-width\");\n      min-width: get(\"title-min-width\");\n      padding-top: $mask-offset-top;\n      padding-bottom: $mask-offset-bottom;\n      text-align: get(\"title-text-align\");\n    }\n    #{ $prefix }__list,\n    #{ $prefix } > ul {\n      list-style: none;\n      margin: 0;\n      display: flex;\n      flex-direction: column;\n      justify-content: space-between;\n      align-self: stretch;\n    }\n    #{ $prefix }__item,\n    #{ $prefix } > ul > li {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      margin: 0 !important; // If in editor (to complicated for :not())\n      padding: $mask-offset-top get(\"item-padding-x\") $mask-offset-bottom get(\"item-padding-x\");\n      @include set-background(get(\"background-color\"));\n    }\n    #{ $prefix }__item:first-child,\n    #{ $prefix } > ul > li:first-child {\n      margin-top: 0;\n    }\n    #{ $prefix }__item:last-child,\n    #{ $prefix } > ul > li:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Print out any contextual background styles\n  @each $props in get(\"background-contexts\") {\n    $selector: map.get($props, \"selector\");\n    $item-padding-x: map.get($props, \"item-padding-x\");\n    @include breakpoint.min(get(\"breakpoint\")) {\n      #{ $selector } {\n        #{ $prefix }__item,\n        #{ $prefix } > ul > li {\n          @if ($item-padding-x) {\n            padding-left: $item-padding-x;\n            padding-right: $item-padding-x;\n          }\n          @include set-background(map.get($props, \"background-color\"));\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 118,
                "end": 196
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"sticky-list\");\n  $mask-offset-top: get(\"mask-offset-top\");\n  $mask-offset-bottom: get(\"mask-offset-bottom\");\n  $type-size: get(\"type-size\");\n  $sticky-top: get(\"sticky-top\");\n\n  #{ $prefix } {\n    padding: get(\"margin\") 0;\n  }\n  @include breakpoint.min(get(\"breakpoint\")) {\n    #{ $prefix } {\n      display: flex;\n      align-items: flex-start;\n      gap: get(\"gap\");\n      position: relative;\n      @if ($type-size and typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      } @else if ($type-size) {\n        @warn \"Unable to find '#{$type-size}' typography size for title\";\n      }\n    }\n    #{ $prefix }__title,\n    #{ $prefix } > :not(ul) {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      flex-basis: get(\"title-width\");\n      min-width: get(\"title-min-width\");\n      padding-top: $mask-offset-top;\n      padding-bottom: $mask-offset-bottom;\n      text-align: get(\"title-text-align\");\n    }\n    #{ $prefix }__list,\n    #{ $prefix } > ul {\n      list-style: none;\n      margin: 0;\n      display: flex;\n      flex-direction: column;\n      justify-content: space-between;\n      align-self: stretch;\n    }\n    #{ $prefix }__item,\n    #{ $prefix } > ul > li {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      margin: 0 !important; // If in editor (to complicated for :not())\n      padding: $mask-offset-top get(\"item-padding-x\") $mask-offset-bottom get(\"item-padding-x\");\n      @include set-background(get(\"background-color\"));\n    }\n    #{ $prefix }__item:first-child,\n    #{ $prefix } > ul > li:first-child {\n      margin-top: 0;\n    }\n    #{ $prefix }__item:last-child,\n    #{ $prefix } > ul > li:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Print out any contextual background styles\n  @each $props in get(\"background-contexts\") {\n    $selector: map.get($props, \"selector\");\n    $item-padding-x: map.get($props, \"item-padding-x\");\n    @include breakpoint.min(get(\"breakpoint\")) {\n      #{ $selector } {\n        #{ $prefix }__item,\n        #{ $prefix } > ul > li {\n          @if ($item-padding-x) {\n            padding-left: $item-padding-x;\n            padding-right: $item-padding-x;\n          }\n          @include set-background(map.get($props, \"background-color\"));\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 118,
                "end": 196
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"sticky-list\");\n  $mask-offset-top: get(\"mask-offset-top\");\n  $mask-offset-bottom: get(\"mask-offset-bottom\");\n  $type-size: get(\"type-size\");\n  $sticky-top: get(\"sticky-top\");\n\n  #{ $prefix } {\n    padding: get(\"margin\") 0;\n  }\n  @include breakpoint.min(get(\"breakpoint\")) {\n    #{ $prefix } {\n      display: flex;\n      align-items: flex-start;\n      gap: get(\"gap\");\n      position: relative;\n      @if ($type-size and typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      } @else if ($type-size) {\n        @warn \"Unable to find '#{$type-size}' typography size for title\";\n      }\n    }\n    #{ $prefix }__title,\n    #{ $prefix } > :not(ul) {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      flex-basis: get(\"title-width\");\n      min-width: get(\"title-min-width\");\n      padding-top: $mask-offset-top;\n      padding-bottom: $mask-offset-bottom;\n      text-align: get(\"title-text-align\");\n    }\n    #{ $prefix }__list,\n    #{ $prefix } > ul {\n      list-style: none;\n      margin: 0;\n      display: flex;\n      flex-direction: column;\n      justify-content: space-between;\n      align-self: stretch;\n    }\n    #{ $prefix }__item,\n    #{ $prefix } > ul > li {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      margin: 0 !important; // If in editor (to complicated for :not())\n      padding: $mask-offset-top get(\"item-padding-x\") $mask-offset-bottom get(\"item-padding-x\");\n      @include set-background(get(\"background-color\"));\n    }\n    #{ $prefix }__item:first-child,\n    #{ $prefix } > ul > li:first-child {\n      margin-top: 0;\n    }\n    #{ $prefix }__item:last-child,\n    #{ $prefix } > ul > li:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Print out any contextual background styles\n  @each $props in get(\"background-contexts\") {\n    $selector: map.get($props, \"selector\");\n    $item-padding-x: map.get($props, \"item-padding-x\");\n    @include breakpoint.min(get(\"breakpoint\")) {\n      #{ $selector } {\n        #{ $prefix }__item,\n        #{ $prefix } > ul > li {\n          @if ($item-padding-x) {\n            padding-left: $item-padding-x;\n            padding-right: $item-padding-x;\n          }\n          @include set-background(map.get($props, \"background-color\"));\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 118,
                "end": 196
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"sticky-list\");\n  $mask-offset-top: get(\"mask-offset-top\");\n  $mask-offset-bottom: get(\"mask-offset-bottom\");\n  $type-size: get(\"type-size\");\n  $sticky-top: get(\"sticky-top\");\n\n  #{ $prefix } {\n    padding: get(\"margin\") 0;\n  }\n  @include breakpoint.min(get(\"breakpoint\")) {\n    #{ $prefix } {\n      display: flex;\n      align-items: flex-start;\n      gap: get(\"gap\");\n      position: relative;\n      @if ($type-size and typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      } @else if ($type-size) {\n        @warn \"Unable to find '#{$type-size}' typography size for title\";\n      }\n    }\n    #{ $prefix }__title,\n    #{ $prefix } > :not(ul) {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      flex-basis: get(\"title-width\");\n      min-width: get(\"title-min-width\");\n      padding-top: $mask-offset-top;\n      padding-bottom: $mask-offset-bottom;\n      text-align: get(\"title-text-align\");\n    }\n    #{ $prefix }__list,\n    #{ $prefix } > ul {\n      list-style: none;\n      margin: 0;\n      display: flex;\n      flex-direction: column;\n      justify-content: space-between;\n      align-self: stretch;\n    }\n    #{ $prefix }__item,\n    #{ $prefix } > ul > li {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      margin: 0 !important; // If in editor (to complicated for :not())\n      padding: $mask-offset-top get(\"item-padding-x\") $mask-offset-bottom get(\"item-padding-x\");\n      @include set-background(get(\"background-color\"));\n    }\n    #{ $prefix }__item:first-child,\n    #{ $prefix } > ul > li:first-child {\n      margin-top: 0;\n    }\n    #{ $prefix }__item:last-child,\n    #{ $prefix } > ul > li:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Print out any contextual background styles\n  @each $props in get(\"background-contexts\") {\n    $selector: map.get($props, \"selector\");\n    $item-padding-x: map.get($props, \"item-padding-x\");\n    @include breakpoint.min(get(\"breakpoint\")) {\n      #{ $selector } {\n        #{ $prefix }__item,\n        #{ $prefix } > ul > li {\n          @if ($item-padding-x) {\n            padding-left: $item-padding-x;\n            padding-right: $item-padding-x;\n          }\n          @include set-background(map.get($props, \"background-color\"));\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 118,
                "end": 196
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"sticky-list\");\n  $mask-offset-top: get(\"mask-offset-top\");\n  $mask-offset-bottom: get(\"mask-offset-bottom\");\n  $type-size: get(\"type-size\");\n  $sticky-top: get(\"sticky-top\");\n\n  #{ $prefix } {\n    padding: get(\"margin\") 0;\n  }\n  @include breakpoint.min(get(\"breakpoint\")) {\n    #{ $prefix } {\n      display: flex;\n      align-items: flex-start;\n      gap: get(\"gap\");\n      position: relative;\n      @if ($type-size and typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      } @else if ($type-size) {\n        @warn \"Unable to find '#{$type-size}' typography size for title\";\n      }\n    }\n    #{ $prefix }__title,\n    #{ $prefix } > :not(ul) {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      flex-basis: get(\"title-width\");\n      min-width: get(\"title-min-width\");\n      padding-top: $mask-offset-top;\n      padding-bottom: $mask-offset-bottom;\n      text-align: get(\"title-text-align\");\n    }\n    #{ $prefix }__list,\n    #{ $prefix } > ul {\n      list-style: none;\n      margin: 0;\n      display: flex;\n      flex-direction: column;\n      justify-content: space-between;\n      align-self: stretch;\n    }\n    #{ $prefix }__item,\n    #{ $prefix } > ul > li {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      margin: 0 !important; // If in editor (to complicated for :not())\n      padding: $mask-offset-top get(\"item-padding-x\") $mask-offset-bottom get(\"item-padding-x\");\n      @include set-background(get(\"background-color\"));\n    }\n    #{ $prefix }__item:first-child,\n    #{ $prefix } > ul > li:first-child {\n      margin-top: 0;\n    }\n    #{ $prefix }__item:last-child,\n    #{ $prefix } > ul > li:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Print out any contextual background styles\n  @each $props in get(\"background-contexts\") {\n    $selector: map.get($props, \"selector\");\n    $item-padding-x: map.get($props, \"item-padding-x\");\n    @include breakpoint.min(get(\"breakpoint\")) {\n      #{ $selector } {\n        #{ $prefix }__item,\n        #{ $prefix } > ul > li {\n          @if ($item-padding-x) {\n            padding-left: $item-padding-x;\n            padding-right: $item-padding-x;\n          }\n          @include set-background(map.get($props, \"background-color\"));\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 118,
                "end": 196
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"sticky-list\");\n  $mask-offset-top: get(\"mask-offset-top\");\n  $mask-offset-bottom: get(\"mask-offset-bottom\");\n  $type-size: get(\"type-size\");\n  $sticky-top: get(\"sticky-top\");\n\n  #{ $prefix } {\n    padding: get(\"margin\") 0;\n  }\n  @include breakpoint.min(get(\"breakpoint\")) {\n    #{ $prefix } {\n      display: flex;\n      align-items: flex-start;\n      gap: get(\"gap\");\n      position: relative;\n      @if ($type-size and typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      } @else if ($type-size) {\n        @warn \"Unable to find '#{$type-size}' typography size for title\";\n      }\n    }\n    #{ $prefix }__title,\n    #{ $prefix } > :not(ul) {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      flex-basis: get(\"title-width\");\n      min-width: get(\"title-min-width\");\n      padding-top: $mask-offset-top;\n      padding-bottom: $mask-offset-bottom;\n      text-align: get(\"title-text-align\");\n    }\n    #{ $prefix }__list,\n    #{ $prefix } > ul {\n      list-style: none;\n      margin: 0;\n      display: flex;\n      flex-direction: column;\n      justify-content: space-between;\n      align-self: stretch;\n    }\n    #{ $prefix }__item,\n    #{ $prefix } > ul > li {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      margin: 0 !important; // If in editor (to complicated for :not())\n      padding: $mask-offset-top get(\"item-padding-x\") $mask-offset-bottom get(\"item-padding-x\");\n      @include set-background(get(\"background-color\"));\n    }\n    #{ $prefix }__item:first-child,\n    #{ $prefix } > ul > li:first-child {\n      margin-top: 0;\n    }\n    #{ $prefix }__item:last-child,\n    #{ $prefix } > ul > li:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Print out any contextual background styles\n  @each $props in get(\"background-contexts\") {\n    $selector: map.get($props, \"selector\");\n    $item-padding-x: map.get($props, \"item-padding-x\");\n    @include breakpoint.min(get(\"breakpoint\")) {\n      #{ $selector } {\n        #{ $prefix }__item,\n        #{ $prefix } > ul > li {\n          @if ($item-padding-x) {\n            padding-left: $item-padding-x;\n            padding-right: $item-padding-x;\n          }\n          @include set-background(map.get($props, \"background-color\"));\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 118,
                "end": 196
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"sticky-list\");\n  $mask-offset-top: get(\"mask-offset-top\");\n  $mask-offset-bottom: get(\"mask-offset-bottom\");\n  $type-size: get(\"type-size\");\n  $sticky-top: get(\"sticky-top\");\n\n  #{ $prefix } {\n    padding: get(\"margin\") 0;\n  }\n  @include breakpoint.min(get(\"breakpoint\")) {\n    #{ $prefix } {\n      display: flex;\n      align-items: flex-start;\n      gap: get(\"gap\");\n      position: relative;\n      @if ($type-size and typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      } @else if ($type-size) {\n        @warn \"Unable to find '#{$type-size}' typography size for title\";\n      }\n    }\n    #{ $prefix }__title,\n    #{ $prefix } > :not(ul) {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      flex-basis: get(\"title-width\");\n      min-width: get(\"title-min-width\");\n      padding-top: $mask-offset-top;\n      padding-bottom: $mask-offset-bottom;\n      text-align: get(\"title-text-align\");\n    }\n    #{ $prefix }__list,\n    #{ $prefix } > ul {\n      list-style: none;\n      margin: 0;\n      display: flex;\n      flex-direction: column;\n      justify-content: space-between;\n      align-self: stretch;\n    }\n    #{ $prefix }__item,\n    #{ $prefix } > ul > li {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      margin: 0 !important; // If in editor (to complicated for :not())\n      padding: $mask-offset-top get(\"item-padding-x\") $mask-offset-bottom get(\"item-padding-x\");\n      @include set-background(get(\"background-color\"));\n    }\n    #{ $prefix }__item:first-child,\n    #{ $prefix } > ul > li:first-child {\n      margin-top: 0;\n    }\n    #{ $prefix }__item:last-child,\n    #{ $prefix } > ul > li:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Print out any contextual background styles\n  @each $props in get(\"background-contexts\") {\n    $selector: map.get($props, \"selector\");\n    $item-padding-x: map.get($props, \"item-padding-x\");\n    @include breakpoint.min(get(\"breakpoint\")) {\n      #{ $selector } {\n        #{ $prefix }__item,\n        #{ $prefix } > ul > li {\n          @if ($item-padding-x) {\n            padding-left: $item-padding-x;\n            padding-right: $item-padding-x;\n          }\n          @include set-background(map.get($props, \"background-color\"));\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 118,
                "end": 196
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"sticky-list\");\n  $mask-offset-top: get(\"mask-offset-top\");\n  $mask-offset-bottom: get(\"mask-offset-bottom\");\n  $type-size: get(\"type-size\");\n  $sticky-top: get(\"sticky-top\");\n\n  #{ $prefix } {\n    padding: get(\"margin\") 0;\n  }\n  @include breakpoint.min(get(\"breakpoint\")) {\n    #{ $prefix } {\n      display: flex;\n      align-items: flex-start;\n      gap: get(\"gap\");\n      position: relative;\n      @if ($type-size and typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      } @else if ($type-size) {\n        @warn \"Unable to find '#{$type-size}' typography size for title\";\n      }\n    }\n    #{ $prefix }__title,\n    #{ $prefix } > :not(ul) {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      flex-basis: get(\"title-width\");\n      min-width: get(\"title-min-width\");\n      padding-top: $mask-offset-top;\n      padding-bottom: $mask-offset-bottom;\n      text-align: get(\"title-text-align\");\n    }\n    #{ $prefix }__list,\n    #{ $prefix } > ul {\n      list-style: none;\n      margin: 0;\n      display: flex;\n      flex-direction: column;\n      justify-content: space-between;\n      align-self: stretch;\n    }\n    #{ $prefix }__item,\n    #{ $prefix } > ul > li {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      margin: 0 !important; // If in editor (to complicated for :not())\n      padding: $mask-offset-top get(\"item-padding-x\") $mask-offset-bottom get(\"item-padding-x\");\n      @include set-background(get(\"background-color\"));\n    }\n    #{ $prefix }__item:first-child,\n    #{ $prefix } > ul > li:first-child {\n      margin-top: 0;\n    }\n    #{ $prefix }__item:last-child,\n    #{ $prefix } > ul > li:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Print out any contextual background styles\n  @each $props in get(\"background-contexts\") {\n    $selector: map.get($props, \"selector\");\n    $item-padding-x: map.get($props, \"item-padding-x\");\n    @include breakpoint.min(get(\"breakpoint\")) {\n      #{ $selector } {\n        #{ $prefix }__item,\n        #{ $prefix } > ul > li {\n          @if ($item-padding-x) {\n            padding-left: $item-padding-x;\n            padding-right: $item-padding-x;\n          }\n          @include set-background(map.get($props, \"background-color\"));\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 118,
                "end": 196
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"sticky-list\");\n  $mask-offset-top: get(\"mask-offset-top\");\n  $mask-offset-bottom: get(\"mask-offset-bottom\");\n  $type-size: get(\"type-size\");\n  $sticky-top: get(\"sticky-top\");\n\n  #{ $prefix } {\n    padding: get(\"margin\") 0;\n  }\n  @include breakpoint.min(get(\"breakpoint\")) {\n    #{ $prefix } {\n      display: flex;\n      align-items: flex-start;\n      gap: get(\"gap\");\n      position: relative;\n      @if ($type-size and typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      } @else if ($type-size) {\n        @warn \"Unable to find '#{$type-size}' typography size for title\";\n      }\n    }\n    #{ $prefix }__title,\n    #{ $prefix } > :not(ul) {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      flex-basis: get(\"title-width\");\n      min-width: get(\"title-min-width\");\n      padding-top: $mask-offset-top;\n      padding-bottom: $mask-offset-bottom;\n      text-align: get(\"title-text-align\");\n    }\n    #{ $prefix }__list,\n    #{ $prefix } > ul {\n      list-style: none;\n      margin: 0;\n      display: flex;\n      flex-direction: column;\n      justify-content: space-between;\n      align-self: stretch;\n    }\n    #{ $prefix }__item,\n    #{ $prefix } > ul > li {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      margin: 0 !important; // If in editor (to complicated for :not())\n      padding: $mask-offset-top get(\"item-padding-x\") $mask-offset-bottom get(\"item-padding-x\");\n      @include set-background(get(\"background-color\"));\n    }\n    #{ $prefix }__item:first-child,\n    #{ $prefix } > ul > li:first-child {\n      margin-top: 0;\n    }\n    #{ $prefix }__item:last-child,\n    #{ $prefix } > ul > li:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Print out any contextual background styles\n  @each $props in get(\"background-contexts\") {\n    $selector: map.get($props, \"selector\");\n    $item-padding-x: map.get($props, \"item-padding-x\");\n    @include breakpoint.min(get(\"breakpoint\")) {\n      #{ $selector } {\n        #{ $prefix }__item,\n        #{ $prefix } > ul > li {\n          @if ($item-padding-x) {\n            padding-left: $item-padding-x;\n            padding-right: $item-padding-x;\n          }\n          @include set-background(map.get($props, \"background-color\"));\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 118,
                "end": 196
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"sticky-list\");\n  $mask-offset-top: get(\"mask-offset-top\");\n  $mask-offset-bottom: get(\"mask-offset-bottom\");\n  $type-size: get(\"type-size\");\n  $sticky-top: get(\"sticky-top\");\n\n  #{ $prefix } {\n    padding: get(\"margin\") 0;\n  }\n  @include breakpoint.min(get(\"breakpoint\")) {\n    #{ $prefix } {\n      display: flex;\n      align-items: flex-start;\n      gap: get(\"gap\");\n      position: relative;\n      @if ($type-size and typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      } @else if ($type-size) {\n        @warn \"Unable to find '#{$type-size}' typography size for title\";\n      }\n    }\n    #{ $prefix }__title,\n    #{ $prefix } > :not(ul) {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      flex-basis: get(\"title-width\");\n      min-width: get(\"title-min-width\");\n      padding-top: $mask-offset-top;\n      padding-bottom: $mask-offset-bottom;\n      text-align: get(\"title-text-align\");\n    }\n    #{ $prefix }__list,\n    #{ $prefix } > ul {\n      list-style: none;\n      margin: 0;\n      display: flex;\n      flex-direction: column;\n      justify-content: space-between;\n      align-self: stretch;\n    }\n    #{ $prefix }__item,\n    #{ $prefix } > ul > li {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      margin: 0 !important; // If in editor (to complicated for :not())\n      padding: $mask-offset-top get(\"item-padding-x\") $mask-offset-bottom get(\"item-padding-x\");\n      @include set-background(get(\"background-color\"));\n    }\n    #{ $prefix }__item:first-child,\n    #{ $prefix } > ul > li:first-child {\n      margin-top: 0;\n    }\n    #{ $prefix }__item:last-child,\n    #{ $prefix } > ul > li:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Print out any contextual background styles\n  @each $props in get(\"background-contexts\") {\n    $selector: map.get($props, \"selector\");\n    $item-padding-x: map.get($props, \"item-padding-x\");\n    @include breakpoint.min(get(\"breakpoint\")) {\n      #{ $selector } {\n        #{ $prefix }__item,\n        #{ $prefix } > ul > li {\n          @if ($item-padding-x) {\n            padding-left: $item-padding-x;\n            padding-right: $item-padding-x;\n          }\n          @include set-background(map.get($props, \"background-color\"));\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 118,
                "end": 196
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"sticky-list\");\n  $mask-offset-top: get(\"mask-offset-top\");\n  $mask-offset-bottom: get(\"mask-offset-bottom\");\n  $type-size: get(\"type-size\");\n  $sticky-top: get(\"sticky-top\");\n\n  #{ $prefix } {\n    padding: get(\"margin\") 0;\n  }\n  @include breakpoint.min(get(\"breakpoint\")) {\n    #{ $prefix } {\n      display: flex;\n      align-items: flex-start;\n      gap: get(\"gap\");\n      position: relative;\n      @if ($type-size and typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      } @else if ($type-size) {\n        @warn \"Unable to find '#{$type-size}' typography size for title\";\n      }\n    }\n    #{ $prefix }__title,\n    #{ $prefix } > :not(ul) {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      flex-basis: get(\"title-width\");\n      min-width: get(\"title-min-width\");\n      padding-top: $mask-offset-top;\n      padding-bottom: $mask-offset-bottom;\n      text-align: get(\"title-text-align\");\n    }\n    #{ $prefix }__list,\n    #{ $prefix } > ul {\n      list-style: none;\n      margin: 0;\n      display: flex;\n      flex-direction: column;\n      justify-content: space-between;\n      align-self: stretch;\n    }\n    #{ $prefix }__item,\n    #{ $prefix } > ul > li {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      margin: 0 !important; // If in editor (to complicated for :not())\n      padding: $mask-offset-top get(\"item-padding-x\") $mask-offset-bottom get(\"item-padding-x\");\n      @include set-background(get(\"background-color\"));\n    }\n    #{ $prefix }__item:first-child,\n    #{ $prefix } > ul > li:first-child {\n      margin-top: 0;\n    }\n    #{ $prefix }__item:last-child,\n    #{ $prefix } > ul > li:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Print out any contextual background styles\n  @each $props in get(\"background-contexts\") {\n    $selector: map.get($props, \"selector\");\n    $item-padding-x: map.get($props, \"item-padding-x\");\n    @include breakpoint.min(get(\"breakpoint\")) {\n      #{ $selector } {\n        #{ $prefix }__item,\n        #{ $prefix } > ul > li {\n          @if ($item-padding-x) {\n            padding-left: $item-padding-x;\n            padding-right: $item-padding-x;\n          }\n          @include set-background(map.get($props, \"background-color\"));\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 118,
                "end": 196
              }
            }
          },
          {
            "description": "Outputs background color mask CSS (gradient from transparent to original color)\n",
            "context": {
              "type": "mixin",
              "name": "set-background",
              "code": "\n  $color: color.get($color);\n  $color-transparent: sassColor.change($color, $alpha: 0);\n  background-color: $color;\n  background: linear-gradient(180deg, $color-transparent 0%, $color get(\"mask-offset-top\"));\n",
              "line": {
                "start": 201,
                "end": 206
              }
            }
          },
          {
            "description": "Outputs background color mask CSS (gradient from transparent to original color)\n",
            "context": {
              "type": "mixin",
              "name": "set-background",
              "code": "\n  $color: color.get($color);\n  $color-transparent: sassColor.change($color, $alpha: 0);\n  background-color: $color;\n  background: linear-gradient(180deg, $color-transparent 0%, $color get(\"mask-offset-top\"));\n",
              "line": {
                "start": 201,
                "end": 206
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"table-scroller\");\n  \n  #{ $prefix } {\n    width: 100%;\n    overflow-x: auto;\n    margin: get(\"margin\");\n    > table {\n      min-width: 100%;\n      max-width: none;\n    }\n  }\n  #{ $prefix }--nowrap {\n    > table > thead th {\n      white-space: nowrap;\n    }\n  }\n",
              "line": {
                "start": 46,
                "end": 63
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 121,
                "end": 283
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Output component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  $prefix: selector.class(\"tagged\");\n\n  #{ $prefix } {\n    position: relative;\n  }\n  #{ $prefix }__tag {\n    position: absolute;\n    top: var(--ulu-tagged-y, get(\"position-y\"));\n    right: var(--ulu-tagged-x, get(\"position-x\"));\n    transform: var(--ulu-tagged-transform, get(\"transform\"));\n    margin: 0; // So it doesn't interfere if present\n  }\n",
              "line": {
                "start": 45,
                "end": 59
              }
            }
          },
          {
            "description": "Output component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  $prefix: selector.class(\"tagged\");\n\n  #{ $prefix } {\n    position: relative;\n  }\n  #{ $prefix }__tag {\n    position: absolute;\n    top: var(--ulu-tagged-y, get(\"position-y\"));\n    right: var(--ulu-tagged-x, get(\"position-x\"));\n    transform: var(--ulu-tagged-transform, get(\"transform\"));\n    margin: 0; // So it doesn't interfere if present\n  }\n",
              "line": {
                "start": 45,
                "end": 59
              }
            }
          },
          {
            "description": "Output component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  $prefix: selector.class(\"tagged\");\n\n  #{ $prefix } {\n    position: relative;\n  }\n  #{ $prefix }__tag {\n    position: absolute;\n    top: var(--ulu-tagged-y, get(\"position-y\"));\n    right: var(--ulu-tagged-x, get(\"position-x\"));\n    transform: var(--ulu-tagged-transform, get(\"transform\"));\n    margin: 0; // So it doesn't interfere if present\n  }\n",
              "line": {
                "start": 45,
                "end": 59
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tile-button\");\n\n  #{ $prefix } {\n    white-space: normal;\n    margin: 0;\n    height: 100%;\n    width: 100%;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    text-align: center;\n    padding: get(\"padding\");\n    border-radius: get(\"border-radius\");\n    line-height: get(\"line-height\");\n    @if get(\"transition-enabled\") {\n      transition-duration: get(\"transition-duration\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n  #{ $prefix }__row {\n    \n    & + & {\n      margin-top: get(\"row-margin\");\n    }\n  }\n\n  $desc-size: get(\"description-size\");\n\n  @if ($desc-size and typography.has-size($desc-size)) {\n    #{ $prefix }__row--description {\n      @include typography.size($desc-size, $only-font-size: true);\n    }\n  }\n  // Special row style for icons (optionally transparent)\n  #{ $prefix }__row--icon {\n    margin: 0 auto;\n    opacity: get(\"icon-opacity\");\n    font-size: get(\"icon-font-size\");\n    & + #{ $prefix }__row {\n      margin-top: get(\"icon-margin\");\n    }\n  }\n",
              "line": {
                "start": 86,
                "end": 130
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tile-button\");\n\n  #{ $prefix } {\n    white-space: normal;\n    margin: 0;\n    height: 100%;\n    width: 100%;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    text-align: center;\n    padding: get(\"padding\");\n    border-radius: get(\"border-radius\");\n    line-height: get(\"line-height\");\n    @if get(\"transition-enabled\") {\n      transition-duration: get(\"transition-duration\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n  #{ $prefix }__row {\n    \n    & + & {\n      margin-top: get(\"row-margin\");\n    }\n  }\n\n  $desc-size: get(\"description-size\");\n\n  @if ($desc-size and typography.has-size($desc-size)) {\n    #{ $prefix }__row--description {\n      @include typography.size($desc-size, $only-font-size: true);\n    }\n  }\n  // Special row style for icons (optionally transparent)\n  #{ $prefix }__row--icon {\n    margin: 0 auto;\n    opacity: get(\"icon-opacity\");\n    font-size: get(\"icon-font-size\");\n    & + #{ $prefix }__row {\n      margin-top: get(\"icon-margin\");\n    }\n  }\n",
              "line": {
                "start": 86,
                "end": 130
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tile-button\");\n\n  #{ $prefix } {\n    white-space: normal;\n    margin: 0;\n    height: 100%;\n    width: 100%;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    text-align: center;\n    padding: get(\"padding\");\n    border-radius: get(\"border-radius\");\n    line-height: get(\"line-height\");\n    @if get(\"transition-enabled\") {\n      transition-duration: get(\"transition-duration\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n  #{ $prefix }__row {\n    \n    & + & {\n      margin-top: get(\"row-margin\");\n    }\n  }\n\n  $desc-size: get(\"description-size\");\n\n  @if ($desc-size and typography.has-size($desc-size)) {\n    #{ $prefix }__row--description {\n      @include typography.size($desc-size, $only-font-size: true);\n    }\n  }\n  // Special row style for icons (optionally transparent)\n  #{ $prefix }__row--icon {\n    margin: 0 auto;\n    opacity: get(\"icon-opacity\");\n    font-size: get(\"icon-font-size\");\n    & + #{ $prefix }__row {\n      margin-top: get(\"icon-margin\");\n    }\n  }\n",
              "line": {
                "start": 86,
                "end": 130
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tile-button\");\n\n  #{ $prefix } {\n    white-space: normal;\n    margin: 0;\n    height: 100%;\n    width: 100%;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    text-align: center;\n    padding: get(\"padding\");\n    border-radius: get(\"border-radius\");\n    line-height: get(\"line-height\");\n    @if get(\"transition-enabled\") {\n      transition-duration: get(\"transition-duration\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n  #{ $prefix }__row {\n    \n    & + & {\n      margin-top: get(\"row-margin\");\n    }\n  }\n\n  $desc-size: get(\"description-size\");\n\n  @if ($desc-size and typography.has-size($desc-size)) {\n    #{ $prefix }__row--description {\n      @include typography.size($desc-size, $only-font-size: true);\n    }\n  }\n  // Special row style for icons (optionally transparent)\n  #{ $prefix }__row--icon {\n    margin: 0 auto;\n    opacity: get(\"icon-opacity\");\n    font-size: get(\"icon-font-size\");\n    & + #{ $prefix }__row {\n      margin-top: get(\"icon-margin\");\n    }\n  }\n",
              "line": {
                "start": 86,
                "end": 130
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tile-button\");\n\n  #{ $prefix } {\n    white-space: normal;\n    margin: 0;\n    height: 100%;\n    width: 100%;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    text-align: center;\n    padding: get(\"padding\");\n    border-radius: get(\"border-radius\");\n    line-height: get(\"line-height\");\n    @if get(\"transition-enabled\") {\n      transition-duration: get(\"transition-duration\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n  #{ $prefix }__row {\n    \n    & + & {\n      margin-top: get(\"row-margin\");\n    }\n  }\n\n  $desc-size: get(\"description-size\");\n\n  @if ($desc-size and typography.has-size($desc-size)) {\n    #{ $prefix }__row--description {\n      @include typography.size($desc-size, $only-font-size: true);\n    }\n  }\n  // Special row style for icons (optionally transparent)\n  #{ $prefix }__row--icon {\n    margin: 0 auto;\n    opacity: get(\"icon-opacity\");\n    font-size: get(\"icon-font-size\");\n    & + #{ $prefix }__row {\n      margin-top: get(\"icon-margin\");\n    }\n  }\n",
              "line": {
                "start": 86,
                "end": 130
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tile-button\");\n\n  #{ $prefix } {\n    white-space: normal;\n    margin: 0;\n    height: 100%;\n    width: 100%;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    text-align: center;\n    padding: get(\"padding\");\n    border-radius: get(\"border-radius\");\n    line-height: get(\"line-height\");\n    @if get(\"transition-enabled\") {\n      transition-duration: get(\"transition-duration\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n  #{ $prefix }__row {\n    \n    & + & {\n      margin-top: get(\"row-margin\");\n    }\n  }\n\n  $desc-size: get(\"description-size\");\n\n  @if ($desc-size and typography.has-size($desc-size)) {\n    #{ $prefix }__row--description {\n      @include typography.size($desc-size, $only-font-size: true);\n    }\n  }\n  // Special row style for icons (optionally transparent)\n  #{ $prefix }__row--icon {\n    margin: 0 auto;\n    opacity: get(\"icon-opacity\");\n    font-size: get(\"icon-font-size\");\n    & + #{ $prefix }__row {\n      margin-top: get(\"icon-margin\");\n    }\n  }\n",
              "line": {
                "start": 86,
                "end": 130
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tile-button\");\n\n  #{ $prefix } {\n    white-space: normal;\n    margin: 0;\n    height: 100%;\n    width: 100%;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    text-align: center;\n    padding: get(\"padding\");\n    border-radius: get(\"border-radius\");\n    line-height: get(\"line-height\");\n    @if get(\"transition-enabled\") {\n      transition-duration: get(\"transition-duration\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n  #{ $prefix }__row {\n    \n    & + & {\n      margin-top: get(\"row-margin\");\n    }\n  }\n\n  $desc-size: get(\"description-size\");\n\n  @if ($desc-size and typography.has-size($desc-size)) {\n    #{ $prefix }__row--description {\n      @include typography.size($desc-size, $only-font-size: true);\n    }\n  }\n  // Special row style for icons (optionally transparent)\n  #{ $prefix }__row--icon {\n    margin: 0 auto;\n    opacity: get(\"icon-opacity\");\n    font-size: get(\"icon-font-size\");\n    & + #{ $prefix }__row {\n      margin-top: get(\"icon-margin\");\n    }\n  }\n",
              "line": {
                "start": 86,
                "end": 130
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tile-button\");\n\n  #{ $prefix } {\n    white-space: normal;\n    margin: 0;\n    height: 100%;\n    width: 100%;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    text-align: center;\n    padding: get(\"padding\");\n    border-radius: get(\"border-radius\");\n    line-height: get(\"line-height\");\n    @if get(\"transition-enabled\") {\n      transition-duration: get(\"transition-duration\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n  #{ $prefix }__row {\n    \n    & + & {\n      margin-top: get(\"row-margin\");\n    }\n  }\n\n  $desc-size: get(\"description-size\");\n\n  @if ($desc-size and typography.has-size($desc-size)) {\n    #{ $prefix }__row--description {\n      @include typography.size($desc-size, $only-font-size: true);\n    }\n  }\n  // Special row style for icons (optionally transparent)\n  #{ $prefix }__row--icon {\n    margin: 0 auto;\n    opacity: get(\"icon-opacity\");\n    font-size: get(\"icon-font-size\");\n    & + #{ $prefix }__row {\n      margin-top: get(\"icon-margin\");\n    }\n  }\n",
              "line": {
                "start": 86,
                "end": 130
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tile-button\");\n\n  #{ $prefix } {\n    white-space: normal;\n    margin: 0;\n    height: 100%;\n    width: 100%;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    text-align: center;\n    padding: get(\"padding\");\n    border-radius: get(\"border-radius\");\n    line-height: get(\"line-height\");\n    @if get(\"transition-enabled\") {\n      transition-duration: get(\"transition-duration\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n  #{ $prefix }__row {\n    \n    & + & {\n      margin-top: get(\"row-margin\");\n    }\n  }\n\n  $desc-size: get(\"description-size\");\n\n  @if ($desc-size and typography.has-size($desc-size)) {\n    #{ $prefix }__row--description {\n      @include typography.size($desc-size, $only-font-size: true);\n    }\n  }\n  // Special row style for icons (optionally transparent)\n  #{ $prefix }__row--icon {\n    margin: 0 auto;\n    opacity: get(\"icon-opacity\");\n    font-size: get(\"icon-font-size\");\n    & + #{ $prefix }__row {\n      margin-top: get(\"icon-margin\");\n    }\n  }\n",
              "line": {
                "start": 86,
                "end": 130
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tile-button\");\n\n  #{ $prefix } {\n    white-space: normal;\n    margin: 0;\n    height: 100%;\n    width: 100%;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    text-align: center;\n    padding: get(\"padding\");\n    border-radius: get(\"border-radius\");\n    line-height: get(\"line-height\");\n    @if get(\"transition-enabled\") {\n      transition-duration: get(\"transition-duration\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n  #{ $prefix }__row {\n    \n    & + & {\n      margin-top: get(\"row-margin\");\n    }\n  }\n\n  $desc-size: get(\"description-size\");\n\n  @if ($desc-size and typography.has-size($desc-size)) {\n    #{ $prefix }__row--description {\n      @include typography.size($desc-size, $only-font-size: true);\n    }\n  }\n  // Special row style for icons (optionally transparent)\n  #{ $prefix }__row--icon {\n    margin: 0 auto;\n    opacity: get(\"icon-opacity\");\n    font-size: get(\"icon-font-size\");\n    & + #{ $prefix }__row {\n      margin-top: get(\"icon-margin\");\n    }\n  }\n",
              "line": {
                "start": 86,
                "end": 130
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tile-button\");\n\n  #{ $prefix } {\n    white-space: normal;\n    margin: 0;\n    height: 100%;\n    width: 100%;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    text-align: center;\n    padding: get(\"padding\");\n    border-radius: get(\"border-radius\");\n    line-height: get(\"line-height\");\n    @if get(\"transition-enabled\") {\n      transition-duration: get(\"transition-duration\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n  #{ $prefix }__row {\n    \n    & + & {\n      margin-top: get(\"row-margin\");\n    }\n  }\n\n  $desc-size: get(\"description-size\");\n\n  @if ($desc-size and typography.has-size($desc-size)) {\n    #{ $prefix }__row--description {\n      @include typography.size($desc-size, $only-font-size: true);\n    }\n  }\n  // Special row style for icons (optionally transparent)\n  #{ $prefix }__row--icon {\n    margin: 0 auto;\n    opacity: get(\"icon-opacity\");\n    font-size: get(\"icon-font-size\");\n    & + #{ $prefix }__row {\n      margin-top: get(\"icon-margin\");\n    }\n  }\n",
              "line": {
                "start": 86,
                "end": 130
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tile-grid\");\n\n  #{ $prefix } {\n    display: grid;\n    gap: get(\"gap\");\n    grid-template-columns: repeat(auto-fit, minmax(get(\"width\"), 1fr));\n    grid-auto-rows: 1fr;\n  }\n  #{ $prefix }__item {\n    aspect-ratio: get(\"aspect-ratio\");\n  }\n  // Use with fill-context, creates the space for images/etc\n  #{ $prefix }--expanded {\n    #{ $prefix }__item {\n      width: 100%;\n      height: 100%;\n      overflow: hidden;\n    }\n  }\n\n  // Print out reflowable sizes modifiers\n  @each $modifier, $props in $sizes {\n    $width: map.get($props, \"width\");\n    $gap: map.get($props, \"gap\");\n    $aspect-ratio: map.get($props, \"aspect-ratio\");\n    \n    @if ($width or $gap) {\n      #{ $prefix }--#{ $modifier } {\n        @if utils.map-has($props, \"width\") {\n          grid-template-columns: repeat(auto-fit, minmax($width, 1fr));\n        }\n        gap: $gap;\n      }\n    }\n    @if $aspect-ratio {\n      #{ $prefix }--#{ $modifier } #{ $prefix }__item {\n        aspect-ratio: $aspect-ratio;\n      }\n    }\n  }\n\n  // Print out the static column styles\n  // - Adaptive column count per breakpoint, equal widths\n  @each $modifier, $breakpoints in $static-sizes {\n    @include breakpoint.from-each($breakpoints) using ($props) {\n      #{ $prefix }--#{ $modifier } {\n        grid-template-columns: repeat(map.get($props, \"columns\"), 1fr);\n        gap: map.get($props, \"gap\");\n      }\n      @if utils.map-contains-any($props, (\"aspect-ratio\",)) {\n        #{ $prefix }__item {\n          aspect-ratio: map.get($props, \"aspect-ratio\");\n        }\n      }\n    }\n  }\n\n  // Modifier to force no gap on grid\n  #{ $prefix }--no-gap {\n    gap: 0 !important;\n  }\n",
              "line": {
                "start": 109,
                "end": 171
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tile-grid\");\n\n  #{ $prefix } {\n    display: grid;\n    gap: get(\"gap\");\n    grid-template-columns: repeat(auto-fit, minmax(get(\"width\"), 1fr));\n    grid-auto-rows: 1fr;\n  }\n  #{ $prefix }__item {\n    aspect-ratio: get(\"aspect-ratio\");\n  }\n  // Use with fill-context, creates the space for images/etc\n  #{ $prefix }--expanded {\n    #{ $prefix }__item {\n      width: 100%;\n      height: 100%;\n      overflow: hidden;\n    }\n  }\n\n  // Print out reflowable sizes modifiers\n  @each $modifier, $props in $sizes {\n    $width: map.get($props, \"width\");\n    $gap: map.get($props, \"gap\");\n    $aspect-ratio: map.get($props, \"aspect-ratio\");\n    \n    @if ($width or $gap) {\n      #{ $prefix }--#{ $modifier } {\n        @if utils.map-has($props, \"width\") {\n          grid-template-columns: repeat(auto-fit, minmax($width, 1fr));\n        }\n        gap: $gap;\n      }\n    }\n    @if $aspect-ratio {\n      #{ $prefix }--#{ $modifier } #{ $prefix }__item {\n        aspect-ratio: $aspect-ratio;\n      }\n    }\n  }\n\n  // Print out the static column styles\n  // - Adaptive column count per breakpoint, equal widths\n  @each $modifier, $breakpoints in $static-sizes {\n    @include breakpoint.from-each($breakpoints) using ($props) {\n      #{ $prefix }--#{ $modifier } {\n        grid-template-columns: repeat(map.get($props, \"columns\"), 1fr);\n        gap: map.get($props, \"gap\");\n      }\n      @if utils.map-contains-any($props, (\"aspect-ratio\",)) {\n        #{ $prefix }__item {\n          aspect-ratio: map.get($props, \"aspect-ratio\");\n        }\n      }\n    }\n  }\n\n  // Modifier to force no gap on grid\n  #{ $prefix }--no-gap {\n    gap: 0 !important;\n  }\n",
              "line": {
                "start": 109,
                "end": 171
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tile-grid\");\n\n  #{ $prefix } {\n    display: grid;\n    gap: get(\"gap\");\n    grid-template-columns: repeat(auto-fit, minmax(get(\"width\"), 1fr));\n    grid-auto-rows: 1fr;\n  }\n  #{ $prefix }__item {\n    aspect-ratio: get(\"aspect-ratio\");\n  }\n  // Use with fill-context, creates the space for images/etc\n  #{ $prefix }--expanded {\n    #{ $prefix }__item {\n      width: 100%;\n      height: 100%;\n      overflow: hidden;\n    }\n  }\n\n  // Print out reflowable sizes modifiers\n  @each $modifier, $props in $sizes {\n    $width: map.get($props, \"width\");\n    $gap: map.get($props, \"gap\");\n    $aspect-ratio: map.get($props, \"aspect-ratio\");\n    \n    @if ($width or $gap) {\n      #{ $prefix }--#{ $modifier } {\n        @if utils.map-has($props, \"width\") {\n          grid-template-columns: repeat(auto-fit, minmax($width, 1fr));\n        }\n        gap: $gap;\n      }\n    }\n    @if $aspect-ratio {\n      #{ $prefix }--#{ $modifier } #{ $prefix }__item {\n        aspect-ratio: $aspect-ratio;\n      }\n    }\n  }\n\n  // Print out the static column styles\n  // - Adaptive column count per breakpoint, equal widths\n  @each $modifier, $breakpoints in $static-sizes {\n    @include breakpoint.from-each($breakpoints) using ($props) {\n      #{ $prefix }--#{ $modifier } {\n        grid-template-columns: repeat(map.get($props, \"columns\"), 1fr);\n        gap: map.get($props, \"gap\");\n      }\n      @if utils.map-contains-any($props, (\"aspect-ratio\",)) {\n        #{ $prefix }__item {\n          aspect-ratio: map.get($props, \"aspect-ratio\");\n        }\n      }\n    }\n  }\n\n  // Modifier to force no gap on grid\n  #{ $prefix }--no-gap {\n    gap: 0 !important;\n  }\n",
              "line": {
                "start": 109,
                "end": 171
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tile-grid\");\n\n  #{ $prefix } {\n    display: grid;\n    gap: get(\"gap\");\n    grid-template-columns: repeat(auto-fit, minmax(get(\"width\"), 1fr));\n    grid-auto-rows: 1fr;\n  }\n  #{ $prefix }__item {\n    aspect-ratio: get(\"aspect-ratio\");\n  }\n  // Use with fill-context, creates the space for images/etc\n  #{ $prefix }--expanded {\n    #{ $prefix }__item {\n      width: 100%;\n      height: 100%;\n      overflow: hidden;\n    }\n  }\n\n  // Print out reflowable sizes modifiers\n  @each $modifier, $props in $sizes {\n    $width: map.get($props, \"width\");\n    $gap: map.get($props, \"gap\");\n    $aspect-ratio: map.get($props, \"aspect-ratio\");\n    \n    @if ($width or $gap) {\n      #{ $prefix }--#{ $modifier } {\n        @if utils.map-has($props, \"width\") {\n          grid-template-columns: repeat(auto-fit, minmax($width, 1fr));\n        }\n        gap: $gap;\n      }\n    }\n    @if $aspect-ratio {\n      #{ $prefix }--#{ $modifier } #{ $prefix }__item {\n        aspect-ratio: $aspect-ratio;\n      }\n    }\n  }\n\n  // Print out the static column styles\n  // - Adaptive column count per breakpoint, equal widths\n  @each $modifier, $breakpoints in $static-sizes {\n    @include breakpoint.from-each($breakpoints) using ($props) {\n      #{ $prefix }--#{ $modifier } {\n        grid-template-columns: repeat(map.get($props, \"columns\"), 1fr);\n        gap: map.get($props, \"gap\");\n      }\n      @if utils.map-contains-any($props, (\"aspect-ratio\",)) {\n        #{ $prefix }__item {\n          aspect-ratio: map.get($props, \"aspect-ratio\");\n        }\n      }\n    }\n  }\n\n  // Modifier to force no gap on grid\n  #{ $prefix }--no-gap {\n    gap: 0 !important;\n  }\n",
              "line": {
                "start": 109,
                "end": 171
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tile-grid\");\n\n  #{ $prefix } {\n    display: grid;\n    gap: get(\"gap\");\n    grid-template-columns: repeat(auto-fit, minmax(get(\"width\"), 1fr));\n    grid-auto-rows: 1fr;\n  }\n  #{ $prefix }__item {\n    aspect-ratio: get(\"aspect-ratio\");\n  }\n  // Use with fill-context, creates the space for images/etc\n  #{ $prefix }--expanded {\n    #{ $prefix }__item {\n      width: 100%;\n      height: 100%;\n      overflow: hidden;\n    }\n  }\n\n  // Print out reflowable sizes modifiers\n  @each $modifier, $props in $sizes {\n    $width: map.get($props, \"width\");\n    $gap: map.get($props, \"gap\");\n    $aspect-ratio: map.get($props, \"aspect-ratio\");\n    \n    @if ($width or $gap) {\n      #{ $prefix }--#{ $modifier } {\n        @if utils.map-has($props, \"width\") {\n          grid-template-columns: repeat(auto-fit, minmax($width, 1fr));\n        }\n        gap: $gap;\n      }\n    }\n    @if $aspect-ratio {\n      #{ $prefix }--#{ $modifier } #{ $prefix }__item {\n        aspect-ratio: $aspect-ratio;\n      }\n    }\n  }\n\n  // Print out the static column styles\n  // - Adaptive column count per breakpoint, equal widths\n  @each $modifier, $breakpoints in $static-sizes {\n    @include breakpoint.from-each($breakpoints) using ($props) {\n      #{ $prefix }--#{ $modifier } {\n        grid-template-columns: repeat(map.get($props, \"columns\"), 1fr);\n        gap: map.get($props, \"gap\");\n      }\n      @if utils.map-contains-any($props, (\"aspect-ratio\",)) {\n        #{ $prefix }__item {\n          aspect-ratio: map.get($props, \"aspect-ratio\");\n        }\n      }\n    }\n  }\n\n  // Modifier to force no gap on grid\n  #{ $prefix }--no-gap {\n    gap: 0 !important;\n  }\n",
              "line": {
                "start": 109,
                "end": 171
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tile-grid\");\n\n  #{ $prefix } {\n    display: grid;\n    gap: get(\"gap\");\n    grid-template-columns: repeat(auto-fit, minmax(get(\"width\"), 1fr));\n    grid-auto-rows: 1fr;\n  }\n  #{ $prefix }__item {\n    aspect-ratio: get(\"aspect-ratio\");\n  }\n  // Use with fill-context, creates the space for images/etc\n  #{ $prefix }--expanded {\n    #{ $prefix }__item {\n      width: 100%;\n      height: 100%;\n      overflow: hidden;\n    }\n  }\n\n  // Print out reflowable sizes modifiers\n  @each $modifier, $props in $sizes {\n    $width: map.get($props, \"width\");\n    $gap: map.get($props, \"gap\");\n    $aspect-ratio: map.get($props, \"aspect-ratio\");\n    \n    @if ($width or $gap) {\n      #{ $prefix }--#{ $modifier } {\n        @if utils.map-has($props, \"width\") {\n          grid-template-columns: repeat(auto-fit, minmax($width, 1fr));\n        }\n        gap: $gap;\n      }\n    }\n    @if $aspect-ratio {\n      #{ $prefix }--#{ $modifier } #{ $prefix }__item {\n        aspect-ratio: $aspect-ratio;\n      }\n    }\n  }\n\n  // Print out the static column styles\n  // - Adaptive column count per breakpoint, equal widths\n  @each $modifier, $breakpoints in $static-sizes {\n    @include breakpoint.from-each($breakpoints) using ($props) {\n      #{ $prefix }--#{ $modifier } {\n        grid-template-columns: repeat(map.get($props, \"columns\"), 1fr);\n        gap: map.get($props, \"gap\");\n      }\n      @if utils.map-contains-any($props, (\"aspect-ratio\",)) {\n        #{ $prefix }__item {\n          aspect-ratio: map.get($props, \"aspect-ratio\");\n        }\n      }\n    }\n  }\n\n  // Modifier to force no gap on grid\n  #{ $prefix }--no-gap {\n    gap: 0 !important;\n  }\n",
              "line": {
                "start": 109,
                "end": 171
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tile-grid\");\n\n  #{ $prefix } {\n    display: grid;\n    gap: get(\"gap\");\n    grid-template-columns: repeat(auto-fit, minmax(get(\"width\"), 1fr));\n    grid-auto-rows: 1fr;\n  }\n  #{ $prefix }__item {\n    aspect-ratio: get(\"aspect-ratio\");\n  }\n  // Use with fill-context, creates the space for images/etc\n  #{ $prefix }--expanded {\n    #{ $prefix }__item {\n      width: 100%;\n      height: 100%;\n      overflow: hidden;\n    }\n  }\n\n  // Print out reflowable sizes modifiers\n  @each $modifier, $props in $sizes {\n    $width: map.get($props, \"width\");\n    $gap: map.get($props, \"gap\");\n    $aspect-ratio: map.get($props, \"aspect-ratio\");\n    \n    @if ($width or $gap) {\n      #{ $prefix }--#{ $modifier } {\n        @if utils.map-has($props, \"width\") {\n          grid-template-columns: repeat(auto-fit, minmax($width, 1fr));\n        }\n        gap: $gap;\n      }\n    }\n    @if $aspect-ratio {\n      #{ $prefix }--#{ $modifier } #{ $prefix }__item {\n        aspect-ratio: $aspect-ratio;\n      }\n    }\n  }\n\n  // Print out the static column styles\n  // - Adaptive column count per breakpoint, equal widths\n  @each $modifier, $breakpoints in $static-sizes {\n    @include breakpoint.from-each($breakpoints) using ($props) {\n      #{ $prefix }--#{ $modifier } {\n        grid-template-columns: repeat(map.get($props, \"columns\"), 1fr);\n        gap: map.get($props, \"gap\");\n      }\n      @if utils.map-contains-any($props, (\"aspect-ratio\",)) {\n        #{ $prefix }__item {\n          aspect-ratio: map.get($props, \"aspect-ratio\");\n        }\n      }\n    }\n  }\n\n  // Modifier to force no gap on grid\n  #{ $prefix }--no-gap {\n    gap: 0 !important;\n  }\n",
              "line": {
                "start": 109,
                "end": 171
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tile-grid\");\n\n  #{ $prefix } {\n    display: grid;\n    gap: get(\"gap\");\n    grid-template-columns: repeat(auto-fit, minmax(get(\"width\"), 1fr));\n    grid-auto-rows: 1fr;\n  }\n  #{ $prefix }__item {\n    aspect-ratio: get(\"aspect-ratio\");\n  }\n  // Use with fill-context, creates the space for images/etc\n  #{ $prefix }--expanded {\n    #{ $prefix }__item {\n      width: 100%;\n      height: 100%;\n      overflow: hidden;\n    }\n  }\n\n  // Print out reflowable sizes modifiers\n  @each $modifier, $props in $sizes {\n    $width: map.get($props, \"width\");\n    $gap: map.get($props, \"gap\");\n    $aspect-ratio: map.get($props, \"aspect-ratio\");\n    \n    @if ($width or $gap) {\n      #{ $prefix }--#{ $modifier } {\n        @if utils.map-has($props, \"width\") {\n          grid-template-columns: repeat(auto-fit, minmax($width, 1fr));\n        }\n        gap: $gap;\n      }\n    }\n    @if $aspect-ratio {\n      #{ $prefix }--#{ $modifier } #{ $prefix }__item {\n        aspect-ratio: $aspect-ratio;\n      }\n    }\n  }\n\n  // Print out the static column styles\n  // - Adaptive column count per breakpoint, equal widths\n  @each $modifier, $breakpoints in $static-sizes {\n    @include breakpoint.from-each($breakpoints) using ($props) {\n      #{ $prefix }--#{ $modifier } {\n        grid-template-columns: repeat(map.get($props, \"columns\"), 1fr);\n        gap: map.get($props, \"gap\");\n      }\n      @if utils.map-contains-any($props, (\"aspect-ratio\",)) {\n        #{ $prefix }__item {\n          aspect-ratio: map.get($props, \"aspect-ratio\");\n        }\n      }\n    }\n  }\n\n  // Modifier to force no gap on grid\n  #{ $prefix }--no-gap {\n    gap: 0 !important;\n  }\n",
              "line": {
                "start": 109,
                "end": 171
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tile-grid\");\n\n  #{ $prefix } {\n    display: grid;\n    gap: get(\"gap\");\n    grid-template-columns: repeat(auto-fit, minmax(get(\"width\"), 1fr));\n    grid-auto-rows: 1fr;\n  }\n  #{ $prefix }__item {\n    aspect-ratio: get(\"aspect-ratio\");\n  }\n  // Use with fill-context, creates the space for images/etc\n  #{ $prefix }--expanded {\n    #{ $prefix }__item {\n      width: 100%;\n      height: 100%;\n      overflow: hidden;\n    }\n  }\n\n  // Print out reflowable sizes modifiers\n  @each $modifier, $props in $sizes {\n    $width: map.get($props, \"width\");\n    $gap: map.get($props, \"gap\");\n    $aspect-ratio: map.get($props, \"aspect-ratio\");\n    \n    @if ($width or $gap) {\n      #{ $prefix }--#{ $modifier } {\n        @if utils.map-has($props, \"width\") {\n          grid-template-columns: repeat(auto-fit, minmax($width, 1fr));\n        }\n        gap: $gap;\n      }\n    }\n    @if $aspect-ratio {\n      #{ $prefix }--#{ $modifier } #{ $prefix }__item {\n        aspect-ratio: $aspect-ratio;\n      }\n    }\n  }\n\n  // Print out the static column styles\n  // - Adaptive column count per breakpoint, equal widths\n  @each $modifier, $breakpoints in $static-sizes {\n    @include breakpoint.from-each($breakpoints) using ($props) {\n      #{ $prefix }--#{ $modifier } {\n        grid-template-columns: repeat(map.get($props, \"columns\"), 1fr);\n        gap: map.get($props, \"gap\");\n      }\n      @if utils.map-contains-any($props, (\"aspect-ratio\",)) {\n        #{ $prefix }__item {\n          aspect-ratio: map.get($props, \"aspect-ratio\");\n        }\n      }\n    }\n  }\n\n  // Modifier to force no gap on grid\n  #{ $prefix }--no-gap {\n    gap: 0 !important;\n  }\n",
              "line": {
                "start": 109,
                "end": 171
              }
            }
          },
          {
            "description": "Output component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  $prefix: selector.class(\"tile-grid-overlay\");\n\n  #{ $prefix } {\n    position: relative;\n  }\n  #{ $prefix }__background-image {\n    @include layout.absolute-fill();\n    filter: get(\"background-image-filter\");\n  }\n  #{ $prefix }__grid {\n    position: relative;\n    @media print {\n      display: block;\n    }\n  }\n  #{ $prefix }__button {\n    background-color: color.get(get(\"button-background-color\"));\n    border-radius: 0;\n    padding-left: 1em;\n    padding-right: 1em;\n    &:hover,\n    &:focus {\n      // Competes with striping\n      background-color: color.get(get(\"button-background-color-hover\")) !important; \n    }\n    &.is-active {\n      // Competes with striping\n      background-color: color.get(get(\"button-background-color-active\")) !important; \n    }\n    @media print {\n      display: block;\n      text-align: left;\n      height: auto;\n      aspect-ratio: auto;\n      padding-left: 0;\n    }\n  }\n\n  // Striping\n  #{ $prefix }__item {\n    &:nth-child(even) #{ $prefix }__button {\n      background-color: color.get(get(\"button-background-color-striped\"));\n    }\n    // They want it to alternate when 2 column, so it has to flip flop\n    // Then when it returns to above or below this 2 column area odd works like before\n    @include breakpoint.min-max(\n      get(\"breakpoint-even-columns-min\"), \n      get(\"breakpoint-even-columns-max\")\n    ) {\n      @include -two-column-striping($prefix);\n    }\n  }\n\n  // When 2 columns needs the same styles as between small/medium on standard layout\n  // no way to reuse because it's inside different media queries\n  #{ $prefix }__grid--wide {\n    #{ $prefix }__item {\n      @include breakpoint.min(get(\"wide-breakpoint-even-columns-min\")) {\n        @include -two-column-striping($prefix);\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 115
              }
            }
          },
          {
            "description": "Output component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  $prefix: selector.class(\"tile-grid-overlay\");\n\n  #{ $prefix } {\n    position: relative;\n  }\n  #{ $prefix }__background-image {\n    @include layout.absolute-fill();\n    filter: get(\"background-image-filter\");\n  }\n  #{ $prefix }__grid {\n    position: relative;\n    @media print {\n      display: block;\n    }\n  }\n  #{ $prefix }__button {\n    background-color: color.get(get(\"button-background-color\"));\n    border-radius: 0;\n    padding-left: 1em;\n    padding-right: 1em;\n    &:hover,\n    &:focus {\n      // Competes with striping\n      background-color: color.get(get(\"button-background-color-hover\")) !important; \n    }\n    &.is-active {\n      // Competes with striping\n      background-color: color.get(get(\"button-background-color-active\")) !important; \n    }\n    @media print {\n      display: block;\n      text-align: left;\n      height: auto;\n      aspect-ratio: auto;\n      padding-left: 0;\n    }\n  }\n\n  // Striping\n  #{ $prefix }__item {\n    &:nth-child(even) #{ $prefix }__button {\n      background-color: color.get(get(\"button-background-color-striped\"));\n    }\n    // They want it to alternate when 2 column, so it has to flip flop\n    // Then when it returns to above or below this 2 column area odd works like before\n    @include breakpoint.min-max(\n      get(\"breakpoint-even-columns-min\"), \n      get(\"breakpoint-even-columns-max\")\n    ) {\n      @include -two-column-striping($prefix);\n    }\n  }\n\n  // When 2 columns needs the same styles as between small/medium on standard layout\n  // no way to reuse because it's inside different media queries\n  #{ $prefix }__grid--wide {\n    #{ $prefix }__item {\n      @include breakpoint.min(get(\"wide-breakpoint-even-columns-min\")) {\n        @include -two-column-striping($prefix);\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 115
              }
            }
          },
          {
            "description": "Output component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  $prefix: selector.class(\"tile-grid-overlay\");\n\n  #{ $prefix } {\n    position: relative;\n  }\n  #{ $prefix }__background-image {\n    @include layout.absolute-fill();\n    filter: get(\"background-image-filter\");\n  }\n  #{ $prefix }__grid {\n    position: relative;\n    @media print {\n      display: block;\n    }\n  }\n  #{ $prefix }__button {\n    background-color: color.get(get(\"button-background-color\"));\n    border-radius: 0;\n    padding-left: 1em;\n    padding-right: 1em;\n    &:hover,\n    &:focus {\n      // Competes with striping\n      background-color: color.get(get(\"button-background-color-hover\")) !important; \n    }\n    &.is-active {\n      // Competes with striping\n      background-color: color.get(get(\"button-background-color-active\")) !important; \n    }\n    @media print {\n      display: block;\n      text-align: left;\n      height: auto;\n      aspect-ratio: auto;\n      padding-left: 0;\n    }\n  }\n\n  // Striping\n  #{ $prefix }__item {\n    &:nth-child(even) #{ $prefix }__button {\n      background-color: color.get(get(\"button-background-color-striped\"));\n    }\n    // They want it to alternate when 2 column, so it has to flip flop\n    // Then when it returns to above or below this 2 column area odd works like before\n    @include breakpoint.min-max(\n      get(\"breakpoint-even-columns-min\"), \n      get(\"breakpoint-even-columns-max\")\n    ) {\n      @include -two-column-striping($prefix);\n    }\n  }\n\n  // When 2 columns needs the same styles as between small/medium on standard layout\n  // no way to reuse because it's inside different media queries\n  #{ $prefix }__grid--wide {\n    #{ $prefix }__item {\n      @include breakpoint.min(get(\"wide-breakpoint-even-columns-min\")) {\n        @include -two-column-striping($prefix);\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 115
              }
            }
          },
          {
            "description": "Output component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  $prefix: selector.class(\"tile-grid-overlay\");\n\n  #{ $prefix } {\n    position: relative;\n  }\n  #{ $prefix }__background-image {\n    @include layout.absolute-fill();\n    filter: get(\"background-image-filter\");\n  }\n  #{ $prefix }__grid {\n    position: relative;\n    @media print {\n      display: block;\n    }\n  }\n  #{ $prefix }__button {\n    background-color: color.get(get(\"button-background-color\"));\n    border-radius: 0;\n    padding-left: 1em;\n    padding-right: 1em;\n    &:hover,\n    &:focus {\n      // Competes with striping\n      background-color: color.get(get(\"button-background-color-hover\")) !important; \n    }\n    &.is-active {\n      // Competes with striping\n      background-color: color.get(get(\"button-background-color-active\")) !important; \n    }\n    @media print {\n      display: block;\n      text-align: left;\n      height: auto;\n      aspect-ratio: auto;\n      padding-left: 0;\n    }\n  }\n\n  // Striping\n  #{ $prefix }__item {\n    &:nth-child(even) #{ $prefix }__button {\n      background-color: color.get(get(\"button-background-color-striped\"));\n    }\n    // They want it to alternate when 2 column, so it has to flip flop\n    // Then when it returns to above or below this 2 column area odd works like before\n    @include breakpoint.min-max(\n      get(\"breakpoint-even-columns-min\"), \n      get(\"breakpoint-even-columns-max\")\n    ) {\n      @include -two-column-striping($prefix);\n    }\n  }\n\n  // When 2 columns needs the same styles as between small/medium on standard layout\n  // no way to reuse because it's inside different media queries\n  #{ $prefix }__grid--wide {\n    #{ $prefix }__item {\n      @include breakpoint.min(get(\"wide-breakpoint-even-columns-min\")) {\n        @include -two-column-striping($prefix);\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 115
              }
            }
          },
          {
            "description": "Output component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  $prefix: selector.class(\"tile-grid-overlay\");\n\n  #{ $prefix } {\n    position: relative;\n  }\n  #{ $prefix }__background-image {\n    @include layout.absolute-fill();\n    filter: get(\"background-image-filter\");\n  }\n  #{ $prefix }__grid {\n    position: relative;\n    @media print {\n      display: block;\n    }\n  }\n  #{ $prefix }__button {\n    background-color: color.get(get(\"button-background-color\"));\n    border-radius: 0;\n    padding-left: 1em;\n    padding-right: 1em;\n    &:hover,\n    &:focus {\n      // Competes with striping\n      background-color: color.get(get(\"button-background-color-hover\")) !important; \n    }\n    &.is-active {\n      // Competes with striping\n      background-color: color.get(get(\"button-background-color-active\")) !important; \n    }\n    @media print {\n      display: block;\n      text-align: left;\n      height: auto;\n      aspect-ratio: auto;\n      padding-left: 0;\n    }\n  }\n\n  // Striping\n  #{ $prefix }__item {\n    &:nth-child(even) #{ $prefix }__button {\n      background-color: color.get(get(\"button-background-color-striped\"));\n    }\n    // They want it to alternate when 2 column, so it has to flip flop\n    // Then when it returns to above or below this 2 column area odd works like before\n    @include breakpoint.min-max(\n      get(\"breakpoint-even-columns-min\"), \n      get(\"breakpoint-even-columns-max\")\n    ) {\n      @include -two-column-striping($prefix);\n    }\n  }\n\n  // When 2 columns needs the same styles as between small/medium on standard layout\n  // no way to reuse because it's inside different media queries\n  #{ $prefix }__grid--wide {\n    #{ $prefix }__item {\n      @include breakpoint.min(get(\"wide-breakpoint-even-columns-min\")) {\n        @include -two-column-striping($prefix);\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 115
              }
            }
          },
          {
            "description": "Output component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  $prefix: selector.class(\"tile-grid-overlay\");\n\n  #{ $prefix } {\n    position: relative;\n  }\n  #{ $prefix }__background-image {\n    @include layout.absolute-fill();\n    filter: get(\"background-image-filter\");\n  }\n  #{ $prefix }__grid {\n    position: relative;\n    @media print {\n      display: block;\n    }\n  }\n  #{ $prefix }__button {\n    background-color: color.get(get(\"button-background-color\"));\n    border-radius: 0;\n    padding-left: 1em;\n    padding-right: 1em;\n    &:hover,\n    &:focus {\n      // Competes with striping\n      background-color: color.get(get(\"button-background-color-hover\")) !important; \n    }\n    &.is-active {\n      // Competes with striping\n      background-color: color.get(get(\"button-background-color-active\")) !important; \n    }\n    @media print {\n      display: block;\n      text-align: left;\n      height: auto;\n      aspect-ratio: auto;\n      padding-left: 0;\n    }\n  }\n\n  // Striping\n  #{ $prefix }__item {\n    &:nth-child(even) #{ $prefix }__button {\n      background-color: color.get(get(\"button-background-color-striped\"));\n    }\n    // They want it to alternate when 2 column, so it has to flip flop\n    // Then when it returns to above or below this 2 column area odd works like before\n    @include breakpoint.min-max(\n      get(\"breakpoint-even-columns-min\"), \n      get(\"breakpoint-even-columns-max\")\n    ) {\n      @include -two-column-striping($prefix);\n    }\n  }\n\n  // When 2 columns needs the same styles as between small/medium on standard layout\n  // no way to reuse because it's inside different media queries\n  #{ $prefix }__grid--wide {\n    #{ $prefix }__item {\n      @include breakpoint.min(get(\"wide-breakpoint-even-columns-min\")) {\n        @include -two-column-striping($prefix);\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 115
              }
            }
          },
          {
            "description": "Output component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  $prefix: selector.class(\"tile-grid-overlay\");\n\n  #{ $prefix } {\n    position: relative;\n  }\n  #{ $prefix }__background-image {\n    @include layout.absolute-fill();\n    filter: get(\"background-image-filter\");\n  }\n  #{ $prefix }__grid {\n    position: relative;\n    @media print {\n      display: block;\n    }\n  }\n  #{ $prefix }__button {\n    background-color: color.get(get(\"button-background-color\"));\n    border-radius: 0;\n    padding-left: 1em;\n    padding-right: 1em;\n    &:hover,\n    &:focus {\n      // Competes with striping\n      background-color: color.get(get(\"button-background-color-hover\")) !important; \n    }\n    &.is-active {\n      // Competes with striping\n      background-color: color.get(get(\"button-background-color-active\")) !important; \n    }\n    @media print {\n      display: block;\n      text-align: left;\n      height: auto;\n      aspect-ratio: auto;\n      padding-left: 0;\n    }\n  }\n\n  // Striping\n  #{ $prefix }__item {\n    &:nth-child(even) #{ $prefix }__button {\n      background-color: color.get(get(\"button-background-color-striped\"));\n    }\n    // They want it to alternate when 2 column, so it has to flip flop\n    // Then when it returns to above or below this 2 column area odd works like before\n    @include breakpoint.min-max(\n      get(\"breakpoint-even-columns-min\"), \n      get(\"breakpoint-even-columns-max\")\n    ) {\n      @include -two-column-striping($prefix);\n    }\n  }\n\n  // When 2 columns needs the same styles as between small/medium on standard layout\n  // no way to reuse because it's inside different media queries\n  #{ $prefix }__grid--wide {\n    #{ $prefix }__item {\n      @include breakpoint.min(get(\"wide-breakpoint-even-columns-min\")) {\n        @include -two-column-striping($prefix);\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 115
              }
            }
          },
          {
            "description": "Output component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  $prefix: selector.class(\"tile-grid-overlay\");\n\n  #{ $prefix } {\n    position: relative;\n  }\n  #{ $prefix }__background-image {\n    @include layout.absolute-fill();\n    filter: get(\"background-image-filter\");\n  }\n  #{ $prefix }__grid {\n    position: relative;\n    @media print {\n      display: block;\n    }\n  }\n  #{ $prefix }__button {\n    background-color: color.get(get(\"button-background-color\"));\n    border-radius: 0;\n    padding-left: 1em;\n    padding-right: 1em;\n    &:hover,\n    &:focus {\n      // Competes with striping\n      background-color: color.get(get(\"button-background-color-hover\")) !important; \n    }\n    &.is-active {\n      // Competes with striping\n      background-color: color.get(get(\"button-background-color-active\")) !important; \n    }\n    @media print {\n      display: block;\n      text-align: left;\n      height: auto;\n      aspect-ratio: auto;\n      padding-left: 0;\n    }\n  }\n\n  // Striping\n  #{ $prefix }__item {\n    &:nth-child(even) #{ $prefix }__button {\n      background-color: color.get(get(\"button-background-color-striped\"));\n    }\n    // They want it to alternate when 2 column, so it has to flip flop\n    // Then when it returns to above or below this 2 column area odd works like before\n    @include breakpoint.min-max(\n      get(\"breakpoint-even-columns-min\"), \n      get(\"breakpoint-even-columns-max\")\n    ) {\n      @include -two-column-striping($prefix);\n    }\n  }\n\n  // When 2 columns needs the same styles as between small/medium on standard layout\n  // no way to reuse because it's inside different media queries\n  #{ $prefix }__grid--wide {\n    #{ $prefix }__item {\n      @include breakpoint.min(get(\"wide-breakpoint-even-columns-min\")) {\n        @include -two-column-striping($prefix);\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 115
              }
            }
          },
          {
            "description": "Output component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  $prefix: selector.class(\"tile-grid-overlay\");\n\n  #{ $prefix } {\n    position: relative;\n  }\n  #{ $prefix }__background-image {\n    @include layout.absolute-fill();\n    filter: get(\"background-image-filter\");\n  }\n  #{ $prefix }__grid {\n    position: relative;\n    @media print {\n      display: block;\n    }\n  }\n  #{ $prefix }__button {\n    background-color: color.get(get(\"button-background-color\"));\n    border-radius: 0;\n    padding-left: 1em;\n    padding-right: 1em;\n    &:hover,\n    &:focus {\n      // Competes with striping\n      background-color: color.get(get(\"button-background-color-hover\")) !important; \n    }\n    &.is-active {\n      // Competes with striping\n      background-color: color.get(get(\"button-background-color-active\")) !important; \n    }\n    @media print {\n      display: block;\n      text-align: left;\n      height: auto;\n      aspect-ratio: auto;\n      padding-left: 0;\n    }\n  }\n\n  // Striping\n  #{ $prefix }__item {\n    &:nth-child(even) #{ $prefix }__button {\n      background-color: color.get(get(\"button-background-color-striped\"));\n    }\n    // They want it to alternate when 2 column, so it has to flip flop\n    // Then when it returns to above or below this 2 column area odd works like before\n    @include breakpoint.min-max(\n      get(\"breakpoint-even-columns-min\"), \n      get(\"breakpoint-even-columns-max\")\n    ) {\n      @include -two-column-striping($prefix);\n    }\n  }\n\n  // When 2 columns needs the same styles as between small/medium on standard layout\n  // no way to reuse because it's inside different media queries\n  #{ $prefix }__grid--wide {\n    #{ $prefix }__item {\n      @include breakpoint.min(get(\"wide-breakpoint-even-columns-min\")) {\n        @include -two-column-striping($prefix);\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 115
              }
            }
          },
          {
            "description": "Output component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  $prefix: selector.class(\"tile-grid-overlay\");\n\n  #{ $prefix } {\n    position: relative;\n  }\n  #{ $prefix }__background-image {\n    @include layout.absolute-fill();\n    filter: get(\"background-image-filter\");\n  }\n  #{ $prefix }__grid {\n    position: relative;\n    @media print {\n      display: block;\n    }\n  }\n  #{ $prefix }__button {\n    background-color: color.get(get(\"button-background-color\"));\n    border-radius: 0;\n    padding-left: 1em;\n    padding-right: 1em;\n    &:hover,\n    &:focus {\n      // Competes with striping\n      background-color: color.get(get(\"button-background-color-hover\")) !important; \n    }\n    &.is-active {\n      // Competes with striping\n      background-color: color.get(get(\"button-background-color-active\")) !important; \n    }\n    @media print {\n      display: block;\n      text-align: left;\n      height: auto;\n      aspect-ratio: auto;\n      padding-left: 0;\n    }\n  }\n\n  // Striping\n  #{ $prefix }__item {\n    &:nth-child(even) #{ $prefix }__button {\n      background-color: color.get(get(\"button-background-color-striped\"));\n    }\n    // They want it to alternate when 2 column, so it has to flip flop\n    // Then when it returns to above or below this 2 column area odd works like before\n    @include breakpoint.min-max(\n      get(\"breakpoint-even-columns-min\"), \n      get(\"breakpoint-even-columns-max\")\n    ) {\n      @include -two-column-striping($prefix);\n    }\n  }\n\n  // When 2 columns needs the same styles as between small/medium on standard layout\n  // no way to reuse because it's inside different media queries\n  #{ $prefix }__grid--wide {\n    #{ $prefix }__item {\n      @include breakpoint.min(get(\"wide-breakpoint-even-columns-min\")) {\n        @include -two-column-striping($prefix);\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 115
              }
            }
          },
          {
            "description": "Output component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  $prefix: selector.class(\"tile-grid-overlay\");\n\n  #{ $prefix } {\n    position: relative;\n  }\n  #{ $prefix }__background-image {\n    @include layout.absolute-fill();\n    filter: get(\"background-image-filter\");\n  }\n  #{ $prefix }__grid {\n    position: relative;\n    @media print {\n      display: block;\n    }\n  }\n  #{ $prefix }__button {\n    background-color: color.get(get(\"button-background-color\"));\n    border-radius: 0;\n    padding-left: 1em;\n    padding-right: 1em;\n    &:hover,\n    &:focus {\n      // Competes with striping\n      background-color: color.get(get(\"button-background-color-hover\")) !important; \n    }\n    &.is-active {\n      // Competes with striping\n      background-color: color.get(get(\"button-background-color-active\")) !important; \n    }\n    @media print {\n      display: block;\n      text-align: left;\n      height: auto;\n      aspect-ratio: auto;\n      padding-left: 0;\n    }\n  }\n\n  // Striping\n  #{ $prefix }__item {\n    &:nth-child(even) #{ $prefix }__button {\n      background-color: color.get(get(\"button-background-color-striped\"));\n    }\n    // They want it to alternate when 2 column, so it has to flip flop\n    // Then when it returns to above or below this 2 column area odd works like before\n    @include breakpoint.min-max(\n      get(\"breakpoint-even-columns-min\"), \n      get(\"breakpoint-even-columns-max\")\n    ) {\n      @include -two-column-striping($prefix);\n    }\n  }\n\n  // When 2 columns needs the same styles as between small/medium on standard layout\n  // no way to reuse because it's inside different media queries\n  #{ $prefix }__grid--wide {\n    #{ $prefix }__item {\n      @include breakpoint.min(get(\"wide-breakpoint-even-columns-min\")) {\n        @include -two-column-striping($prefix);\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 115
              }
            }
          },
          {
            "description": "Output component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n\n  $prefix: selector.class(\"tile-grid-overlay\");\n\n  #{ $prefix } {\n    position: relative;\n  }\n  #{ $prefix }__background-image {\n    @include layout.absolute-fill();\n    filter: get(\"background-image-filter\");\n  }\n  #{ $prefix }__grid {\n    position: relative;\n    @media print {\n      display: block;\n    }\n  }\n  #{ $prefix }__button {\n    background-color: color.get(get(\"button-background-color\"));\n    border-radius: 0;\n    padding-left: 1em;\n    padding-right: 1em;\n    &:hover,\n    &:focus {\n      // Competes with striping\n      background-color: color.get(get(\"button-background-color-hover\")) !important; \n    }\n    &.is-active {\n      // Competes with striping\n      background-color: color.get(get(\"button-background-color-active\")) !important; \n    }\n    @media print {\n      display: block;\n      text-align: left;\n      height: auto;\n      aspect-ratio: auto;\n      padding-left: 0;\n    }\n  }\n\n  // Striping\n  #{ $prefix }__item {\n    &:nth-child(even) #{ $prefix }__button {\n      background-color: color.get(get(\"button-background-color-striped\"));\n    }\n    // They want it to alternate when 2 column, so it has to flip flop\n    // Then when it returns to above or below this 2 column area odd works like before\n    @include breakpoint.min-max(\n      get(\"breakpoint-even-columns-min\"), \n      get(\"breakpoint-even-columns-max\")\n    ) {\n      @include -two-column-striping($prefix);\n    }\n  }\n\n  // When 2 columns needs the same styles as between small/medium on standard layout\n  // no way to reuse because it's inside different media queries\n  #{ $prefix }__grid--wide {\n    #{ $prefix }__item {\n      @include breakpoint.min(get(\"wide-breakpoint-even-columns-min\")) {\n        @include -two-column-striping($prefix);\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 115
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"vignette\");\n\n  #{ $prefix } {\n    position: relative;\n    &::after {\n      content: \"\";\n      display: block;\n      @include layout.absolute-fill();\n      background: linear-gradient(0deg,color.change(get(\"background-color\"), $alpha: 0.8),color.change(get(\"background-color\"), $alpha: 0) 45%);\n      pointer-events: none;\n    }\n    @if get(\"image-filter\") {\n      img {\n        filter: get(\"image-filter\");\n      }\n    }\n  }\n",
              "line": {
                "start": 45,
                "end": 63
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"vignette\");\n\n  #{ $prefix } {\n    position: relative;\n    &::after {\n      content: \"\";\n      display: block;\n      @include layout.absolute-fill();\n      background: linear-gradient(0deg,color.change(get(\"background-color\"), $alpha: 0.8),color.change(get(\"background-color\"), $alpha: 0) 45%);\n      pointer-events: none;\n    }\n    @if get(\"image-filter\") {\n      img {\n        filter: get(\"image-filter\");\n      }\n    }\n  }\n",
              "line": {
                "start": 45,
                "end": 63
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"vignette\");\n\n  #{ $prefix } {\n    position: relative;\n    &::after {\n      content: \"\";\n      display: block;\n      @include layout.absolute-fill();\n      background: linear-gradient(0deg,color.change(get(\"background-color\"), $alpha: 0.8),color.change(get(\"background-color\"), $alpha: 0) 45%);\n      pointer-events: none;\n    }\n    @if get(\"image-filter\") {\n      img {\n        filter: get(\"image-filter\");\n      }\n    }\n  }\n",
              "line": {
                "start": 45,
                "end": 63
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"vignette\");\n\n  #{ $prefix } {\n    position: relative;\n    &::after {\n      content: \"\";\n      display: block;\n      @include layout.absolute-fill();\n      background: linear-gradient(0deg,color.change(get(\"background-color\"), $alpha: 0.8),color.change(get(\"background-color\"), $alpha: 0) 45%);\n      pointer-events: none;\n    }\n    @if get(\"image-filter\") {\n      img {\n        filter: get(\"image-filter\");\n      }\n    }\n  }\n",
              "line": {
                "start": 45,
                "end": 63
              }
            }
          }
        ]
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "accordion",
        "path": "/sass/components/accordion/#mixin-styles",
        "description": "Prints component styles\n",
        "commentRange": {
          "start": 115,
          "end": 118
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"accordion\");\n  $active-selector: get(\"active-selector\");\n  $padding-x: get(\"padding-x\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n\n  // When not one of our custom classed details components\n  #{ $prefix } {\n    --ulu-accordion-radius-top: #{get(\"border-radius\")};\n    --ulu-accordion-radius-bottom: #{get(\"border-radius\")};\n    position: relative; // For pushing to the top when in accordion groups\n    padding: 0;\n    margin: get(\"margin\");\n    border: $border;\n    background-color: color.get(get(\"background-color\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n\n    // Sibling before sets the gap\n    & + #{ $prefix } {\n      margin-top: 0;\n    }\n\n    // If no space get rid of border radiuses\n    @if (get(\"margin-between\") == 0) {\n      &:has(+ #{ $prefix }) {\n        --ulu-accordion-radius-bottom: 0;\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        --ulu-accordion-radius-top: 0;\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    } @else {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: get(\"margin-between\");\n      }\n    }\n    \n    &[open], \n    &#{ $active-selector }  {\n      background-color: color.get(get(\"background-color-open\"));\n      z-index: 2; // Above other details/accordions\n      > #{ $prefix }__summary {\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0; \n\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: \"\";\n            position: absolute;\n            top: 100%;\n            left: 0;\n            right: 0;\n            height: get(\"summary-border-width\");\n            background-color: color.get(get(\"summary-border-color\"));\n          }\n        }\n      }\n    }\n  }\n  #{ $prefix }__summary {\n    position: relative; // For pseudo border (done this way for animations)\n    display: flex;\n    width: 100%; // For <button>\n    background-color: color.get(get(\"summary-background-color\"));\n    color: color.get(get(\"summary-color\"));\n    line-height: get(\"summary-line-height\");\n    padding: get(\"summary-padding-y\") $padding-x;\n    border-radius: var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-top) var(--ulu-accordion-radius-bottom) var(--ulu-accordion-radius-bottom);\n    font-weight: get(\"summary-font-weight\");\n    cursor: pointer;\n    align-items: center;\n\n    @include typography.optional-size(get(\"summary-type-size\"), $only-font-size: true);\n    @include element.summary-remove-marker();\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"summary-background-color-hover\"));\n      color: color.get(get(\"summary-color-hover\"));\n      #{ $prefix }__icon {\n        background-color: color.get(get(\"icon-background-color-hover\"));\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 get(\"icon-size\");\n    color: color.get(get(\"icon-color\"));\n    margin-left: auto;\n    padding-left: get(\"icon-margin\");\n    background-color: color.get(get(\"icon-background-color\"));\n    border-radius: get(\"icon-border-radius\");\n    width: get(\"icon-size\");\n    height: get(\"icon-size\");\n    font-size: get(\"icon-font-size\");\n    line-height: 1;\n  }\n  #{ $prefix }__content {\n    padding: get(\"padding-y\") $padding-x;\n    border-bottom-left-radius: var(--ulu-accordion-radius-bottom);\n    border-bottom-right-radius: var(--ulu-accordion-radius-bottom);\n  }\n  #{ $prefix }--transparent {\n    border-left: none;\n    border-right: none;\n    background-color: transparent !important;\n    border-radius: 0;\n\n    // Transparent always collapses space\n    @if (get(\"margin-between\") != 0) {\n      &:has(+ #{ $prefix }) {\n        margin-bottom: 0;\n      }\n      & + #{ $prefix } {\n        margin-top: -(get(\"border-width\")); // Pull border over top\n      }\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      padding-left: 0;\n      padding-right: 0;\n      background-color: transparent;\n      border: none !important;\n      border-radius: 0 !important;\n    }\n    > #{ $prefix }__content {\n      padding: get(\"transparent-content-padding\");\n    }\n  }\n  #{ $prefix }--borderless {\n    border: none;\n    &:has(+ #{ $prefix }) {\n      margin-bottom: 0;\n    }\n    & + #{ $prefix }--borderless {\n      margin-top: calc(get(\"borderless-margin-between\") - get(\"border-width\"));\n    }\n    > #{ $prefix }__summary,\n    > #{ $prefix }__content {\n      border-radius: get(\"border-radius\");\n    }\n    &[open],\n    &#{ $active-selector } {\n      & > #{ $prefix }__summary {\n        border-radius: get(\"border-radius\");\n        border-bottom: none;\n        @if (get(\"summary-border-enabled\")) { \n          &::after {\n            content: none;\n          }\n        }\n      }\n    }\n  }\n",
          "line": {
            "start": 120,
            "end": 278
          }
        },
        "demo": {
          "link": "accordion",
          "content": null
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-accordion-styles();"
          }
        ],
        "group": [
          "accordion"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_accordion.scss",
          "name": "_accordion.scss"
        }
      }
    ],
    "adaptive-spacing": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "adaptive-spacing",
        "path": "/sass/components/adaptive-spacing/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 12,
          "end": 19
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"outputMargin\": false,\n  \"outputPadding\": true,\n  \"outputX\": true,\n  \"outputY\": true,\n  \"selectorX\": \"sides\",\n  \"selectorY\": \"ends\"\n)",
          "scope": "private",
          "line": {
            "start": 21,
            "end": 29
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Boolean",
            "name": "outputMargin",
            "default": "false",
            "description": "Toggles the output of margin classes."
          },
          {
            "type": "Boolean",
            "name": "outputPadding",
            "default": "true",
            "description": "This is the background color of the accordion before it is expanded."
          },
          {
            "type": "Boolean",
            "name": "outputX",
            "default": "true",
            "description": "This is the background color of the accordion before it is expanded."
          },
          {
            "type": "Boolean",
            "name": "outputY",
            "default": "true",
            "description": "This is the background color of the accordion before it is expanded."
          },
          {
            "type": "Boolean",
            "name": "selectorX",
            "default": "\"sides\"",
            "description": "This is the background color of the accordion before it is expanded."
          },
          {
            "type": "Boolean",
            "name": "selectorY",
            "default": "\"ends\"",
            "description": "This is the background color of the accordion before it is expanded."
          }
        ],
        "group": [
          "adaptive-spacing"
        ],
        "access": "public",
        "file": {
          "path": "_adaptive-spacing.scss",
          "name": "_adaptive-spacing.scss"
        }
      },
      {
        "id": "variable-sizes",
        "title": "$sizes",
        "groupName": "adaptive-spacing",
        "path": "/sass/components/adaptive-spacing/#variable-sizes",
        "description": "Sizes Map\n",
        "commentRange": {
          "start": 31,
          "end": 32
        },
        "context": {
          "type": "variable",
          "name": "sizes",
          "value": "(\n  \"small\" : (\n    \"initial\" : (\n      \"size\" : 2rem\n    ),\n    \"medium\" : (\n      \"direction\" : \"min\",\n      \"size\": 4rem\n    )\n  ),\n  \"large\" : (\n    \"initial\" : (\n      \"size\" : 4rem\n    ),\n    \"medium\" : (\n      \"direction\" : \"min\",\n      \"size\" : 8rem\n    ),\n  )\n)",
          "scope": "private",
          "line": {
            "start": 34,
            "end": 53
          }
        },
        "type": "Map",
        "group": [
          "adaptive-spacing"
        ],
        "access": "public",
        "file": {
          "path": "_adaptive-spacing.scss",
          "name": "_adaptive-spacing.scss"
        },
        "usedBy": [
          {
            "description": "Set sizes map\n",
            "context": {
              "type": "mixin",
              "name": "set-sizes",
              "code": "\n  $sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 68,
                "end": 70
              }
            }
          },
          {
            "description": "Set sizes map\n",
            "context": {
              "type": "mixin",
              "name": "set-sizes",
              "code": "\n  $sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 68,
                "end": 70
              }
            }
          },
          {
            "description": "Outputs adaptive spacing component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefixMargin: selector.class(\"adaptive-margin\");\n  $prefixPadding: selector.class(\"adaptive-padding\");\n  $hasMargin: map.get($config, \"outputMargin\");\n  $hasPadding: map.get($config, \"outputPadding\");\n  \n  @each $name, $breakpoints in $sizes {\n    $sizePrefixMargin: \"#{ $prefixMargin }-#{ $name }\";\n    $sizePrefixPadding: \"#{ $prefixPadding }-#{ $name }\";\n    @each $breakpoint, $props in $breakpoints {\n      $direction: map.get($props, \"direction\");\n      $value: map.get($props, \"size\");\n      // If no direction it is the default\n      @if $direction == null {\n        @if $hasMargin {\n          @include -classes-for-type($sizePrefixMargin, \"margin\", $value);\n        }\n        @if $hasPadding {\n          @include -classes-for-type($sizePrefixPadding, \"padding\", $value);\n        }\n      } @else {\n        @include breakpoint.from($breakpoint, $direction) {\n          @if $hasMargin {\n            @include -classes-for-type($sizePrefixMargin, \"margin\", $value);\n          }\n          @if $hasPadding {\n            @include -classes-for-type($sizePrefixPadding, \"padding\", $value);\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 85,
                "end": 117
              }
            }
          },
          {
            "description": "Output button component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'button');\n\n  $prefix: selector.class(\"button\");\n  // $printContextual: get(\"contextual-classes\");\n  // $classContextual: \"#{ selector.class(\"button-inside\") } ;\n  $icon-selector: \"#{ $prefix }--icon\";\n  $printDescendant: \"#{ $prefix }--icon\";\n\n  #{ $prefix } {\n    @include button.default();\n  }\n  #{ $prefix }--fit {\n    min-width: 0;\n  }\n  #{ $prefix }--left {\n    justify-content: flex-start;\n    text-align: left;\n  }\n  \n  @each $size, $values in button.$sizes {\n    #{ $prefix }--#{$size} {\n      @include button.size($size);\n    }\n  }\n  \n  @each $style, $values in button.$styles {\n    #{ $prefix }--#{$style} {\n      @include button.style($style);\n    }\n  }\n  \n  #{ $icon-selector } {\n    \n    min-width: 0;\n    max-width: none;\n    border-radius: button.get(\"icon-border-radius\");\n    font-size: button.get(\"icon-font-size\");\n    width: button.get(\"icon-size\");\n    height: button.get(\"icon-size\");\n    padding: 0 !important;\n\n    #{ $prefix }__icon {\n      transform: translateY(get(\"icon-centered-vertical-offset\"));\n      margin: 0;\n    }\n  }\n\n  @each $size, $values in button.$sizes {\n    $icon-size: map.get($values, \"icon-size\");\n    $icon-font-size: map.get($values, \"icon-font-size\");\n    @if ($icon-size or $icon-font-size) {\n      #{ $prefix }--#{$size}#{ $icon-selector } {\n        width: $icon-size;\n        height: $icon-size;\n        font-size: $icon-font-size;\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 110
              }
            }
          },
          {
            "description": "Output button component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'button');\n\n  $prefix: selector.class(\"button\");\n  // $printContextual: get(\"contextual-classes\");\n  // $classContextual: \"#{ selector.class(\"button-inside\") } ;\n  $icon-selector: \"#{ $prefix }--icon\";\n  $printDescendant: \"#{ $prefix }--icon\";\n\n  #{ $prefix } {\n    @include button.default();\n  }\n  #{ $prefix }--fit {\n    min-width: 0;\n  }\n  #{ $prefix }--left {\n    justify-content: flex-start;\n    text-align: left;\n  }\n  \n  @each $size, $values in button.$sizes {\n    #{ $prefix }--#{$size} {\n      @include button.size($size);\n    }\n  }\n  \n  @each $style, $values in button.$styles {\n    #{ $prefix }--#{$style} {\n      @include button.style($style);\n    }\n  }\n  \n  #{ $icon-selector } {\n    \n    min-width: 0;\n    max-width: none;\n    border-radius: button.get(\"icon-border-radius\");\n    font-size: button.get(\"icon-font-size\");\n    width: button.get(\"icon-size\");\n    height: button.get(\"icon-size\");\n    padding: 0 !important;\n\n    #{ $prefix }__icon {\n      transform: translateY(get(\"icon-centered-vertical-offset\"));\n      margin: 0;\n    }\n  }\n\n  @each $size, $values in button.$sizes {\n    $icon-size: map.get($values, \"icon-size\");\n    $icon-font-size: map.get($values, \"icon-font-size\");\n    @if ($icon-size or $icon-font-size) {\n      #{ $prefix }--#{$size}#{ $icon-selector } {\n        width: $icon-size;\n        height: $icon-size;\n        font-size: $icon-font-size;\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 110
              }
            }
          },
          {
            "description": "Set sizes map\n",
            "context": {
              "type": "mixin",
              "name": "set-sizes",
              "code": "\n  $sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 84,
                "end": 86
              }
            }
          },
          {
            "description": "Set sizes map\n",
            "context": {
              "type": "mixin",
              "name": "set-sizes",
              "code": "\n  $sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 84,
                "end": 86
              }
            }
          },
          {
            "description": "Set sizes map\n",
            "context": {
              "type": "mixin",
              "name": "set-sizes",
              "code": "\n  $sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 78,
                "end": 80
              }
            }
          },
          {
            "description": "Set sizes map\n",
            "context": {
              "type": "mixin",
              "name": "set-sizes",
              "code": "\n  $sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 78,
                "end": 80
              }
            }
          },
          {
            "description": "Set tag sizes \n",
            "context": {
              "type": "mixin",
              "name": "set-sizes",
              "code": "\n  $sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 110,
                "end": 112
              }
            }
          },
          {
            "description": "Set tag sizes \n",
            "context": {
              "type": "mixin",
              "name": "set-sizes",
              "code": "\n  $sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 110,
                "end": 112
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          },
          {
            "description": "Set sizes map\n",
            "context": {
              "type": "mixin",
              "name": "set-sizes",
              "code": "\n  $sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 92,
                "end": 94
              }
            }
          },
          {
            "description": "Set sizes map\n",
            "context": {
              "type": "mixin",
              "name": "set-sizes",
              "code": "\n  $sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 92,
                "end": 94
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tile-grid\");\n\n  #{ $prefix } {\n    display: grid;\n    gap: get(\"gap\");\n    grid-template-columns: repeat(auto-fit, minmax(get(\"width\"), 1fr));\n    grid-auto-rows: 1fr;\n  }\n  #{ $prefix }__item {\n    aspect-ratio: get(\"aspect-ratio\");\n  }\n  // Use with fill-context, creates the space for images/etc\n  #{ $prefix }--expanded {\n    #{ $prefix }__item {\n      width: 100%;\n      height: 100%;\n      overflow: hidden;\n    }\n  }\n\n  // Print out reflowable sizes modifiers\n  @each $modifier, $props in $sizes {\n    $width: map.get($props, \"width\");\n    $gap: map.get($props, \"gap\");\n    $aspect-ratio: map.get($props, \"aspect-ratio\");\n    \n    @if ($width or $gap) {\n      #{ $prefix }--#{ $modifier } {\n        @if utils.map-has($props, \"width\") {\n          grid-template-columns: repeat(auto-fit, minmax($width, 1fr));\n        }\n        gap: $gap;\n      }\n    }\n    @if $aspect-ratio {\n      #{ $prefix }--#{ $modifier } #{ $prefix }__item {\n        aspect-ratio: $aspect-ratio;\n      }\n    }\n  }\n\n  // Print out the static column styles\n  // - Adaptive column count per breakpoint, equal widths\n  @each $modifier, $breakpoints in $static-sizes {\n    @include breakpoint.from-each($breakpoints) using ($props) {\n      #{ $prefix }--#{ $modifier } {\n        grid-template-columns: repeat(map.get($props, \"columns\"), 1fr);\n        gap: map.get($props, \"gap\");\n      }\n      @if utils.map-contains-any($props, (\"aspect-ratio\",)) {\n        #{ $prefix }__item {\n          aspect-ratio: map.get($props, \"aspect-ratio\");\n        }\n      }\n    }\n  }\n\n  // Modifier to force no gap on grid\n  #{ $prefix }--no-gap {\n    gap: 0 !important;\n  }\n",
              "line": {
                "start": 109,
                "end": 171
              }
            }
          }
        ]
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "adaptive-spacing",
        "path": "/sass/components/adaptive-spacing/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 55,
          "end": 58
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 60,
            "end": 62
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-adaptive-spacing-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "adaptive-spacing"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_adaptive-spacing.scss",
          "name": "_adaptive-spacing.scss"
        }
      },
      {
        "id": "mixin-set-sizes",
        "title": "set-sizes()",
        "groupName": "adaptive-spacing",
        "path": "/sass/components/adaptive-spacing/#mixin-set-sizes",
        "description": "Set sizes map\n",
        "commentRange": {
          "start": 64,
          "end": 66
        },
        "context": {
          "type": "mixin",
          "name": "set-sizes",
          "code": "\n  $sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;\n",
          "line": {
            "start": 68,
            "end": 70
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          },
          {
            "type": "String",
            "name": "merge-mode",
            "description": "Merge mode see utils.map-merge() [null|\"deep\"|\"overwrite\"]"
          }
        ],
        "group": [
          "adaptive-spacing"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "sizes"
          },
          {
            "type": "variable",
            "name": "sizes"
          }
        ],
        "file": {
          "path": "_adaptive-spacing.scss",
          "name": "_adaptive-spacing.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "adaptive-spacing",
        "path": "/sass/components/adaptive-spacing/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 72,
          "end": 75
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"component-adaptive-spacing [config]\");\n",
          "line": {
            "start": 77,
            "end": 79
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-adaptive-spacing-get(\"property\");"
          }
        ],
        "group": [
          "adaptive-spacing"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_adaptive-spacing.scss",
          "name": "_adaptive-spacing.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "adaptive-spacing",
        "path": "/sass/components/adaptive-spacing/#mixin-styles",
        "description": "Outputs adaptive spacing component styles\n",
        "commentRange": {
          "start": 81,
          "end": 83
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefixMargin: selector.class(\"adaptive-margin\");\n  $prefixPadding: selector.class(\"adaptive-padding\");\n  $hasMargin: map.get($config, \"outputMargin\");\n  $hasPadding: map.get($config, \"outputPadding\");\n  \n  @each $name, $breakpoints in $sizes {\n    $sizePrefixMargin: \"#{ $prefixMargin }-#{ $name }\";\n    $sizePrefixPadding: \"#{ $prefixPadding }-#{ $name }\";\n    @each $breakpoint, $props in $breakpoints {\n      $direction: map.get($props, \"direction\");\n      $value: map.get($props, \"size\");\n      // If no direction it is the default\n      @if $direction == null {\n        @if $hasMargin {\n          @include -classes-for-type($sizePrefixMargin, \"margin\", $value);\n        }\n        @if $hasPadding {\n          @include -classes-for-type($sizePrefixPadding, \"padding\", $value);\n        }\n      } @else {\n        @include breakpoint.from($breakpoint, $direction) {\n          @if $hasMargin {\n            @include -classes-for-type($sizePrefixMargin, \"margin\", $value);\n          }\n          @if $hasPadding {\n            @include -classes-for-type($sizePrefixPadding, \"padding\", $value);\n          }\n        }\n      }\n    }\n  }\n",
          "line": {
            "start": 85,
            "end": 117
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-adaptive-spacing-styles();"
          }
        ],
        "group": [
          "adaptive-spacing"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "sizes"
          }
        ],
        "file": {
          "path": "_adaptive-spacing.scss",
          "name": "_adaptive-spacing.scss"
        }
      }
    ],
    "badge": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "badge",
        "path": "/sass/components/badge/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 21,
          "end": 36
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"background-color\":    rgb(205, 205, 205),\n  \"background-color-hover\": null,\n  \"border-radius\":       50%,\n  \"color\":               black,\n  \"color-hover\":         null,\n  \"box-shadow\" :         null,\n  \"box-shadow-hover\" :   null,\n  \"font-size\":           1.5rem,\n  \"font-weight\":         bold,\n  \"font-family\":         true,\n  \"width\":               7rem,\n  \"hover-scale\":         1.2,\n  \"transition-duration\" : 110ms,\n  \"sizes\" : (\n    \"small\" : (\n      \"font-size\" : 1.2rem,\n      \"width\" :  4rem\n    ),\n    \"large\" : (\n      \"font-size\" : 2.75rem,\n      \"width\" :  9rem\n    )\n  )\n)",
          "scope": "default",
          "line": {
            "start": 38,
            "end": 62
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Color",
            "name": "background-color",
            "default": "gray",
            "description": "Background color (if no image)"
          },
          {
            "type": "Color",
            "name": "background-color-hover",
            "default": "null",
            "description": "Optional background color for hover when using badge--clickable modifier"
          },
          {
            "type": "Number",
            "name": "border-radius",
            "default": "50%",
            "description": "Border radius of badge"
          },
          {
            "type": "Color",
            "name": "color",
            "default": "black",
            "description": "Type color"
          },
          {
            "type": "Color",
            "name": "color-hover",
            "default": "null",
            "description": "Optional color for hover when using badge--clickable modifier"
          },
          {
            "type": "CssValue",
            "name": "box-shadow",
            "default": "null",
            "description": "Optional box-shadow"
          },
          {
            "type": "CssValue",
            "name": "box-shadow-hover",
            "default": "null",
            "description": "Optional box-shadow for hover when using badge--clickable modifier"
          },
          {
            "type": "Number",
            "name": "font-size",
            "default": "1.3rem",
            "description": "Font size (basic ie. 1.3rem) for badge"
          },
          {
            "type": "Keyword",
            "name": "font-weight",
            "default": "bold",
            "description": "Font weight"
          },
          {
            "type": "String",
            "name": "font-family",
            "default": "true",
            "description": "Specify font family, defaults to typography font-family-sans"
          },
          {
            "type": "Number",
            "name": "width",
            "default": "10rem",
            "description": "Width of badge (default size)"
          },
          {
            "type": "Time",
            "name": "transition-duration",
            "default": "110ms",
            "description": "Transition duration amount for transitioned properties"
          },
          {
            "type": "Number",
            "name": "hover-scale",
            "default": "1.2",
            "description": "Scale of badge (if clickable) on hover (enlarges badge)"
          },
          {
            "type": "List",
            "name": "sizes",
            "default": "Object",
            "description": "List of other sizes (large by default), each size is a map of (width, font-size)"
          }
        ],
        "group": [
          "badge"
        ],
        "access": "public",
        "file": {
          "path": "_badge.scss",
          "name": "_badge.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "badge",
        "path": "/sass/components/badge/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 64,
          "end": 67
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 69,
            "end": 71
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-badge-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "badge"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_badge.scss",
          "name": "_badge.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "badge",
        "path": "/sass/components/badge/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 73,
          "end": 76
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  $value: utils.require-map-get($config, $name, \"badge [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
          "line": {
            "start": 78,
            "end": 81
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-badge-get(\"property\");"
          }
        ],
        "group": [
          "badge"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_badge.scss",
          "name": "_badge.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "badge",
        "path": "/sass/components/badge/#mixin-styles",
        "description": "Output badge component styles\n",
        "commentRange": {
          "start": 83,
          "end": 97
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"badge\");\n  // Badge content can be text, image, icon, or background-image\n  #{ $prefix } {\n    display: block;\n    width: get(\"width\");\n    max-width: 100%;\n    flex: 0 0 get(\"width\");\n    font-size: get(\"font-size\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n  }\n  #{ $prefix }__inner {\n    display: block;\n    padding-bottom: 100%;\n    width: 100%;\n    position: relative;\n    overflow: hidden;\n    background-repeat: no-repeat;\n    background-size: cover;\n    background-position: center center;\n    text-align: center;\n    border-radius: get(\"border-radius\");\n    transition-property: transform, color, box-shadow, background-color;\n    transition-duration: get(\"transition-duration\");\n    transition-timing-function: ease-in-out;\n    box-shadow: get(\"box-shadow\");\n    // In case this is used as a link or router-link\n    &,\n    &:hover,\n    &:focus,\n    &:visited {\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n    }\n  }\n  #{ $prefix }--clickable,\n  button#{ $prefix },\n  a#{ $prefix } {\n    &:hover,\n    &:focus {\n      #{ $prefix }__inner {\n        color: color.get(get(\"color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n        box-shadow: get(\"box-shadow-hover\");\n        transform: scale(get(\"hover-scale\"));\n      }\n    }\n  }\n  #{ $prefix }__inner > * {\n    display: block;\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n  }\n  #{ $prefix }__inner > img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    margin: 0 !important;\n  }\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: map.get($props, \"width\");\n      font-size: map.get($props, \"font-size\");\n      flex-basis: map.get($props, \"width\");\n    }\n  }\n",
          "line": {
            "start": 99,
            "end": 169
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-badge-styles();"
          },
          {
            "type": "html",
            "code": "<div class=\"badge\">\n  <div class=\"badge__inner\">\n    <img src=\"...\" alt=\"...\">\n  </div>\n</div>\n\n<div class=\"badge\">\n  <div class=\"badge__inner\">\n    <span>JS</span>\n  </div>\n</div>",
            "description": "",
            "modifier": "preview"
          }
        ],
        "group": [
          "badge"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_badge.scss",
          "name": "_badge.scss"
        }
      }
    ],
    "badge-stack": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "badge-stack",
        "path": "/sass/components/badge-stack/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 12,
          "end": 16
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"width\": 10rem,\n  \"overlap\": -5px,\n  \"border-width\": 3px,\n  \"border-color\" : \"accent\"\n)",
          "scope": "default",
          "line": {
            "start": 18,
            "end": 23
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Dimension",
            "name": "width",
            "default": "10rem",
            "description": "Width of the badge stack"
          },
          {
            "type": "Dimension",
            "name": "overlap",
            "default": "-5px",
            "description": "Right margin for stacked items"
          },
          {
            "type": "Dimension",
            "name": "border-width",
            "default": "3px",
            "description": "Border width for stacked items"
          }
        ],
        "group": [
          "badge-stack"
        ],
        "access": "public",
        "file": {
          "path": "_badge-stack.scss",
          "name": "_badge-stack.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "badge-stack",
        "path": "/sass/components/badge-stack/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 25,
          "end": 28
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 30,
            "end": 32
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-badge-stack-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "badge-stack"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_badge-stack.scss",
          "name": "_badge-stack.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "badge-stack",
        "path": "/sass/components/badge-stack/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 34,
          "end": 37
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"badge-stack [config]\");\n",
          "line": {
            "start": 39,
            "end": 41
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-badge-stack-get(\"property\");"
          }
        ],
        "group": [
          "badge-stack"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_badge-stack.scss",
          "name": "_badge-stack.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "badge-stack",
        "path": "/sass/components/badge-stack/#mixin-styles",
        "description": "Prints component styles\n",
        "commentRange": {
          "start": 43,
          "end": 46
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"badge-stack\");\n  $prefix-badge: selector.class(\"badge\");\n\n  #{ $prefix } {\n    width: get(\"width\");\n    display: flex;\n  }\n  #{ $prefix }__item {\n    flex: 0 1 min-content;\n    margin-right: get(\"overlap\");\n\n    #{ $prefix-badge }__inner {\n      // box-shadow: ulu.element-get(\"box-shadow\");\n      position: relative;\n      &:before {\n        content: '';\n        display: block;\n        position: absolute;\n        top: -1px;\n        bottom: -1px;\n        left: -1px;\n        right: -1px;\n        border-radius: badge.get(\"border-radius\");\n        border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      }\n    }\n    #{ $prefix-badge } {\n      &:focus,\n      &:hover {\n        #{ $prefix-badge }__inner {\n          z-index: 2;\n        }\n      }\n    }\n  }\n",
          "line": {
            "start": 48,
            "end": 84
          }
        },
        "demo": {
          "link": "badge-stack",
          "content": null
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-badge-stack-styles();"
          }
        ],
        "group": [
          "badge-stack"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_badge-stack.scss",
          "name": "_badge-stack.scss"
        }
      }
    ],
    "basic-hero": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "basic-hero",
        "path": "/sass/components/basic-hero/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 29,
          "end": 32
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"background-color\" : #fafafa,\n  \"padding-top\": 3rem,\n  \"padding-bottom\" : 2rem,\n  \"gap\" : (4rem 2rem),\n  \"main-max-width\" : true,\n  \"main-min-width\" : true,\n  \"media-max-width\" : 20rem,\n  \"media-vertical-align\" : center\n)",
          "scope": "default",
          "line": {
            "start": 34,
            "end": 43
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "CssValue",
            "name": "text-align",
            "default": "center",
            "description": "Alignment of text within hero."
          },
          {
            "type": "Color",
            "name": "background-color",
            "default": "\"color-hero-background\"",
            "description": "Background color of the hero"
          }
        ],
        "group": [
          "basic-hero"
        ],
        "access": "public",
        "file": {
          "path": "_basic-hero.scss",
          "name": "_basic-hero.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "basic-hero",
        "path": "/sass/components/basic-hero/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 45,
          "end": 48
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 50,
            "end": 52
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-basic-hero-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "basic-hero"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_basic-hero.scss",
          "name": "_basic-hero.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "basic-hero",
        "path": "/sass/components/basic-hero/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 54,
          "end": 57
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  $value: utils.require-map-get($config, $name, \"basic-hero [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
          "line": {
            "start": 59,
            "end": 62
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-basic-hero-get(\"property\");"
          }
        ],
        "group": [
          "basic-hero"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_basic-hero.scss",
          "name": "_basic-hero.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "basic-hero",
        "path": "/sass/components/basic-hero/#mixin-styles",
        "description": "Prints component styles\n",
        "commentRange": {
          "start": 64,
          "end": 66
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"basic-hero\");\n\n  #{ $prefix } {\n    background-color: color.get(get(\"background-color\")); \n  }\n  #{ $prefix }__content {\n    display: flex;\n    align-items: stretch;\n    flex-wrap: wrap;\n    justify-content: space-between;\n    gap: get(\"gap\"); \n    padding-top: get(\"padding-top\");\n    padding-bottom: get(\"padding-bottom\");\n  }\n  #{ $prefix }__content-main {\n    $min-width: utils.fallback(get(\"main-min-width\"), get(\"main-max-width\"));\n    // Using max/min-width so that we don't need to add selectors to change flex-basis\n    // when centered. Using flex-basis: 0 to allow flexbox to decide the items width\n    // allows it to expand/shrink within. min(100%... Never larger than parent\n    min-width: min(100%, $min-width); \n    max-width: get(\"main-max-width\");\n    flex-shrink: 1;\n    flex-grow: 1;\n    flex-basis: 0;\n  }\n  #{ $prefix }__content-media {\n    display: flex;\n    align-items: center;\n    align-self: get(\"media-vertical-align\");\n    justify-content: center;\n    flex: 0 0 auto; \n    width: min(100%, get(\"media-max-width\"));\n  }\n\n  // Modifiers\n  #{ $prefix }--center {\n    #{ $prefix }__content {\n      flex-direction: column;\n      flex-wrap: nowrap;\n      text-align: center;\n      align-items: center;\n    }\n  }\n",
          "line": {
            "start": 68,
            "end": 112
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-basic-hero-styles();"
          }
        ],
        "group": [
          "basic-hero"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_basic-hero.scss",
          "name": "_basic-hero.scss"
        }
      }
    ],
    "breadcrumb": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "breadcrumb",
        "path": "/sass/components/breadcrumb/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 24,
          "end": 34
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"row-gap\":              0.5em,\n  \"margin\" :              (0 0 1.25em 0),\n  \"color\":                 \"type-tertiary\",\n  \"color-hover\":           \"link-hover\",\n  \"line-height\":           true,\n  \"item-max-width\":        15em,\n  \"separator-margin\":      (0 0.5em),\n  \"separator-color\":       null,\n  \"separator-opacity\":     0.7,\n)",
          "scope": "default",
          "line": {
            "start": 36,
            "end": 46
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "List",
            "name": "margin",
            "default": "(0 0 1.25em 0)",
            "description": "Margin for component"
          },
          {
            "type": "CssUnit",
            "name": "row-gap",
            "default": "0.35em",
            "description": "Gap when breadcrumbs wrap"
          },
          {
            "type": "Color",
            "name": "color",
            "default": "\"type-tertiary\"",
            "description": "Base color (links inherit this)"
          },
          {
            "type": "Color",
            "name": "color-hover",
            "default": "\"link-hover\"",
            "description": "Color for link hover"
          },
          {
            "type": "CssUnit",
            "name": "line-height",
            "default": "true",
            "description": "Line height, defaults to typography line-height-densest"
          },
          {
            "type": "CssUnit",
            "name": "item-max-width",
            "default": "15em",
            "description": "Max length of item text"
          },
          {
            "type": "Color",
            "name": "separator-color",
            "default": "null",
            "description": "Optional color to apply to separator"
          },
          {
            "type": "Number",
            "name": "separator-opacity",
            "default": "0.7",
            "description": "Optional opacity for separator"
          },
          {
            "type": "List",
            "name": "separator-margin",
            "default": "(0 0.5em)",
            "description": "Separator margin"
          }
        ],
        "group": [
          "breadcrumb"
        ],
        "access": "public",
        "file": {
          "path": "_breadcrumb.scss",
          "name": "_breadcrumb.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "breadcrumb",
        "path": "/sass/components/breadcrumb/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 48,
          "end": 51
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 53,
            "end": 55
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-breadcrumb-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "breadcrumb"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_breadcrumb.scss",
          "name": "_breadcrumb.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "breadcrumb",
        "path": "/sass/components/breadcrumb/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 57,
          "end": 60
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  $value: utils.require-map-get($config, $name, \"breadcrumb [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
          "line": {
            "start": 62,
            "end": 65
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-breadcrumb-get(\"property\");"
          }
        ],
        "group": [
          "breadcrumb"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_breadcrumb.scss",
          "name": "_breadcrumb.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "breadcrumb",
        "path": "/sass/components/breadcrumb/#mixin-styles",
        "description": "Prints component styles\n",
        "commentRange": {
          "start": 67,
          "end": 70
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"breadcrumb\");\n  \n  #{ $prefix } {\n    color: color.get(get(\"color\"));\n    margin: get(\"margin\");\n    line-height: get(\"line-height\");\n  }\n  #{ $prefix }__list {\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n    gap: get(\"row-gap\") 0;\n  }\n  #{ $prefix }__item {\n    display: flex;\n    align-items: center;\n  }\n  #{ $prefix }__link,\n  #{ $prefix }__current {\n    white-space: nowrap;\n    overflow: hidden;\n    max-width: get(\"item-max-width\");\n    text-overflow: ellipsis;\n  }\n  #{ $prefix }__link {\n    color: inherit;\n    text-decoration: none;\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n    }\n  }\n  #{ $prefix }__separator {\n    margin: get(\"separator-margin\");\n    color: color.get(get(\"separator-color\"));\n    opacity: get(\"separator-opacity\");\n  }\n",
          "line": {
            "start": 72,
            "end": 110
          }
        },
        "demo": {
          "link": "breadcrumb",
          "content": null
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-breadcrumb-styles();"
          }
        ],
        "group": [
          "breadcrumb"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_breadcrumb.scss",
          "name": "_breadcrumb.scss"
        }
      }
    ],
    "button": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "button",
        "path": "/sass/core/button/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 21,
          "end": 54
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"active-selector\":         \"&.is-active\",\n  \"box-shadow\":              true,\n  \"line-height\":             1.1,\n  \"letter-spacing\":          0.02em,\n  \"margin\":                  (0.45em 0.5em 0.45em 0),\n  \"min-width\":               9rem,\n  \"padding\":                 (0.75em 1.5em),\n  \"white-space\":             nowrap,\n  \"border-color\":            \"control-border\",\n  \"border-color-active\":     \"control-border-active\",\n  \"border-color-hover\":      \"control-border-hover\",\n  \"border-radius\":           2rem,\n  \"border-width\":            1px,\n  \"background-color\":        \"control-background\",\n  \"background-color-hover\":  \"control-background-hover\",\n  \"background-color-active\": \"control-background-active\",\n  \"color\":                   \"control\",\n  \"color-hover\":             \"control-hover\",\n  \"color-active\":            \"control-active\",\n  \"font-family\":             inherit,\n  \"font-weight\":             bold,\n  \"font-size\":               \"base\",\n  \"icon-size\":               2.5rem,\n  \"icon-font-size\":          1.38rem,\n  \"icon-border-radius\":      50%,\n  \"text-shadow\":             none,\n  \"text-transform\":          none,\n  \"text-decoration\":         none,\n  \"transition-enabled\":      true,\n  \"transition-duration\":     200ms,\n  \"transition-properties\":   (border-color, background-color, color, box-shadow),\n  \"gap\":                     0.5em,\n)",
          "scope": "default",
          "line": {
            "start": 56,
            "end": 89
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "String",
            "name": "active-selector",
            "default": "\"&.is-active\"",
            "description": "The selector that determines if a button is active"
          },
          {
            "type": "CssValue",
            "name": "box-shadow",
            "default": "true",
            "description": "Specify box shadow for default button. Default true will fallback to element \"box-shadow\""
          },
          {
            "type": "Number",
            "name": "line-height",
            "default": "1.1",
            "description": "Line height for button"
          },
          {
            "type": "Dimension",
            "name": "letter-spacing",
            "default": "0.02em"
          },
          {
            "type": "Dimension",
            "name": "margin",
            "default": "(0.45em 0.5em 0.45em 0)",
            "description": "Margin for buttons, usually left margin is omitted so buttons can flow inline and make space between them and the next element inline"
          },
          {
            "type": "Dimension",
            "name": "min-width",
            "default": "9rem",
            "description": "The smallest width for all buttons"
          },
          {
            "type": "Dimension",
            "name": "padding",
            "default": "(0.75em 1.5em)",
            "description": "Button inner padding value, pass space separated list"
          },
          {
            "type": "CssValue",
            "name": "white-space",
            "default": "nowrap",
            "description": "Adjust button line wrapping, by default line's are not wrapped"
          },
          {
            "type": "Dimension",
            "name": "gap",
            "default": "0.5em",
            "description": "Gap to use between items within the button"
          },
          {
            "type": "String",
            "name": "border-color",
            "default": "\"control-border\"",
            "description": "The border color for the button, usually if there is no border we set this to match the background color so if a button with no borders is adjacent a style that has borders the heights will match."
          },
          {
            "type": "String",
            "name": "border-color-hover",
            "default": "\"control-border-hover\"",
            "description": "Color of border when button is hovered"
          },
          {
            "type": "String",
            "name": "border-color-active",
            "default": "\"control-border-active\"",
            "description": "Color of border when a button has active class"
          },
          {
            "type": "Dimension",
            "name": "border-radius",
            "default": "2rem",
            "description": "Border Radius for button"
          },
          {
            "type": "Dimension",
            "name": "border-width",
            "default": "1px",
            "description": "Width of button border"
          },
          {
            "type": "String",
            "name": "background-color",
            "default": "\"control-background\"",
            "description": "Background color of button"
          },
          {
            "type": "String",
            "name": "background-color-hover",
            "default": "\"control-background-hover\"",
            "description": "Background color of button when hovered"
          },
          {
            "type": "String",
            "name": "background-color-active",
            "default": "\"control-background-active\"",
            "description": "Background color of button when active"
          },
          {
            "type": "String",
            "name": "color",
            "default": "\"control\"",
            "description": "Text color of button"
          },
          {
            "type": "String",
            "name": "color-hover",
            "default": "\"control-hover\"",
            "description": "Text color of button when hovered"
          },
          {
            "type": "String",
            "name": "color-active",
            "default": "\"control-active\"",
            "description": "Text color of button when active"
          },
          {
            "type": "CssValue",
            "name": "font-family",
            "default": "inherit",
            "description": "Font family for button"
          },
          {
            "type": "CssValue",
            "name": "font-weight",
            "default": "bold",
            "description": "Font weight for button"
          },
          {
            "type": "String",
            "name": "font-size",
            "default": "\"base\"",
            "description": "Font size for button, can be omitted if it should inherit, sizes can also work with utility type size classes"
          },
          {
            "type": "Dimension",
            "name": "icon-size",
            "default": "2.5rem",
            "description": "The size of a button when used with an icon"
          },
          {
            "type": "Dimension",
            "name": "icon-font-size",
            "default": "1.38rem",
            "description": "The font size for the icon when a button is an icon button"
          },
          {
            "type": "Dimension",
            "name": "icon-border-radius",
            "default": "50%",
            "description": "The border radius of a icon button (defaults to 50% circle)"
          },
          {
            "type": "CssValue",
            "name": "text-shadow",
            "default": "none",
            "description": "Text shadow for button"
          },
          {
            "type": "CssValue",
            "name": "text-transform",
            "default": "none",
            "description": "Text transform for button"
          },
          {
            "type": "CssValue",
            "name": "text-decoration",
            "default": "none",
            "description": "Text decoration of button"
          },
          {
            "type": "Boolean",
            "name": "transition-enabled",
            "default": "true",
            "description": "Whether or not to enable transitions on button properties like background-color, color, border color as they change state"
          },
          {
            "type": "Time",
            "name": "transition-duration",
            "default": "200ms",
            "description": "The duration of the button's transition if enabled"
          },
          {
            "type": "List",
            "name": "transition-properties",
            "default": "(border-color, background-color, color, box-shadow)",
            "description": "The properties to transition if `transition-enabled`"
          }
        ],
        "group": [
          "button"
        ],
        "access": "public",
        "file": {
          "path": "_button.scss",
          "name": "_button.scss"
        }
      },
      {
        "id": "variable-sizes",
        "title": "$sizes",
        "groupName": "button",
        "path": "/sass/core/button/#variable-sizes",
        "description": "Button sizes\n- A map that holds to the sizes for buttons in the theme\n- Use set-sizes() to adjust the sizes for the theme\n- Don't edit sizes variable directly\n",
        "commentRange": {
          "start": 91,
          "end": 95
        },
        "context": {
          "type": "variable",
          "name": "sizes",
          "value": "(\n  \"small\" : (\n    \"padding\":        (0.35em 1em),\n    \"min-width\":      0,\n    \"icon-size\":      2rem,\n    \"icon-font-size\": 1rem\n  ),\n  \"large\" : (\n    \"padding\":   (1em 2em),\n    \"min-width\": 11rem,\n    \"icon-size\": 3.5rem\n  )\n)",
          "scope": "default",
          "line": {
            "start": 96,
            "end": 109
          }
        },
        "type": "Map",
        "group": [
          "button"
        ],
        "access": "public",
        "file": {
          "path": "_button.scss",
          "name": "_button.scss"
        }
      },
      {
        "id": "variable-styles",
        "title": "$styles",
        "groupName": "button",
        "path": "/sass/core/button/#variable-styles",
        "description": "Button styles\n- A map of styles for each button in the theme. Us set-styles() to overwrite or merge into these styles\n- Don't edit styles variable directly\n",
        "commentRange": {
          "start": 111,
          "end": 114
        },
        "context": {
          "type": "variable",
          "name": "styles",
          "value": "(\n  \"transparent\" : (\n    \"background-color\" : transparent,\n    \"color\" : \"type\",\n    \"border-color\" : transparent,\n    \"box-shadow\" : none,\n    \"hover\" : (\n      \"background-color\" : \"control-background\",\n      \"color\" : \"control\",\n      \"border-color\" : \"control-border\",\n    )\n  ),\n  \"outline\" : (\n    \"background-color\" : transparent,\n    \"color\" : \"type\",\n    \"border-color\" : \"rule-light\",\n    \"box-shadow\" : none,\n    \"hover\" : (\n      \"background-color\" : \"control-background\",\n      \"color\" : \"control\",\n      \"border-color\" : \"control-border\",\n    )\n  ),\n)",
          "scope": "default",
          "line": {
            "start": 116,
            "end": 139
          }
        },
        "type": "Map",
        "group": [
          "button"
        ],
        "access": "public",
        "file": {
          "path": "_button.scss",
          "name": "_button.scss"
        },
        "usedBy": [
          {
            "description": "Set button styles \n- See $styles for example of structure of map\n",
            "context": {
              "type": "mixin",
              "name": "set-styles",
              "code": "\n  $styles: utils.map-merge($styles, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 166,
                "end": 168
              }
            }
          },
          {
            "description": "Set button styles \n- See $styles for example of structure of map\n",
            "context": {
              "type": "mixin",
              "name": "set-styles",
              "code": "\n  $styles: utils.map-merge($styles, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 166,
                "end": 168
              }
            }
          },
          {
            "description": "Get a value from a button style\n",
            "context": {
              "type": "function",
              "name": "get-style-value",
              "code": "\n  $style: utils.require-map-get($styles, $name, 'button [color value]');\n  $state-style: ();\n  // If a specific state [hover, active] grab that map\n  @if ($state) {\n    $state-style: map.get($style, $state);\n    $state-style: utils.when($state-style, $state-style, ());\n  }\n  // From is the map to grab styles from\n  $from: utils.when($state, $state-style, $style);\n  $value: map.get($from, $prop);\n\n  // Fallback to parent (if hover)\n  @if ($state == \"hover\") {\n    $value: utils.when($value, $value, map.get($style, $prop)); \n  }\n\n  @if (meta.type-of($value) == \"string\" and string.index($prop, \"color\")) {\n    @return color.get($value);\n  } @else {\n    @return $value;\n  }\n",
              "line": {
                "start": 297,
                "end": 319
              }
            }
          }
        ]
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "button",
        "path": "/sass/core/button/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 141,
          "end": 144
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 146,
            "end": 148
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.button-set(( \"property\" : value ));",
            "description": "General example"
          }
        ],
        "group": [
          "button"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_button.scss",
          "name": "_button.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "button",
        "path": "/sass/core/button/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 150,
          "end": 154
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  $value: utils.require-map-get($config, $name, \"button [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
          "line": {
            "start": 156,
            "end": 159
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "$shadow: ulu.button-get(\"box-shadow\");",
            "description": "General example"
          }
        ],
        "return": {
          "type": "*",
          "description": "Resolved value"
        },
        "group": [
          "button"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "require-map-get"
          },
          {
            "type": "function",
            "name": "function-fallback"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_button.scss",
          "name": "_button.scss"
        }
      },
      {
        "id": "mixin-set-styles",
        "title": "set-styles()",
        "groupName": "button",
        "path": "/sass/core/button/#mixin-set-styles",
        "description": "Set button styles \n- See $styles for example of structure of map\n",
        "commentRange": {
          "start": 161,
          "end": 164
        },
        "context": {
          "type": "mixin",
          "name": "set-styles",
          "code": "\n  $styles: utils.map-merge($styles, $changes, $merge-mode) !global;\n",
          "line": {
            "start": 166,
            "end": 168
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          },
          {
            "type": "String",
            "name": "merge-mode",
            "description": "Merge mode see utils.map-merge() [null|\"deep\"|\"overwrite\"]"
          }
        ],
        "group": [
          "button"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "map-merge"
          },
          {
            "type": "variable",
            "name": "styles"
          },
          {
            "type": "variable",
            "name": "styles"
          }
        ],
        "file": {
          "path": "_button.scss",
          "name": "_button.scss"
        }
      },
      {
        "id": "mixin-set-sizes",
        "title": "set-sizes()",
        "groupName": "button",
        "path": "/sass/core/button/#mixin-set-sizes",
        "description": "Set Button Sizes\n- See $sizes for example of structure of map\n",
        "commentRange": {
          "start": 170,
          "end": 173
        },
        "context": {
          "type": "mixin",
          "name": "set-sizes",
          "code": "\n  $sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;\n",
          "line": {
            "start": 175,
            "end": 177
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          },
          {
            "type": "String",
            "name": "merge-mode",
            "description": "Merge mode see utils.map-merge() [null|\"deep\"|\"overwrite\"]"
          }
        ],
        "group": [
          "button"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "map-merge"
          },
          {
            "type": "variable",
            "name": "sizes"
          },
          {
            "type": "variable",
            "name": "sizes"
          }
        ],
        "file": {
          "path": "_button.scss",
          "name": "_button.scss"
        }
      },
      {
        "id": "mixin-reset",
        "title": "reset()",
        "groupName": "button",
        "path": "/sass/core/button/#mixin-reset",
        "description": "Reset CSS for button (to change browser defaults for button styling)\n",
        "commentRange": {
          "start": 179,
          "end": 179
        },
        "context": {
          "type": "mixin",
          "name": "reset",
          "code": "\n  text-transform: none;\n  text-align: inherit;\n  background-color: transparent;\n  border: transparent;\n  border-radius: 0;\n  margin: 0;\n  padding: 0;\n  appearance: none; \n  color: inherit; \n  cursor: pointer;\n",
          "line": {
            "start": 181,
            "end": 192
          }
        },
        "group": [
          "button"
        ],
        "access": "public",
        "file": {
          "path": "_button.scss",
          "name": "_button.scss"
        },
        "usedBy": [
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          }
        ]
      },
      {
        "id": "mixin-default",
        "title": "default()",
        "groupName": "button",
        "path": "/sass/core/button/#mixin-default",
        "description": "Output the default button styles\n",
        "commentRange": {
          "start": 194,
          "end": 195
        },
        "context": {
          "type": "mixin",
          "name": "default",
          "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
          "line": {
            "start": 197,
            "end": 256
          }
        },
        "parameter": [
          {
            "type": "Boolean",
            "name": "with-reset",
            "default": "false",
            "description": "Include button.reset()"
          }
        ],
        "group": [
          "button"
        ],
        "access": "public",
        "require": [
          {
            "type": "mixin",
            "name": "reset"
          },
          {
            "type": "mixin",
            "name": "when-active"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_button.scss",
          "name": "_button.scss"
        }
      },
      {
        "id": "mixin-when-active",
        "title": "when-active()",
        "groupName": "button",
        "path": "/sass/core/button/#mixin-when-active",
        "description": "Mixin to wrap in active selectors\n- Use to match the button's active selector\n",
        "commentRange": {
          "start": 258,
          "end": 266
        },
        "context": {
          "type": "mixin",
          "name": "when-active",
          "code": "\n  #{ get(\"active-selector\") } {\n    @content;\n  }\n",
          "line": {
            "start": 268,
            "end": 272
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "// Site specific styling for active button\n.button {\n  @include when-active() {\n    background: linear-gradient(0.25turn, #3f87a6, #ebf8e1, #f69d3c);\n  }\n}"
          }
        ],
        "group": [
          "button"
        ],
        "access": "public",
        "content": "",
        "require": [
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_button.scss",
          "name": "_button.scss"
        },
        "usedBy": [
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Print a button style\n- Includes base/visited styling, and hover/focus state styles\n- To print only one of those states, use style-styles or style-styles-hover\n- By default this mixin prints the buttons base styles along with :visited state. \n  This is to avoid link visited states effecting the button styles (if used in editor areas \n  or other areas that apply automatic links styling for example. (param below to override behavior)\n",
            "context": {
              "type": "mixin",
              "name": "style",
              "code": "\n  @if ($no-visited) {\n    @include style-styles($name);\n  } @else {\n    &,\n    &:visited {\n      @include style-styles($name);\n    }\n  }\n  &:hover,\n  &:focus {\n    @include style-styles-hover($name);\n  }\n  @include when-active() {\n    @include style-styles-active($name);\n  }\n",
              "line": {
                "start": 375,
                "end": 391
              }
            }
          }
        ]
      },
      {
        "id": "mixin-size",
        "title": "size()",
        "groupName": "button",
        "path": "/sass/core/button/#mixin-size",
        "description": "Print button size styles for a specific size\n",
        "commentRange": {
          "start": 274,
          "end": 277
        },
        "context": {
          "type": "mixin",
          "name": "size",
          "code": "\n  $size: utils.require-map-get($sizes, $name, 'button [size]');\n  $font-size: map.get($size, \"font-size\");\n  padding: map.get($size, \"padding\");\n  border-radius: map.get($size, \"border-radius\");\n  border-width: map.get($size, \"border-width\");\n  min-width: map.get($size, \"min-width\");\n  @if $font-size {\n    @include typography.size($font-size);\n  }\n",
          "line": {
            "start": 279,
            "end": 289
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "description": "Name of size from $sizes"
          }
        ],
        "see": [
          {
            "description": "The default breakpoint sizes\n- Map of breakpoints\n- Each property is the breakpoints name\n- Each value is that breakpoints point (set in em by default)\n",
            "context": {
              "type": "variable",
              "name": "sizes",
              "value": "(\n  \"small\"  : utils.pixel-to-em(680px, get(\"base\")),\n  \"medium\" : utils.pixel-to-em(1200px, get(\"base\")),\n  \"large\"  : utils.pixel-to-em(1500px, get(\"base\"))\n)",
              "scope": "default",
              "line": {
                "start": 51,
                "end": 55
              }
            },
            "group": [
              "breakpoint"
            ]
          },
          {
            "description": "Update the breakpoint sizes map\n",
            "context": {
              "type": "mixin",
              "name": "set-sizes",
              "code": "\n  $sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 66,
                "end": 68
              }
            },
            "group": [
              "breakpoint"
            ]
          }
        ],
        "group": [
          "button"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "require-map-get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "variable",
            "name": "sizes"
          }
        ],
        "file": {
          "path": "_button.scss",
          "name": "_button.scss"
        },
        "usedBy": [
          {
            "description": "Output an optional typography size\n- If $name is not a string (ie. null, etc) no size will be output\n- If the size is not defined no size will be output\n",
            "context": {
              "type": "mixin",
              "name": "optional-size",
              "code": "\n  @if (meta.type-of($name) == \"string\" and has-size($name)) {\n    @include size($name, $changes, $only-font-size);\n  }\n",
              "line": {
                "start": 317,
                "end": 321
              }
            }
          }
        ]
      },
      {
        "id": "function-get-style-value",
        "title": "get-style-value()",
        "groupName": "button",
        "path": "/sass/core/button/#function-get-style-value",
        "description": "Get a value from a button style\n",
        "commentRange": {
          "start": 291,
          "end": 295
        },
        "context": {
          "type": "function",
          "name": "get-style-value",
          "code": "\n  $style: utils.require-map-get($styles, $name, 'button [color value]');\n  $state-style: ();\n  // If a specific state [hover, active] grab that map\n  @if ($state) {\n    $state-style: map.get($style, $state);\n    $state-style: utils.when($state-style, $state-style, ());\n  }\n  // From is the map to grab styles from\n  $from: utils.when($state, $state-style, $style);\n  $value: map.get($from, $prop);\n\n  // Fallback to parent (if hover)\n  @if ($state == \"hover\") {\n    $value: utils.when($value, $value, map.get($style, $prop)); \n  }\n\n  @if (meta.type-of($value) == \"string\" and string.index($prop, \"color\")) {\n    @return color.get($value);\n  } @else {\n    @return $value;\n  }\n",
          "line": {
            "start": 297,
            "end": 319
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "description": "Name of style from $styles"
          }
        ],
        "see": [
          {
            "description": "Button styles\n- A map of styles for each button in the theme. Us set-styles() to overwrite or merge into these styles\n- Don't edit styles variable directly\n",
            "context": {
              "type": "variable",
              "name": "styles",
              "value": "(\n  \"transparent\" : (\n    \"background-color\" : transparent,\n    \"color\" : \"type\",\n    \"border-color\" : transparent,\n    \"box-shadow\" : none,\n    \"hover\" : (\n      \"background-color\" : \"control-background\",\n      \"color\" : \"control\",\n      \"border-color\" : \"control-border\",\n    )\n  ),\n  \"outline\" : (\n    \"background-color\" : transparent,\n    \"color\" : \"type\",\n    \"border-color\" : \"rule-light\",\n    \"box-shadow\" : none,\n    \"hover\" : (\n      \"background-color\" : \"control-background\",\n      \"color\" : \"control\",\n      \"border-color\" : \"control-border\",\n    )\n  ),\n)",
              "scope": "default",
              "line": {
                "start": 116,
                "end": 139
              }
            },
            "group": [
              "button"
            ]
          },
          {
            "description": "Set button styles \n- See $styles for example of structure of map\n",
            "context": {
              "type": "mixin",
              "name": "set-styles",
              "code": "\n  $styles: utils.map-merge($styles, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 166,
                "end": 168
              }
            },
            "group": [
              "button"
            ]
          }
        ],
        "return": {
          "type": "*",
          "description": "The property you were trying to get"
        },
        "group": [
          "button"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "require-map-get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "when"
          },
          {
            "type": "function",
            "name": "when"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "when"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "variable",
            "name": "styles"
          }
        ],
        "file": {
          "path": "_button.scss",
          "name": "_button.scss"
        },
        "usedBy": [
          {
            "description": "Print a button style's base styles (not hover)\n- In most cases you want the style() mixin\n- This is used mainly for trying to match a buttons base styles without including the other state (hover, etc) styles\n",
            "context": {
              "type": "mixin",
              "name": "style-styles",
              "code": "\n  background-color: get-style-value($name, \"background-color\");\n  color: get-style-value($name, \"color\");\n  border-color: get-style-value($name, \"border-color\");\n  border-width: get-style-value($name, \"border-width\");\n  box-shadow: get-style-value($name, \"box-shadow\");\n  text-decoration: get-style-value($name, \"text-decoration\");\n  font-weight: get-style-value($name, \"font-weight\");\n  @if get-style-value($name, \"transition-duration\") {\n    transition-duration: get-style-value($name, \"transition-duration\");\n  }\n",
              "line": {
                "start": 328,
                "end": 339
              }
            }
          },
          {
            "description": "Print a button style's base styles (not hover)\n- In most cases you want the style() mixin\n- This is used mainly for trying to match a buttons base styles without including the other state (hover, etc) styles\n",
            "context": {
              "type": "mixin",
              "name": "style-styles",
              "code": "\n  background-color: get-style-value($name, \"background-color\");\n  color: get-style-value($name, \"color\");\n  border-color: get-style-value($name, \"border-color\");\n  border-width: get-style-value($name, \"border-width\");\n  box-shadow: get-style-value($name, \"box-shadow\");\n  text-decoration: get-style-value($name, \"text-decoration\");\n  font-weight: get-style-value($name, \"font-weight\");\n  @if get-style-value($name, \"transition-duration\") {\n    transition-duration: get-style-value($name, \"transition-duration\");\n  }\n",
              "line": {
                "start": 328,
                "end": 339
              }
            }
          },
          {
            "description": "Print a button style's base styles (not hover)\n- In most cases you want the style() mixin\n- This is used mainly for trying to match a buttons base styles without including the other state (hover, etc) styles\n",
            "context": {
              "type": "mixin",
              "name": "style-styles",
              "code": "\n  background-color: get-style-value($name, \"background-color\");\n  color: get-style-value($name, \"color\");\n  border-color: get-style-value($name, \"border-color\");\n  border-width: get-style-value($name, \"border-width\");\n  box-shadow: get-style-value($name, \"box-shadow\");\n  text-decoration: get-style-value($name, \"text-decoration\");\n  font-weight: get-style-value($name, \"font-weight\");\n  @if get-style-value($name, \"transition-duration\") {\n    transition-duration: get-style-value($name, \"transition-duration\");\n  }\n",
              "line": {
                "start": 328,
                "end": 339
              }
            }
          },
          {
            "description": "Print a button style's base styles (not hover)\n- In most cases you want the style() mixin\n- This is used mainly for trying to match a buttons base styles without including the other state (hover, etc) styles\n",
            "context": {
              "type": "mixin",
              "name": "style-styles",
              "code": "\n  background-color: get-style-value($name, \"background-color\");\n  color: get-style-value($name, \"color\");\n  border-color: get-style-value($name, \"border-color\");\n  border-width: get-style-value($name, \"border-width\");\n  box-shadow: get-style-value($name, \"box-shadow\");\n  text-decoration: get-style-value($name, \"text-decoration\");\n  font-weight: get-style-value($name, \"font-weight\");\n  @if get-style-value($name, \"transition-duration\") {\n    transition-duration: get-style-value($name, \"transition-duration\");\n  }\n",
              "line": {
                "start": 328,
                "end": 339
              }
            }
          },
          {
            "description": "Print a button style's base styles (not hover)\n- In most cases you want the style() mixin\n- This is used mainly for trying to match a buttons base styles without including the other state (hover, etc) styles\n",
            "context": {
              "type": "mixin",
              "name": "style-styles",
              "code": "\n  background-color: get-style-value($name, \"background-color\");\n  color: get-style-value($name, \"color\");\n  border-color: get-style-value($name, \"border-color\");\n  border-width: get-style-value($name, \"border-width\");\n  box-shadow: get-style-value($name, \"box-shadow\");\n  text-decoration: get-style-value($name, \"text-decoration\");\n  font-weight: get-style-value($name, \"font-weight\");\n  @if get-style-value($name, \"transition-duration\") {\n    transition-duration: get-style-value($name, \"transition-duration\");\n  }\n",
              "line": {
                "start": 328,
                "end": 339
              }
            }
          },
          {
            "description": "Print a button style's base styles (not hover)\n- In most cases you want the style() mixin\n- This is used mainly for trying to match a buttons base styles without including the other state (hover, etc) styles\n",
            "context": {
              "type": "mixin",
              "name": "style-styles",
              "code": "\n  background-color: get-style-value($name, \"background-color\");\n  color: get-style-value($name, \"color\");\n  border-color: get-style-value($name, \"border-color\");\n  border-width: get-style-value($name, \"border-width\");\n  box-shadow: get-style-value($name, \"box-shadow\");\n  text-decoration: get-style-value($name, \"text-decoration\");\n  font-weight: get-style-value($name, \"font-weight\");\n  @if get-style-value($name, \"transition-duration\") {\n    transition-duration: get-style-value($name, \"transition-duration\");\n  }\n",
              "line": {
                "start": 328,
                "end": 339
              }
            }
          },
          {
            "description": "Print a button style's base styles (not hover)\n- In most cases you want the style() mixin\n- This is used mainly for trying to match a buttons base styles without including the other state (hover, etc) styles\n",
            "context": {
              "type": "mixin",
              "name": "style-styles",
              "code": "\n  background-color: get-style-value($name, \"background-color\");\n  color: get-style-value($name, \"color\");\n  border-color: get-style-value($name, \"border-color\");\n  border-width: get-style-value($name, \"border-width\");\n  box-shadow: get-style-value($name, \"box-shadow\");\n  text-decoration: get-style-value($name, \"text-decoration\");\n  font-weight: get-style-value($name, \"font-weight\");\n  @if get-style-value($name, \"transition-duration\") {\n    transition-duration: get-style-value($name, \"transition-duration\");\n  }\n",
              "line": {
                "start": 328,
                "end": 339
              }
            }
          },
          {
            "description": "Print a button style's base styles (not hover)\n- In most cases you want the style() mixin\n- This is used mainly for trying to match a buttons base styles without including the other state (hover, etc) styles\n",
            "context": {
              "type": "mixin",
              "name": "style-styles",
              "code": "\n  background-color: get-style-value($name, \"background-color\");\n  color: get-style-value($name, \"color\");\n  border-color: get-style-value($name, \"border-color\");\n  border-width: get-style-value($name, \"border-width\");\n  box-shadow: get-style-value($name, \"box-shadow\");\n  text-decoration: get-style-value($name, \"text-decoration\");\n  font-weight: get-style-value($name, \"font-weight\");\n  @if get-style-value($name, \"transition-duration\") {\n    transition-duration: get-style-value($name, \"transition-duration\");\n  }\n",
              "line": {
                "start": 328,
                "end": 339
              }
            }
          },
          {
            "description": "Print a button style's base styles (not hover)\n- In most cases you want the style() mixin\n- This is used mainly for trying to match a buttons base styles without including the other state (hover, etc) styles\n",
            "context": {
              "type": "mixin",
              "name": "style-styles",
              "code": "\n  background-color: get-style-value($name, \"background-color\");\n  color: get-style-value($name, \"color\");\n  border-color: get-style-value($name, \"border-color\");\n  border-width: get-style-value($name, \"border-width\");\n  box-shadow: get-style-value($name, \"box-shadow\");\n  text-decoration: get-style-value($name, \"text-decoration\");\n  font-weight: get-style-value($name, \"font-weight\");\n  @if get-style-value($name, \"transition-duration\") {\n    transition-duration: get-style-value($name, \"transition-duration\");\n  }\n",
              "line": {
                "start": 328,
                "end": 339
              }
            }
          },
          {
            "description": "Print a button style's base styles (hover styles only)\n- In most cases you want the style() mixin\n- This is used mainly for trying to match a buttons hover styles without including the base styling\n",
            "context": {
              "type": "mixin",
              "name": "style-styles-hover",
              "code": "\n  background-color: get-style-value($name, \"background-color\", \"hover\");\n  color: get-style-value($name, \"color\", \"hover\");\n  border-color: get-style-value($name, \"border-color\", \"hover\");\n  box-shadow: get-style-value($name, \"box-shadow\", \"hover\");\n  text-decoration: get-style-value($name, \"text-decoration\", \"hover\");\n",
              "line": {
                "start": 348,
                "end": 354
              }
            }
          },
          {
            "description": "Print a button style's base styles (hover styles only)\n- In most cases you want the style() mixin\n- This is used mainly for trying to match a buttons hover styles without including the base styling\n",
            "context": {
              "type": "mixin",
              "name": "style-styles-hover",
              "code": "\n  background-color: get-style-value($name, \"background-color\", \"hover\");\n  color: get-style-value($name, \"color\", \"hover\");\n  border-color: get-style-value($name, \"border-color\", \"hover\");\n  box-shadow: get-style-value($name, \"box-shadow\", \"hover\");\n  text-decoration: get-style-value($name, \"text-decoration\", \"hover\");\n",
              "line": {
                "start": 348,
                "end": 354
              }
            }
          },
          {
            "description": "Print a button style's base styles (hover styles only)\n- In most cases you want the style() mixin\n- This is used mainly for trying to match a buttons hover styles without including the base styling\n",
            "context": {
              "type": "mixin",
              "name": "style-styles-hover",
              "code": "\n  background-color: get-style-value($name, \"background-color\", \"hover\");\n  color: get-style-value($name, \"color\", \"hover\");\n  border-color: get-style-value($name, \"border-color\", \"hover\");\n  box-shadow: get-style-value($name, \"box-shadow\", \"hover\");\n  text-decoration: get-style-value($name, \"text-decoration\", \"hover\");\n",
              "line": {
                "start": 348,
                "end": 354
              }
            }
          },
          {
            "description": "Print a button style's base styles (hover styles only)\n- In most cases you want the style() mixin\n- This is used mainly for trying to match a buttons hover styles without including the base styling\n",
            "context": {
              "type": "mixin",
              "name": "style-styles-hover",
              "code": "\n  background-color: get-style-value($name, \"background-color\", \"hover\");\n  color: get-style-value($name, \"color\", \"hover\");\n  border-color: get-style-value($name, \"border-color\", \"hover\");\n  box-shadow: get-style-value($name, \"box-shadow\", \"hover\");\n  text-decoration: get-style-value($name, \"text-decoration\", \"hover\");\n",
              "line": {
                "start": 348,
                "end": 354
              }
            }
          },
          {
            "description": "Print a button style's base styles (hover styles only)\n- In most cases you want the style() mixin\n- This is used mainly for trying to match a buttons hover styles without including the base styling\n",
            "context": {
              "type": "mixin",
              "name": "style-styles-hover",
              "code": "\n  background-color: get-style-value($name, \"background-color\", \"hover\");\n  color: get-style-value($name, \"color\", \"hover\");\n  border-color: get-style-value($name, \"border-color\", \"hover\");\n  box-shadow: get-style-value($name, \"box-shadow\", \"hover\");\n  text-decoration: get-style-value($name, \"text-decoration\", \"hover\");\n",
              "line": {
                "start": 348,
                "end": 354
              }
            }
          }
        ]
      },
      {
        "id": "mixin-style-styles",
        "title": "style-styles()",
        "groupName": "button",
        "path": "/sass/core/button/#mixin-style-styles",
        "description": "Print a button style's base styles (not hover)\n- In most cases you want the style() mixin\n- This is used mainly for trying to match a buttons base styles without including the other state (hover, etc) styles\n",
        "commentRange": {
          "start": 321,
          "end": 326
        },
        "context": {
          "type": "mixin",
          "name": "style-styles",
          "code": "\n  background-color: get-style-value($name, \"background-color\");\n  color: get-style-value($name, \"color\");\n  border-color: get-style-value($name, \"border-color\");\n  border-width: get-style-value($name, \"border-width\");\n  box-shadow: get-style-value($name, \"box-shadow\");\n  text-decoration: get-style-value($name, \"text-decoration\");\n  font-weight: get-style-value($name, \"font-weight\");\n  @if get-style-value($name, \"transition-duration\") {\n    transition-duration: get-style-value($name, \"transition-duration\");\n  }\n",
          "line": {
            "start": 328,
            "end": 339
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "description": "Name of style from $styles"
          }
        ],
        "see": [
          {
            "description": "Button styles\n- A map of styles for each button in the theme. Us set-styles() to overwrite or merge into these styles\n- Don't edit styles variable directly\n",
            "context": {
              "type": "variable",
              "name": "styles",
              "value": "(\n  \"transparent\" : (\n    \"background-color\" : transparent,\n    \"color\" : \"type\",\n    \"border-color\" : transparent,\n    \"box-shadow\" : none,\n    \"hover\" : (\n      \"background-color\" : \"control-background\",\n      \"color\" : \"control\",\n      \"border-color\" : \"control-border\",\n    )\n  ),\n  \"outline\" : (\n    \"background-color\" : transparent,\n    \"color\" : \"type\",\n    \"border-color\" : \"rule-light\",\n    \"box-shadow\" : none,\n    \"hover\" : (\n      \"background-color\" : \"control-background\",\n      \"color\" : \"control\",\n      \"border-color\" : \"control-border\",\n    )\n  ),\n)",
              "scope": "default",
              "line": {
                "start": 116,
                "end": 139
              }
            },
            "group": [
              "button"
            ]
          },
          {
            "description": "Set button styles \n- See $styles for example of structure of map\n",
            "context": {
              "type": "mixin",
              "name": "set-styles",
              "code": "\n  $styles: utils.map-merge($styles, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 166,
                "end": 168
              }
            },
            "group": [
              "button"
            ]
          }
        ],
        "group": [
          "button"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get-style-value"
          },
          {
            "type": "function",
            "name": "get-style-value"
          },
          {
            "type": "function",
            "name": "get-style-value"
          },
          {
            "type": "function",
            "name": "get-style-value"
          },
          {
            "type": "function",
            "name": "get-style-value"
          },
          {
            "type": "function",
            "name": "get-style-value"
          },
          {
            "type": "function",
            "name": "get-style-value"
          },
          {
            "type": "function",
            "name": "get-style-value"
          },
          {
            "type": "function",
            "name": "get-style-value"
          }
        ],
        "file": {
          "path": "_button.scss",
          "name": "_button.scss"
        },
        "usedBy": [
          {
            "description": "Print a button style\n- Includes base/visited styling, and hover/focus state styles\n- To print only one of those states, use style-styles or style-styles-hover\n- By default this mixin prints the buttons base styles along with :visited state. \n  This is to avoid link visited states effecting the button styles (if used in editor areas \n  or other areas that apply automatic links styling for example. (param below to override behavior)\n",
            "context": {
              "type": "mixin",
              "name": "style",
              "code": "\n  @if ($no-visited) {\n    @include style-styles($name);\n  } @else {\n    &,\n    &:visited {\n      @include style-styles($name);\n    }\n  }\n  &:hover,\n  &:focus {\n    @include style-styles-hover($name);\n  }\n  @include when-active() {\n    @include style-styles-active($name);\n  }\n",
              "line": {
                "start": 375,
                "end": 391
              }
            }
          },
          {
            "description": "Print a button style\n- Includes base/visited styling, and hover/focus state styles\n- To print only one of those states, use style-styles or style-styles-hover\n- By default this mixin prints the buttons base styles along with :visited state. \n  This is to avoid link visited states effecting the button styles (if used in editor areas \n  or other areas that apply automatic links styling for example. (param below to override behavior)\n",
            "context": {
              "type": "mixin",
              "name": "style",
              "code": "\n  @if ($no-visited) {\n    @include style-styles($name);\n  } @else {\n    &,\n    &:visited {\n      @include style-styles($name);\n    }\n  }\n  &:hover,\n  &:focus {\n    @include style-styles-hover($name);\n  }\n  @include when-active() {\n    @include style-styles-active($name);\n  }\n",
              "line": {
                "start": 375,
                "end": 391
              }
            }
          }
        ]
      },
      {
        "id": "mixin-style-styles-hover",
        "title": "style-styles-hover()",
        "groupName": "button",
        "path": "/sass/core/button/#mixin-style-styles-hover",
        "description": "Print a button style's base styles (hover styles only)\n- In most cases you want the style() mixin\n- This is used mainly for trying to match a buttons hover styles without including the base styling\n",
        "commentRange": {
          "start": 341,
          "end": 346
        },
        "context": {
          "type": "mixin",
          "name": "style-styles-hover",
          "code": "\n  background-color: get-style-value($name, \"background-color\", \"hover\");\n  color: get-style-value($name, \"color\", \"hover\");\n  border-color: get-style-value($name, \"border-color\", \"hover\");\n  box-shadow: get-style-value($name, \"box-shadow\", \"hover\");\n  text-decoration: get-style-value($name, \"text-decoration\", \"hover\");\n",
          "line": {
            "start": 348,
            "end": 354
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "description": "Name of style from $styles"
          }
        ],
        "see": [
          {
            "description": "Button styles\n- A map of styles for each button in the theme. Us set-styles() to overwrite or merge into these styles\n- Don't edit styles variable directly\n",
            "context": {
              "type": "variable",
              "name": "styles",
              "value": "(\n  \"transparent\" : (\n    \"background-color\" : transparent,\n    \"color\" : \"type\",\n    \"border-color\" : transparent,\n    \"box-shadow\" : none,\n    \"hover\" : (\n      \"background-color\" : \"control-background\",\n      \"color\" : \"control\",\n      \"border-color\" : \"control-border\",\n    )\n  ),\n  \"outline\" : (\n    \"background-color\" : transparent,\n    \"color\" : \"type\",\n    \"border-color\" : \"rule-light\",\n    \"box-shadow\" : none,\n    \"hover\" : (\n      \"background-color\" : \"control-background\",\n      \"color\" : \"control\",\n      \"border-color\" : \"control-border\",\n    )\n  ),\n)",
              "scope": "default",
              "line": {
                "start": 116,
                "end": 139
              }
            },
            "group": [
              "button"
            ]
          },
          {
            "description": "Set button styles \n- See $styles for example of structure of map\n",
            "context": {
              "type": "mixin",
              "name": "set-styles",
              "code": "\n  $styles: utils.map-merge($styles, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 166,
                "end": 168
              }
            },
            "group": [
              "button"
            ]
          }
        ],
        "group": [
          "button"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get-style-value"
          },
          {
            "type": "function",
            "name": "get-style-value"
          },
          {
            "type": "function",
            "name": "get-style-value"
          },
          {
            "type": "function",
            "name": "get-style-value"
          },
          {
            "type": "function",
            "name": "get-style-value"
          }
        ],
        "file": {
          "path": "_button.scss",
          "name": "_button.scss"
        },
        "usedBy": [
          {
            "description": "Print a button style\n- Includes base/visited styling, and hover/focus state styles\n- To print only one of those states, use style-styles or style-styles-hover\n- By default this mixin prints the buttons base styles along with :visited state. \n  This is to avoid link visited states effecting the button styles (if used in editor areas \n  or other areas that apply automatic links styling for example. (param below to override behavior)\n",
            "context": {
              "type": "mixin",
              "name": "style",
              "code": "\n  @if ($no-visited) {\n    @include style-styles($name);\n  } @else {\n    &,\n    &:visited {\n      @include style-styles($name);\n    }\n  }\n  &:hover,\n  &:focus {\n    @include style-styles-hover($name);\n  }\n  @include when-active() {\n    @include style-styles-active($name);\n  }\n",
              "line": {
                "start": 375,
                "end": 391
              }
            }
          }
        ]
      },
      {
        "id": "mixin-style",
        "title": "style()",
        "groupName": "button",
        "path": "/sass/core/button/#mixin-style",
        "description": "Print a button style\n- Includes base/visited styling, and hover/focus state styles\n- To print only one of those states, use style-styles or style-styles-hover\n- By default this mixin prints the buttons base styles along with :visited state. \n  This is to avoid link visited states effecting the button styles (if used in editor areas \n  or other areas that apply automatic links styling for example. (param below to override behavior)\n",
        "commentRange": {
          "start": 364,
          "end": 373
        },
        "context": {
          "type": "mixin",
          "name": "style",
          "code": "\n  @if ($no-visited) {\n    @include style-styles($name);\n  } @else {\n    &,\n    &:visited {\n      @include style-styles($name);\n    }\n  }\n  &:hover,\n  &:focus {\n    @include style-styles-hover($name);\n  }\n  @include when-active() {\n    @include style-styles-active($name);\n  }\n",
          "line": {
            "start": 375,
            "end": 391
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "description": "Name of style from $styles"
          },
          {
            "type": "String",
            "name": "no-visited",
            "default": "false",
            "description": "Do not include :visited selector for button base styles"
          }
        ],
        "see": [
          {
            "description": "Button styles\n- A map of styles for each button in the theme. Us set-styles() to overwrite or merge into these styles\n- Don't edit styles variable directly\n",
            "context": {
              "type": "variable",
              "name": "styles",
              "value": "(\n  \"transparent\" : (\n    \"background-color\" : transparent,\n    \"color\" : \"type\",\n    \"border-color\" : transparent,\n    \"box-shadow\" : none,\n    \"hover\" : (\n      \"background-color\" : \"control-background\",\n      \"color\" : \"control\",\n      \"border-color\" : \"control-border\",\n    )\n  ),\n  \"outline\" : (\n    \"background-color\" : transparent,\n    \"color\" : \"type\",\n    \"border-color\" : \"rule-light\",\n    \"box-shadow\" : none,\n    \"hover\" : (\n      \"background-color\" : \"control-background\",\n      \"color\" : \"control\",\n      \"border-color\" : \"control-border\",\n    )\n  ),\n)",
              "scope": "default",
              "line": {
                "start": 116,
                "end": 139
              }
            },
            "group": [
              "button"
            ]
          },
          {
            "description": "Set button styles \n- See $styles for example of structure of map\n",
            "context": {
              "type": "mixin",
              "name": "set-styles",
              "code": "\n  $styles: utils.map-merge($styles, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 166,
                "end": 168
              }
            },
            "group": [
              "button"
            ]
          }
        ],
        "group": [
          "button"
        ],
        "access": "public",
        "require": [
          {
            "type": "mixin",
            "name": "style-styles"
          },
          {
            "type": "mixin",
            "name": "style-styles"
          },
          {
            "type": "mixin",
            "name": "style-styles-hover"
          },
          {
            "type": "mixin",
            "name": "when-active"
          }
        ],
        "file": {
          "path": "_button.scss",
          "name": "_button.scss"
        }
      }
    ],
    "button-group": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "button-group",
        "path": "/sass/components/button-group/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 14,
          "end": 18
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"gap\": 0.45em,\n  \"gap-joined\" : 0,\n  \"no-min-width\" : true\n)",
          "scope": "default",
          "line": {
            "start": 20,
            "end": 24
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Dimension",
            "name": "gap",
            "default": "0.45em",
            "description": "Gap between buttons"
          },
          {
            "type": "Dimension",
            "name": "gap-joined",
            "default": "0",
            "description": "When using --joined modifier optional gap, if 0 the buttons borders will overlap, joined-gap is useful if your buttons don't have borders"
          },
          {
            "type": "Boolean",
            "name": "no-min-width",
            "default": "true",
            "description": "Buttons within the button group should have no min width"
          }
        ],
        "group": [
          "button-group"
        ],
        "access": "public",
        "file": {
          "path": "_button-group.scss",
          "name": "_button-group.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "button-group",
        "path": "/sass/components/button-group/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 26,
          "end": 29
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 31,
            "end": 33
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-button-group-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "button-group"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_button-group.scss",
          "name": "_button-group.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "button-group",
        "path": "/sass/components/button-group/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 35,
          "end": 38
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"button-group [config]\");\n",
          "line": {
            "start": 40,
            "end": 42
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-button-group-get(\"property\");"
          }
        ],
        "group": [
          "button-group"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_button-group.scss",
          "name": "_button-group.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "button-group",
        "path": "/sass/components/button-group/#mixin-styles",
        "description": "Prints component styles\n",
        "commentRange": {
          "start": 44,
          "end": 47
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"button-group\");\n  $prefix-button: selector.class(\"button\");\n\n  $button-radius: button.get(\"border-radius\");\n  \n  #{ $prefix } {\n    display: flex;\n    flex-wrap: wrap;\n    gap: get(\"gap\");\n    #{ $prefix-button } {\n      margin: 0;\n    }\n  }\n  #{ $prefix }--joined {\n    flex-wrap: nowrap;\n    overflow-x: auto;\n    gap: get(\"gap-joined\");\n    // border-radius: button.get(\"border-radius\");\n    #{ $prefix-button } {\n      position: relative; // To move to front when hover/active\n      border-radius: 0;\n      min-width: 0;\n      @if (get(\"gap-joined\") == 0) {\n        margin-left: -(button.get(\"border-width\"));\n      }\n      \n      &:first-child {\n        border-top-left-radius: $button-radius;\n        border-bottom-left-radius: $button-radius;\n        margin-left: 0;\n      }\n      &:last-child {\n        border-top-right-radius: $button-radius;\n        border-bottom-right-radius: $button-radius;\n      }\n      #{ button.get(\"active-selector\") } {\n        z-index: 2;\n      }\n      &:hover,\n      &:focus {\n        z-index: 2;\n      }\n      \n    }\n  }\n",
          "line": {
            "start": 49,
            "end": 95
          }
        },
        "demo": {
          "link": "button-group",
          "content": null
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-button-group-styles();"
          }
        ],
        "group": [
          "button-group"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_button-group.scss",
          "name": "_button-group.scss"
        }
      }
    ],
    "button-verbose": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "button-verbose",
        "path": "/sass/components/button-verbose/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 39,
          "end": 66
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"background-color\" : white,\n  \"background-color-hover\" : #F7F8F7,\n  \"border-radius\" : true,\n  \"border-color\" : null,\n  \"border-width\" : null,\n  \"box-shadow\" : true,\n  \"box-shadow-hover\" : true,\n  \"color\" : \"type\",\n  \"color-hover\" : \"type\",\n  \"icon-color\": gray,\n  \"icon-color-hover\": null,\n  \"icon-font-size\" : 1.25rem,\n  \"line-height\" : 1.2,\n  \"margin\" : 1em,\n  \"margin-inline\" : 0.75em,\n  \"min-width\": 20rem,\n  \"padding-x\": 0.75em,\n  \"padding-y\": 1em,\n  \"title-color\": \"link\",\n  \"title-margin\" : 0.5em,\n  \"title-color-hover\" : \"link-hover\",\n  \"cap\" : false,\n  \"cap-side\" : \"left\",\n  \"cap-match-radius\" : true,\n  \"cap-options\" : (\n    \"color\" : \"link\",\n    \"size\" : 0.5rem,\n  ),\n  \"cap-options-hover\" : (\n    \"color\" : \"link-hover\"\n  ),\n)",
          "scope": "default",
          "line": {
            "start": 68,
            "end": 100
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Color",
            "name": "background-color",
            "default": "white",
            "description": "Background color for the button."
          },
          {
            "type": "Color",
            "name": "background-color-hover",
            "default": "link",
            "description": "Background color for the button when hovered or focused."
          },
          {
            "type": "String",
            "name": "border-radius",
            "default": "border-radius",
            "description": "Border radius of the button."
          },
          {
            "type": "String",
            "name": "border-width",
            "default": "null",
            "description": "Border width (or set to true to inherit button border width default)"
          },
          {
            "type": "String",
            "name": "border-color",
            "default": "null",
            "description": "Border color (or set to true to inherit button border width default)"
          },
          {
            "type": "CssValue",
            "name": "box-shadow",
            "default": "true",
            "description": "Box shadow for the button. If set to true, uses default box-shadow."
          },
          {
            "type": "CssValue",
            "name": "box-shadow-hover",
            "default": "true",
            "description": "Box shadow for the button when hovered or focused. If set to true, uses default box-shadow-hover."
          },
          {
            "type": "String",
            "name": "color",
            "default": "type",
            "description": "Text color for the button."
          },
          {
            "type": "String",
            "name": "color-hover",
            "default": "type",
            "description": "Text color for the button when hovered or focused."
          },
          {
            "type": "Color",
            "name": "icon-color",
            "default": "gray",
            "description": "Color for button icons."
          },
          {
            "type": "Color",
            "name": "icon-color-hover",
            "default": "null",
            "description": "Optional color for icon when hovered"
          },
          {
            "type": "Dimension",
            "name": "icon-font-size",
            "default": "1.25rem",
            "description": "Font size for the button."
          },
          {
            "type": "Number",
            "name": "line-height",
            "default": "1.2",
            "description": "Line height for button text."
          },
          {
            "type": "Dimension",
            "name": "margin",
            "default": "1em",
            "description": "Margin for the button."
          },
          {
            "type": "Dimension",
            "name": "margin-inline",
            "default": "0.75em",
            "description": "Margin for the button when using the inline modifier."
          },
          {
            "type": "Dimension",
            "name": "min-width",
            "default": "20rem",
            "description": "Min-width of the button."
          },
          {
            "type": "Dimension",
            "name": "padding-x",
            "default": "0.65em",
            "description": "Horizontal padding of the button."
          },
          {
            "type": "Dimension",
            "name": "padding-y",
            "default": "1em",
            "description": "Vertical padding of the button."
          },
          {
            "type": "String",
            "name": "title-color",
            "default": "link",
            "description": "Color of the title of the button."
          },
          {
            "type": "String",
            "name": "title-color-hover",
            "default": "link-hover",
            "description": "Color of the title of the button when hovered or focused."
          },
          {
            "type": "Dimension",
            "name": "title-margin",
            "default": "0.5em",
            "description": "Margin for the button's title."
          },
          {
            "type": "Boolean",
            "name": "cap",
            "default": "false",
            "description": "Enable left cap style"
          },
          {
            "type": "Color",
            "name": "cap-side",
            "default": "\"left\"",
            "description": "The side that gets the cap"
          },
          {
            "type": "Number",
            "name": "cap-match-radius",
            "default": "true",
            "description": "The cap should have be rounded to match the parent's border radius"
          },
          {
            "type": "Map",
            "name": "cap-options",
            "description": "The options for cap (see element.cap for options)"
          },
          {
            "type": "Map",
            "name": "cap-options-hover",
            "description": "The options for cap when hovered"
          }
        ],
        "group": [
          "button-verbose"
        ],
        "access": "public",
        "file": {
          "path": "_button-verbose.scss",
          "name": "_button-verbose.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "button-verbose",
        "path": "/sass/components/button-verbose/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 102,
          "end": 105
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 107,
            "end": 109
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-button-verbose-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "button-verbose"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_button-verbose.scss",
          "name": "_button-verbose.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "button-verbose",
        "path": "/sass/components/button-verbose/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 111,
          "end": 114
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  $value: utils.require-map-get($config, $name, \"button-verbose [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
          "line": {
            "start": 116,
            "end": 119
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-button-verbose-get(( \"property\" : value ));"
          }
        ],
        "group": [
          "button-verbose"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_button-verbose.scss",
          "name": "_button-verbose.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "button-verbose",
        "path": "/sass/components/button-verbose/#mixin-styles",
        "description": "Prints component styles\n",
        "commentRange": {
          "start": 121,
          "end": 129
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"button-verbose\");\n  $padding-x: get(\"padding-x\");\n  $padding-y: get(\"padding-y\");\n  $padding-right: ($padding-x * 2) + 1em;\n  $cap-side: get(\"cap-side\");\n  $cap-defaults: (\n    \"offset\" : utils.if-type(\"number\", get(\"border-width\"), 0),\n    \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), 0),\n    \"padding-adjust\" : utils.when(utils.is-side($cap-side), $padding-x, $padding-y)\n  );\n  \n  #{ $prefix } {\n    position: relative; // For cap and icon\n    display: block;\n    text-decoration: none;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    box-shadow: get(\"box-shadow\");\n    line-height: get(\"line-height\");\n    margin-bottom: get(\"margin\");\n    max-width: 100%;\n    width: get(\"min-width\");\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding-y $padding-right $padding-y $padding-x;\n    color: color.get(get(\"color\"));\n    text-align: left;\n\n    &:hover,\n    &:focus {\n      color: color.get(get(\"color-hover\"));\n      background-color: color.get(get(\"background-color-hover\"));\n      box-shadow: get(\"box-shadow-hover\");\n      @if get(\"title-color-hover\") {\n        #{ $prefix }__title  {\n          color: color.get(get(\"title-color-hover\"));\n        }\n      }\n      @if get(\"icon-color-hover\") {\n        #{ $prefix }__icon  {\n          color: color.get(get(\"icon-color-hover\"));\n        }\n      }\n    }\n    @if get(\"cap\") {\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, get(\"cap-options\"))\n      );\n      @if get(\"cap-options-hover\") {\n        &:hover,\n        &:focus {\n          @include element.cap-appearance(\n            $side: $cap-side,\n            $options: get(\"cap-options-hover\")\n          );\n        }\n      }\n    }\n  }\n  #{ $prefix }__title,\n  #{ $prefix }__body {\n    display: block;\n    &:first-child {\n      margin-bottom: get(\"title-margin\");\n    }\n  }\n  #{ $prefix }__title {\n    color: color.get(get(\"title-color\"));\n  }\n  #{ $prefix }__icon {\n    position: absolute;\n    top: 50%;\n    right: $padding-x;\n    transform: translateY(-50%);\n    font-size: get(\"icon-font-size\");\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n    margin-right: get(\"margin-inline\");\n    &:last-child {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }--full-width {\n    width: 100%;\n  }\n",
          "line": {
            "start": 131,
            "end": 221
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-button-verbose-styles();"
          },
          {
            "type": "html",
            "code": "<a href=\"#\" class=\"button-verbose\">\n  <strong class=\"button-verbose__title\">Example Link</strong>\n  <span class=\"button-verbose__body\">This is the body</span>\n  <span class=\"button-verbose__icon fas fa-arrow-right\" aria-hidden=\"true\"></span>\n</a>",
            "description": "Basic Example",
            "modifier": "preview"
          }
        ],
        "group": [
          "button-verbose"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_button-verbose.scss",
          "name": "_button-verbose.scss"
        }
      }
    ],
    "callout": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "callout",
        "path": "/sass/components/callout/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 22,
          "end": 35
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"background-color\" : rgb(240, 240, 240),\n  \"border-color\" : \"rule-light\",\n  \"border-radius\" :  6px,\n  \"border-width\" : 1px,\n  \"box-shadow\" : none,\n  \"caps-disabled\" : false,\n  \"cap\" : false,\n  \"cap-side\" : \"left\",\n  \"cap-match-radius\" : false,\n  \"cap-options\" : (\n    \"color\" : rgb(160, 160, 160),\n    \"size\" : 0.5rem,\n  ),\n  \"margin\" : 2rem,\n  \"padding\" : 1.5rem,\n)",
          "scope": "default",
          "line": {
            "start": 37,
            "end": 53
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Color",
            "name": "background-color",
            "default": "rgb(240, 240, 240)",
            "description": "The background color of the Callout."
          },
          {
            "type": "Color",
            "name": "border-color",
            "default": "\"rule-light\"",
            "description": "The border color of the Callout."
          },
          {
            "type": "Boolean",
            "name": "border-radius",
            "default": "true",
            "description": "The border radius of the Callout."
          },
          {
            "type": "Dimension",
            "name": "border-width",
            "default": "1px",
            "description": "The border width of the Callout."
          },
          {
            "type": "CssValue",
            "name": "box-shadow",
            "default": "none",
            "description": "The box-shadow of the Callout."
          },
          {
            "type": "Boolean",
            "name": "caps-disabled",
            "default": "false",
            "description": "If set will not output any cap styles for both base and styles"
          },
          {
            "type": "Boolean",
            "name": "cap",
            "default": "false",
            "description": "Toggles the use of caps on default callout"
          },
          {
            "type": "Boolean",
            "name": "cap-side",
            "default": "\"left\"",
            "description": "The side that gets the cap"
          },
          {
            "type": "Number",
            "name": "cap-match-radius",
            "default": "true",
            "description": "The cap should have be rounded to match the parent's border radius"
          },
          {
            "type": "Map",
            "name": "cap-options",
            "description": "The options for cap (see element.cap for options)"
          },
          {
            "type": "Dimension",
            "name": "margin",
            "default": "2rem",
            "description": "Bottom margin of the Callout."
          },
          {
            "type": "Dimension",
            "name": "padding",
            "default": "1.5rem",
            "description": "Padding of the Callout."
          }
        ],
        "group": [
          "callout"
        ],
        "access": "public",
        "file": {
          "path": "_callout.scss",
          "name": "_callout.scss"
        }
      },
      {
        "id": "variable-styles",
        "title": "$styles",
        "groupName": "callout",
        "path": "/sass/components/callout/#variable-styles",
        "description": "Styles Map (for unique variations/modifiers)\n- Adjust this with set-styles\n",
        "commentRange": {
          "start": 55,
          "end": 57
        },
        "context": {
          "type": "variable",
          "name": "styles",
          "value": "(\n  \"outline\" : (\n    \"background-color\": transparent\n  ),\n  \"info\" : (\n    \"background-color\" : \"info-background\",\n  ),\n  \"warning\" : (\n    \"background-color\" : \"warning-background\",\n  ),\n  \"success\" : (\n    \"background-color\" : \"success-background\",\n  ),\n  \"danger\" : (\n    \"background-color\" : \"danger-background\",\n  ),\n)",
          "scope": "default",
          "line": {
            "start": 59,
            "end": 75
          }
        },
        "type": "Map",
        "group": [
          "callout"
        ],
        "access": "public",
        "file": {
          "path": "_callout.scss",
          "name": "_callout.scss"
        },
        "usedBy": [
          {
            "description": "Output button component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include utils.file-header('component', 'button');\n\n  $prefix: selector.class(\"button\");\n  // $printContextual: get(\"contextual-classes\");\n  // $classContextual: \"#{ selector.class(\"button-inside\") } ;\n  $icon-selector: \"#{ $prefix }--icon\";\n  $printDescendant: \"#{ $prefix }--icon\";\n\n  #{ $prefix } {\n    @include button.default();\n  }\n  #{ $prefix }--fit {\n    min-width: 0;\n  }\n  #{ $prefix }--left {\n    justify-content: flex-start;\n    text-align: left;\n  }\n  \n  @each $size, $values in button.$sizes {\n    #{ $prefix }--#{$size} {\n      @include button.size($size);\n    }\n  }\n  \n  @each $style, $values in button.$styles {\n    #{ $prefix }--#{$style} {\n      @include button.style($style);\n    }\n  }\n  \n  #{ $icon-selector } {\n    \n    min-width: 0;\n    max-width: none;\n    border-radius: button.get(\"icon-border-radius\");\n    font-size: button.get(\"icon-font-size\");\n    width: button.get(\"icon-size\");\n    height: button.get(\"icon-size\");\n    padding: 0 !important;\n\n    #{ $prefix }__icon {\n      transform: translateY(get(\"icon-centered-vertical-offset\"));\n      margin: 0;\n    }\n  }\n\n  @each $size, $values in button.$sizes {\n    $icon-size: map.get($values, \"icon-size\");\n    $icon-font-size: map.get($values, \"icon-font-size\");\n    @if ($icon-size or $icon-font-size) {\n      #{ $prefix }--#{$size}#{ $icon-selector } {\n        width: $icon-size;\n        height: $icon-size;\n        font-size: $icon-font-size;\n      }\n    }\n  }\n",
              "line": {
                "start": 51,
                "end": 110
              }
            }
          },
          {
            "description": "Set callout style variations\n- Styles that modify padding when using mix-match caps on/off should be included last\n",
            "context": {
              "type": "mixin",
              "name": "set-styles",
              "code": "\n  $styles: utils.map-merge($styles, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 101,
                "end": 103
              }
            }
          },
          {
            "description": "Set callout style variations\n- Styles that modify padding when using mix-match caps on/off should be included last\n",
            "context": {
              "type": "mixin",
              "name": "set-styles",
              "code": "\n  $styles: utils.map-merge($styles, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 101,
                "end": 103
              }
            }
          },
          {
            "description": "Set style variations\n- See $styles for more information on map properties/structure\n",
            "context": {
              "type": "mixin",
              "name": "set-styles",
              "code": "\n  $styles: utils.map-merge($styles, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 157,
                "end": 159
              }
            }
          },
          {
            "description": "Set style variations\n- See $styles for more information on map properties/structure\n",
            "context": {
              "type": "mixin",
              "name": "set-styles",
              "code": "\n  $styles: utils.map-merge($styles, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 157,
                "end": 159
              }
            }
          },
          {
            "description": "Output component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"panel\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    overflow: get(\"overflow\");\n    background-color: get(\"background-color\");\n    box-shadow: get(\"box-shadow\");\n    border: get(\"border\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__row {\n    &:first-child {\n      border-top-left-radius: get(\"border-radius\");\n      border-top-right-radius: get(\"border-radius\");\n    }\n    &:last-child {\n      border-bottom-left-radius: get(\"border-radius\");\n      border-bottom-right-radius: get(\"border-radius\");\n    }\n  }\n\n  @each $modifier, $rows in $styles {\n    @if ($modifier == \"default\") {\n      @each $row-name, $props in $rows {\n        @if ($row-name == \"default\") {\n          #{ $prefix }__row {\n            @include create-row-style($props);\n          }\n        } @else {\n          #{ $prefix }__row--#{ $row-name } {\n            @include create-row-style($props);\n          }\n        }\n      }\n    } @else {\n      #{ $prefix }--#{ $modifier } {\n        @each $row-name, $props in $rows {\n          @if ($row-name == \"default\") {\n            #{ $prefix }__row {\n              @include create-row-style($props);\n            }\n          } @else {\n            #{ $prefix }__row--#{ $row-name } {\n              @include create-row-style($props);\n            }\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 164,
                "end": 216
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set-styles",
              "code": "\n  $styles: map.merge($styles, $changes) !global;\n",
              "line": {
                "start": 116,
                "end": 118
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set-styles",
              "code": "\n  $styles: map.merge($styles, $changes) !global;\n",
              "line": {
                "start": 116,
                "end": 118
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
              "line": {
                "start": 135,
                "end": 280
              }
            }
          },
          {
            "description": "Set tag styles \n",
            "context": {
              "type": "mixin",
              "name": "set-styles",
              "code": "\n  $styles: utils.map-merge($styles, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 41,
                "end": 43
              }
            }
          },
          {
            "description": "Set tag styles \n",
            "context": {
              "type": "mixin",
              "name": "set-styles",
              "code": "\n  $styles: utils.map-merge($styles, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 41,
                "end": 43
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"spoke-spinner\");\n\n\n  $size: get(\"size\");\n  $sizeHalf: math.div($size, 2);\n\n  $spoke-width: get(\"spoke-width\");\n  $spoke-widthHalf: math.div($spoke-width, 2);\n\n  #{ $prefix } {\n    position: relative;\n    vertical-align: middle; // When used as inline-block\n  }\n  #{ $prefix }__spinner {\n    display: inline-block;\n    position: relative;\n    width: $size;\n    height: $size;\n  }\n  #{ $prefix }__spinner div {\n    transform-origin: $sizeHalf $sizeHalf;\n    animation: UluFadeOut get(\"duration\") linear infinite;\n  }\n  #{ $prefix }__spinner div::after {\n    content: \" \";\n    display: block;\n    position: absolute;\n    top: 0;\n    left: $sizeHalf - $spoke-widthHalf;\n    width: $spoke-width;\n    height: get(\"spoke-height\");\n    border-radius: get(\"border-radius\");\n    background: color.get(get(\"color\"));\n  }\n  #{ $prefix }__spinner div:nth-child(1) {\n    transform: rotate(0deg);\n    animation-delay: -1.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(2) {\n    transform: rotate(30deg);\n    animation-delay: -1s;\n  }\n  #{ $prefix }__spinner div:nth-child(3) {\n    transform: rotate(60deg);\n    animation-delay: -0.9s;\n  }\n  #{ $prefix }__spinner div:nth-child(4) {\n    transform: rotate(90deg);\n    animation-delay: -0.8s;\n  }\n  #{ $prefix }__spinner div:nth-child(5) {\n    transform: rotate(120deg);\n    animation-delay: -0.7s;\n  }\n  #{ $prefix }__spinner div:nth-child(6) {\n    transform: rotate(150deg);\n    animation-delay: -0.6s;\n  }\n  #{ $prefix }__spinner div:nth-child(7) {\n    transform: rotate(180deg);\n    animation-delay: -0.5s;\n  }\n  #{ $prefix }__spinner div:nth-child(8) {\n    transform: rotate(210deg);\n    animation-delay: -0.4s;\n  }\n  #{ $prefix }__spinner div:nth-child(9) {\n    transform: rotate(240deg);\n    animation-delay: -0.3s;\n  }\n  #{ $prefix }__spinner div:nth-child(10) {\n    transform: rotate(270deg);\n    animation-delay: -0.2s;\n  }\n  #{ $prefix }__spinner div:nth-child(11) {\n    transform: rotate(300deg);\n    animation-delay: -0.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(12) {\n    transform: rotate(330deg);\n    animation-delay: 0s;\n  }\n\n  // Map of config props needed for a new style, omitting props like color that aren't required\n  $required: (\n    \"size\" : get(\"size\"),\n    \"spoke-width\" : get(\"spoke-width\"),\n    \"spoke-height\" : get(\"spoke-height\"),\n  );\n\n  @each $name, $style in $styles {\n    $merged: map.merge($required, $style);\n\n    $size: map.get($merged, \"size\");\n    $sizeHalf: math.div($size, 2);\n\n    $spoke-width: map.get($merged, \"spoke-width\");\n    $spoke-widthHalf: math.div($spoke-width, 2);\n\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__spinner {\n        width: $size;\n        height: $size;\n      }\n      #{ $prefix }__spinner div {\n        transform-origin: $sizeHalf $sizeHalf;\n        animation-duration: map.get($merged, \"duration\");\n      }\n      #{ $prefix }__spinner div::after {\n        left: $sizeHalf - $spoke-widthHalf;\n        width: $spoke-width;\n        height: map.get($merged, \"spoke-height\");\n        border-radius: map.get($merged, \"border-radius\");\n        background: color.get(map.get($merged, \"color\"));\n      }\n    }\n  }\n",
              "line": {
                "start": 75,
                "end": 193
              }
            }
          },
          {
            "description": "Set tag styles \n",
            "context": {
              "type": "mixin",
              "name": "set-styles",
              "code": "\n  $styles: utils.map-merge($styles, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 102,
                "end": 104
              }
            }
          },
          {
            "description": "Set tag styles \n",
            "context": {
              "type": "mixin",
              "name": "set-styles",
              "code": "\n  $styles: utils.map-merge($styles, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 102,
                "end": 104
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
              "line": {
                "start": 128,
                "end": 198
              }
            }
          }
        ]
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "callout",
        "path": "/sass/components/callout/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 77,
          "end": 80
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 82,
            "end": 84
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-callout-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "callout"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_callout.scss",
          "name": "_callout.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "callout",
        "path": "/sass/components/callout/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 86,
          "end": 89
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  $value: utils.require-map-get($config, $name, \"callout [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
          "line": {
            "start": 91,
            "end": 94
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-callout-get(\"property\");"
          }
        ],
        "group": [
          "callout"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_callout.scss",
          "name": "_callout.scss"
        }
      },
      {
        "id": "mixin-set-styles",
        "title": "set-styles()",
        "groupName": "callout",
        "path": "/sass/components/callout/#mixin-set-styles",
        "description": "Set callout style variations\n- Styles that modify padding when using mix-match caps on/off should be included last\n",
        "commentRange": {
          "start": 96,
          "end": 99
        },
        "context": {
          "type": "mixin",
          "name": "set-styles",
          "code": "\n  $styles: utils.map-merge($styles, $changes, $merge-mode) !global;\n",
          "line": {
            "start": 101,
            "end": 103
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes (options for style include [background-color, color, border-color, border-radius, border-width, box-shadow, padding, cap, cap-options]"
          },
          {
            "type": "String",
            "name": "merge-mode",
            "description": "Merge mode see utils.map-merge() [null|\"deep\"|\"overwrite\"]"
          }
        ],
        "group": [
          "callout"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "styles"
          },
          {
            "type": "variable",
            "name": "styles"
          }
        ],
        "file": {
          "path": "_callout.scss",
          "name": "_callout.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "callout",
        "path": "/sass/components/callout/#mixin-styles",
        "description": "Output component stylesheet\n",
        "commentRange": {
          "start": 105,
          "end": 107
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"callout\");  \n  $padding: get(\"padding\");\n  $padding-info: utils.get-spacing($padding);\n  $cap-options: get(\"cap-options\");\n  $cap-size: map.get($cap-options, \"size\");\n  $cap-side: get(\"cap-side\");\n\n  #{ $prefix } {\n    position: relative; // For cap\n    background-color: color.get(get(\"background-color\"));\n    padding: $padding;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin\");\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    & >:first-child {\n      margin-top: 0;\n    }\n\n    // If we have left cap on default we reuse this for all\n    // Else we will print it out manually for each unique style\n    @if (not get(\"caps-disabled\")) {   \n      $cap-defaults: (\n        \"offset\" : get(\"border-width\"),\n        \"border-radius\" : utils.when(get(\"cap-match-radius\"), get(\"border-radius\"), null),\n        // \"padding-adjust\" : map.get($padding-info, $cap-side)\n      );\n      @include element.cap(\n        $side: $cap-side,\n        $options: map.merge($cap-defaults, $cap-options)\n      );\n    }\n      \n    // If the left cap is disabled we still include it's CSS but we hide it\n    // so that other styles of callouts can use it\n    @if (not get(\"cap\")) {\n      &::before {\n        content: none;\n      }\n    // Since this is hidden and reused we need to not use padding adjust unless it\n    // was visible\n    } @else if ($cap-size) {\n      padding-#{ $cap-side }: calc(map.get($padding-info, $cap-side) + $cap-size);\n    }\n  }\n\n  @include -output-style-modifiers();\n",
          "line": {
            "start": 109,
            "end": 157
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-callout-styles();"
          }
        ],
        "group": [
          "callout"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_callout.scss",
          "name": "_callout.scss"
        }
      }
    ],
    "captioned-figure": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "captioned-figure",
        "path": "/sass/components/captioned-figure/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 31,
          "end": 49
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"text-alignment-matches\" : false,\n  \"text-alignment-matches-center-only\" : true,\n  \"background-color\" : white,\n  \"box-shadow\" : true,\n  \"margin-bottom\" : true,\n  \"line-height\" : true,\n  \"caption-padding\" :  0.5em,\n  \"color\" : null,\n  \"type-size\" : \"small\",\n  \"caption-max-width\" : min(100%, 15em),\n  \"caption-background-color\" : rgba(255,255,255,0.7),\n  \"caption-backdrop-filter\" : blur(2px),\n  \"traditional-caption-color\" : null,\n  \"traditional-caption-background-color\" : transparent,\n  \"traditional-caption-padding\" : 0.5em,\n  \"traditional-caption-max-width\" : 35em,\n  \"traditional-caption-text-align\" : right,\n)",
          "scope": "default",
          "line": {
            "start": 51,
            "end": 69
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Boolean",
            "name": "text-alignment-matches",
            "default": "false",
            "description": "Toggles matching alignment."
          },
          {
            "type": "Boolean",
            "name": "text-alignment-matches-center-only",
            "default": "true",
            "description": "Toggles matching alignment, but only if center."
          },
          {
            "type": "Color",
            "name": "background-color",
            "default": "white",
            "description": "Background color of the component."
          },
          {
            "type": "CssValue",
            "name": "box-shadow",
            "default": "true",
            "description": "Box shadow the captioned figure."
          },
          {
            "type": "Dimension",
            "name": "margin-bottom",
            "default": "true",
            "description": "Bottom margin of the captioned figure."
          },
          {
            "type": "Number",
            "name": "line-height",
            "default": "true",
            "description": "Line height of the captioned figure caption."
          },
          {
            "type": "Dimension",
            "name": "caption-padding",
            "default": "0.5em",
            "description": "Padding of the captioned figure caption."
          },
          {
            "type": "Color",
            "name": "color",
            "default": "null",
            "description": "Font color of the captioned figure caption."
          },
          {
            "type": "String",
            "name": "type-size",
            "default": "\"small\"",
            "description": "Font size of the captioned figure caption."
          },
          {
            "type": "Dimension",
            "name": "caption-max-width",
            "default": "min(100%, 15em)",
            "description": "Max width of the captioned figure caption."
          },
          {
            "type": "Color",
            "name": "caption-background-color",
            "default": "rgba(255,255,255,0.7)",
            "description": "background color of the captioned figure caption."
          },
          {
            "type": "CssValue",
            "name": "caption-backdrop-filter",
            "default": "blur(2px)",
            "description": "Filter of the backdrop of the captioned figure."
          },
          {
            "type": "Color",
            "name": "traditional-caption-color",
            "default": "null",
            "description": "Traditional style for font color."
          },
          {
            "type": "Color",
            "name": "traditional-caption-background-color",
            "default": "transparent",
            "description": "Traditional style for caption background color."
          },
          {
            "type": "Dimension",
            "name": "traditional-caption-padding",
            "default": "0.5em",
            "description": "Traditional style for caption padding."
          },
          {
            "type": "Dimension",
            "name": "traditional-caption-max-width",
            "default": "35em",
            "description": "Traditional style for caption max width."
          },
          {
            "type": "CssValue",
            "name": "traditional-caption-text-align",
            "default": "right",
            "description": "Traditional style for caption text-align."
          }
        ],
        "group": [
          "captioned-figure"
        ],
        "access": "public",
        "file": {
          "path": "_captioned-figure.scss",
          "name": "_captioned-figure.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "captioned-figure",
        "path": "/sass/components/captioned-figure/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 71,
          "end": 74
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 76,
            "end": 78
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-captioned-figure-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "captioned-figure"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_captioned-figure.scss",
          "name": "_captioned-figure.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "captioned-figure",
        "path": "/sass/components/captioned-figure/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 80,
          "end": 83
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  $value: utils.require-map-get($config, $name, \"captioned-figure [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
          "line": {
            "start": 85,
            "end": 88
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-captioned-figure-get(\"property\");"
          }
        ],
        "group": [
          "captioned-figure"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_captioned-figure.scss",
          "name": "_captioned-figure.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "captioned-figure",
        "path": "/sass/components/captioned-figure/#mixin-styles",
        "description": "Prints component styles\n",
        "commentRange": {
          "start": 90,
          "end": 92
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"captioned-figure\");\n  $set-aligns: get(\"text-alignment-matches\");\n  $aligns-center-only: get(\"text-alignment-matches-center-only\");\n\n  #{ $prefix } {\n    display: block;\n    position: relative;\n    margin-bottom: get(\"margin-bottom\");\n    background-color: color.get(get(\"background-color\"));\n    > img {\n      width: 100%;\n      height: auto;\n      margin: 0;\n    }\n  }\n  a#{ $prefix },\n  button#{ $prefix } {\n    display: block;\n    @if (get(\"box-shadow\")) {\n      &:hover,\n      &:focus {\n        box-shadow: get(\"box-shadow\");\n      }\n    }\n  }\n  #{ $prefix }__caption {\n    position: absolute;\n    color: color.get(get(\"color\"));\n    @include typography.size(get(\"type-size\"), $only-font-size: true);\n    line-height: get(\"line-height\");\n    max-width: get(\"caption-max-width\");\n    background-color: color.get(get(\"caption-background-color\"));\n    padding: get(\"caption-padding\");\n    backdrop-filter: get(\"caption-backdrop-filter\");\n  }\n  #{ $prefix }--traditional {\n    #{ $prefix }__caption {\n      position: static;\n      color: color.get(get(\"traditional-caption-color\"));\n      max-width: get(\"traditional-caption-max-width\");\n      background-color: color.get(get(\"traditional-caption-background-color\"));\n      padding: get(\"traditional-caption-padding\");\n      text-align: get(\"traditional-caption-text-align\");\n      @if (get(\"traditional-caption-text-align\") == right) {\n        margin-left: auto;\n      }\n      @if (get(\"traditional-caption-text-align\") == center) {\n        margin-left: auto;\n        margin-right: auto;\n      }\n    }\n  }\n  #{ $prefix }--left {\n    #{ $prefix }__caption {\n      left: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: left;\n      }\n    }\n  }\n  #{ $prefix }--right {\n    #{ $prefix }__caption {\n      right: 0;\n      @if ($set-aligns and not $aligns-center-only) {\n        text-align: right;\n      }\n    }\n  }\n  #{ $prefix }--bottom {\n    #{ $prefix }__caption {\n      bottom: 0;\n    }\n  }\n  #{ $prefix }--top {\n    #{ $prefix }__caption {\n      top: 0;\n    }\n  }\n  #{ $prefix }--bottom#{ $prefix }--center,\n  #{ $prefix }--top#{ $prefix }--center {\n    #{ $prefix }__caption {\n      left: 50%;\n      transform: translateX(-50%);\n      @if ($set-aligns or $aligns-center-only) {\n        text-align: center;\n      }\n    }\n  }\n  #{ $prefix }--left#{ $prefix }--center,\n  #{ $prefix }--right#{ $prefix }--center {\n    #{ $prefix }__caption {\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n",
          "line": {
            "start": 94,
            "end": 190
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-captioned-figure-styles();"
          }
        ],
        "group": [
          "captioned-figure"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_captioned-figure.scss",
          "name": "_captioned-figure.scss"
        }
      }
    ],
    "card": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "card",
        "path": "/sass/components/card/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 15,
          "end": 85
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  // General\n  \"padding\": 2rem,\n  \"margin-y\": 3rem,\n  \"max-width\": 28rem,\n  \"line-height\" : null,\n  \"body-min-height\": 10rem,\n  \"color\": \"type\",\n  \"color-hover\": null,\n  \"background-color\": white,\n  \"background-color-hover\": rgb(242, 244, 246),\n  \"border-radius\": 5px,\n  \"border-width\": 1px,\n  \"border-color\": #ccc,\n  \"border-hover-width\": 2px,\n  \"border-hover-color\": #278cca,\n  \"box-shadow\": null,\n  \"box-shadow-hover\": null,\n  \"box-shadow-interactive-only\": false,\n\n  // Transitions & Interactivity\n  \"transition-enabled\": true,\n  \"transition-duration\": 200ms,\n  \"transition-timing-function\": ease-in-out,\n  \"transition-properties\": (border-color, background-color, color, box-shadow, transform, outline-color, outline-width),\n  \"clickable-card-selector\": \"[data-ulu-proxy-click-init]\",\n  \"clickable-card-interact-selector\": \"&:hover, &:focus-within\",\n\n  // Title\n  \"title-color\": null,\n  \"title-color-hover\": null,\n  \"title-margin\": 1rem,\n  \"title-font-weight\": bold,\n\n  // Image\n  \"image-within-border\": true,\n  \"image-aspect-ratio\": list.slash(5, 3),\n  \"image-background-color\": rgb(238, 238, 238),\n  \"image-margin\": null,\n  \"image-border\": null, // For when you have a margin\n  \"image-transform-hover\": null,\n  \"image-filter-hover\": null,\n  \"image-transition-enabled\": true,\n  \"image-transition-duration\": 350ms,\n  \"image-transition-timing-function\": ease-in-out,\n  \"image-transition-properties\": (transform, filter, background-color),\n  \"image-fit-padding\": 1rem,\n  \"image-fit-filter\": drop-shadow(0 0px 8px rgba(0, 0, 0, 0.3)),\n  \"image-icon-max-width\": 8rem,\n\n  // Footer\n  \"footer-padding-y\": 0.5rem,\n  \"footer-min-height\": 2.5rem,\n  \"footer-justify\": flex-end,\n  \"footer-inline-padding\": 0.5rem,\n  \"footer-background-color\": null,\n\n  // Horizontal\n  \"horizontal-enabled\" : false,\n  \"horizontal-persist-enabled\" : false,\n  \"horizontal-breakpoint\": \"small\",\n  \"horizontal-min-height\": 20rem,\n  \"horizontal-max-width\": 80rem,\n  \"horizontal-image-width\": min(33%, 20rem),\n  \"horizontal-main-max-width\": 40rem,\n  \"horizontal-aside-width\": 40%,\n  \"aside-rule\": true,\n  \"aside-rule-width\": 1px,\n  \"aside-rule-color\": \"rule-light\",\n  \"aside-background-color\": null,\n\n  // Overlay\n  \"overlay-enabled\" : false,\n  \"overlay-aspect-ratio\": list.slash(4, 3),\n  \"overlay-color\": white,\n  \"overlay-title-color\": null,\n  \"overlay-title-color-hover\": rgb(79, 175, 230),\n  \"overlay-background-color\": rgba(0, 0, 0, 0.6),\n  \"overlay-background-color-hover\": rgba(0, 0, 0, 0.8),\n  \"overlay-footer-background-color\": null,\n  \"overlay-shading\": true,\n  \"overlay-shading-height\": 4rem,\n  \"overlay-body-padding-y\": 1rem\n)",
          "scope": "default",
          "line": {
            "start": 87,
            "end": 170
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Dimension",
            "name": "padding",
            "default": "2rem",
            "description": "The common padding"
          },
          {
            "type": "Dimension",
            "name": "margin-y",
            "default": "3rem",
            "description": "Top and bottom margin for the card."
          },
          {
            "type": "Dimension",
            "name": "max-width",
            "default": "28rem",
            "description": "The max-width of the card."
          },
          {
            "type": "Dimension",
            "name": "line-height",
            "default": "null",
            "description": "The line-height of the card."
          },
          {
            "type": "Dimension",
            "name": "body-min-height",
            "default": "10rem",
            "description": "the min-height of the card body."
          },
          {
            "type": "Color",
            "name": "color",
            "default": "\"type\"",
            "description": "The type color of the card."
          },
          {
            "type": "Color",
            "name": "color-hover",
            "default": "null",
            "description": "The type color of the card when hovered or focused."
          },
          {
            "type": "Color",
            "name": "background-color",
            "default": "white",
            "description": "The background color of the card."
          },
          {
            "type": "Color",
            "name": "background-color-hover",
            "default": "rgb(242, 244, 246)",
            "description": "The background color of the card when hovered or focused."
          },
          {
            "type": "Dimension",
            "name": "border-radius",
            "default": "5px",
            "description": "The border radius of the card."
          },
          {
            "type": "CssValue",
            "name": "border-width",
            "default": "1px",
            "description": "The card border width"
          },
          {
            "type": "Color",
            "name": "border-color",
            "default": "#ccc",
            "description": "The card border color"
          },
          {
            "type": "Dimension",
            "name": "border-hover-width",
            "default": "2px",
            "description": "The card border width when hovered or focused."
          },
          {
            "type": "Color",
            "name": "border-hover-color",
            "default": "#278cca",
            "description": "The card border color when hovered or focused."
          },
          {
            "type": "CssValue",
            "name": "box-shadow",
            "default": "null",
            "description": "The box-shadow for the card."
          },
          {
            "type": "CssValue",
            "name": "box-shadow-hover",
            "default": "null",
            "description": "The box-shadow for the card when hovered or focused."
          },
          {
            "type": "Boolean",
            "name": "box-shadow-interactive-only",
            "default": "false",
            "description": "If true, the box shadow will only be applied to cards that are interactive (clickable)."
          },
          {
            "type": "Boolean",
            "name": "transition-enabled",
            "default": "true",
            "description": "Enable or disable transition for card."
          },
          {
            "type": "Time",
            "name": "transition-duration",
            "default": "200ms",
            "description": "The animation duration for the card animation."
          },
          {
            "type": "CssValue",
            "name": "transition-timing-function",
            "default": "ease-in-out",
            "description": "The timing function for the card animation."
          },
          {
            "type": "List",
            "name": "transition-properties",
            "default": "(border-color, background-color, color, box-shadow, transform, outline-color, outline-width)",
            "description": "The properties for the card animation."
          },
          {
            "type": "String",
            "name": "clickable-card-selector",
            "default": "data-ulu-proxy-click-init",
            "description": "The selector for proxy-click.js to find the card and implement the clickable card script."
          },
          {
            "type": "String",
            "name": "clickable-card-interact-selector",
            "default": "&:hover, &:focus-within",
            "description": "The selectors for the cards being interacted with."
          },
          {
            "type": "Color",
            "name": "title-color",
            "default": "null",
            "description": "The type color of the title."
          },
          {
            "type": "Color",
            "name": "title-color-hover",
            "default": "null",
            "description": "The type color of the title (if link/button) when hovered or focused"
          },
          {
            "type": "Dimension",
            "name": "title-margin",
            "default": "1rem",
            "description": "The margin for the title."
          },
          {
            "type": "CssValue",
            "name": "title-font-weight",
            "default": "bold",
            "description": "The font weight for the title."
          },
          {
            "type": "Boolean",
            "name": "image-within-border",
            "default": "true",
            "description": "If false, the image will bleed to the edges of the card, sitting under the border."
          },
          {
            "type": "Number",
            "name": "image-aspect-ratio",
            "default": "5/3",
            "description": "The aspect ratio of the image."
          },
          {
            "type": "Color",
            "name": "image-background-color",
            "default": "rgb(238, 238, 238)",
            "description": "The background color behind the image."
          },
          {
            "type": "Dimension",
            "name": "image-margin",
            "default": "null",
            "description": "The margin for the image"
          },
          {
            "type": "Dimension",
            "name": "image-border",
            "default": "null",
            "description": "Optional border for the image."
          },
          {
            "type": "CssValue",
            "name": "image-transform-hover",
            "default": "null",
            "description": "Animation for the image when hovered or focused."
          },
          {
            "type": "CssValue",
            "name": "image-filter-hover",
            "default": "null",
            "description": "Filter for the image when hovered or focused."
          },
          {
            "type": "Boolean",
            "name": "image-transition-enabled",
            "default": "true",
            "description": "Enable or disable the image transition."
          },
          {
            "type": "Time",
            "name": "image-transition-duration",
            "default": "350ms",
            "description": "The duration of the image transition."
          },
          {
            "type": "CssValue",
            "name": "image-transition-timing-function",
            "default": "ease-in-out",
            "description": "The timing function for the image transition."
          },
          {
            "type": "List",
            "name": "image-transition-properties",
            "default": "(transform, filter, background-color)",
            "description": "The properties for the image transitions."
          },
          {
            "type": "Dimension",
            "name": "image-fit-padding",
            "default": "1rem",
            "description": "Padding on inside of image when using image fit modifier"
          },
          {
            "type": "CssValue",
            "name": "image-fit-filter",
            "default": "drop-shadow(0 0px 8px rgba(0, 0, 0, 0.3))",
            "description": "Filter to use on image when using image fit modifier"
          },
          {
            "type": "Dimension",
            "name": "image-icon-max-width",
            "default": "8rem",
            "description": "Max width for image when using the modifier on the .card__image--icon"
          },
          {
            "type": "Dimension",
            "name": "footer-padding-y",
            "default": "0.25rem",
            "description": "The top and bottom padding for the footer."
          },
          {
            "type": "Dimension",
            "name": "footer-min-height",
            "default": "2.5rem",
            "description": "The min height for the footer"
          },
          {
            "type": "CssValue",
            "name": "footer-justify",
            "default": "flex-end",
            "description": "Flex alignment of footer items (on end by default)"
          },
          {
            "type": "Dimension",
            "name": "footer-inline-padding",
            "default": "0.5rem",
            "description": "The padding for the footer when using the 'footer-inline' modifier."
          },
          {
            "type": "Color",
            "name": "footer-background-color",
            "default": "null",
            "description": "The background color of the footer."
          },
          {
            "type": "String",
            "name": "horizontal-enabled",
            "default": "false",
            "description": "Enable the output of horizontal related layout modifiers"
          },
          {
            "type": "String",
            "name": "horizontal-persist-enabled",
            "default": "false",
            "description": "Enable the output of horizontal-persist related layout modifiers"
          },
          {
            "type": "String",
            "name": "horizontal-breakpoint",
            "default": "small",
            "description": "The breakpoint used to change the card to vertical if using the card--horizontal styling. Uses ulu's breakpoint module."
          },
          {
            "type": "Dimension",
            "name": "horizontal-min-height",
            "default": "20rem",
            "description": "Minimum height when horizontal"
          },
          {
            "type": "Dimension",
            "name": "horizontal-max-width",
            "default": "80rem",
            "description": "Maximum width when horizontal"
          },
          {
            "type": "CssValue",
            "name": "horizontal-image-width",
            "default": "min(33%, 20rem)",
            "description": "The width of the image area when using the 'horizontal' modifier."
          },
          {
            "type": "Dimension",
            "name": "horizontal-main-max-width",
            "default": "40rem",
            "description": "The max-width of the main content area when using the 'horizontal' modifier."
          },
          {
            "type": "CssValue",
            "name": "horizontal-aside-width",
            "default": "40%",
            "description": "The width of the aside content area when using the 'horizontal' modifier."
          },
          {
            "type": "Boolean",
            "name": "aside-rule",
            "default": "true",
            "description": "Whether or not to have a rule separating body and aside"
          },
          {
            "type": "Dimension",
            "name": "aside-rule-width",
            "default": "1px",
            "description": "Size of rule"
          },
          {
            "type": "String",
            "name": "aside-rule-color",
            "default": "\"rule-light\"",
            "description": "Color of rule"
          },
          {
            "type": "Color",
            "name": "aside-background-color",
            "default": "null",
            "description": "Color of aside background color"
          },
          {
            "type": "Color",
            "name": "overlay-enabled",
            "default": "false",
            "description": "Enable the output of overlay modifier styles"
          },
          {
            "type": "Number",
            "name": "overlay-aspect-ratio",
            "default": "4/3",
            "description": "The aspect ratio of the card when using the 'overlay' modifier."
          },
          {
            "type": "Color",
            "name": "overlay-color",
            "default": "white",
            "description": "The type color of the card when using card--overlay."
          },
          {
            "type": "Color",
            "name": "overlay-title-color",
            "default": "null",
            "description": "The color of the title when using the 'overlay' modifier."
          },
          {
            "type": "Color",
            "name": "overlay-title-color-hover",
            "default": "rgb(79, 175, 230)",
            "description": "The type color of the card title when hovered or focused and when using card--overlay."
          },
          {
            "type": "Color",
            "name": "overlay-background-color",
            "default": "rgba(0, 0, 0, 0.6)",
            "description": "The background color for the text box when using card--overlay."
          },
          {
            "type": "Color",
            "name": "overlay-background-color-hover",
            "default": "red",
            "description": "The background color of the overlay when hovered or focused."
          },
          {
            "type": "Color",
            "name": "overlay-footer-background-color",
            "default": "null",
            "description": "The background color of the footer when using the 'overlay' modifier. Defaults to 'overlay-background-color'."
          },
          {
            "type": "Boolean",
            "name": "overlay-shading",
            "default": "true",
            "description": "Whether to apply a gradient shading to the overlay to improve text readability."
          },
          {
            "type": "Dimension",
            "name": "overlay-shading-height",
            "default": "4rem",
            "description": "The height of the gradient shading on the overlay."
          },
          {
            "type": "Dimension",
            "name": "overlay-body-padding-y",
            "default": "1rem",
            "description": "The top and bottom padding of the body content when using the 'overlay' modifier."
          }
        ],
        "group": [
          "card"
        ],
        "access": "public",
        "file": {
          "path": "_card.scss",
          "name": "_card.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "card",
        "path": "/sass/components/card/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 172,
          "end": 175
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 177,
            "end": 179
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-card-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "card"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_card.scss",
          "name": "_card.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "card",
        "path": "/sass/components/card/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 181,
          "end": 184
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"card [config]\");\n",
          "line": {
            "start": 186,
            "end": 188
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-card-get(( \"property\" : value ));"
          }
        ],
        "group": [
          "card"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_card.scss",
          "name": "_card.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "card",
        "path": "/sass/components/card/#mixin-styles",
        "description": "Prints component styles\n",
        "commentRange": {
          "start": 190,
          "end": 193
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
          "line": {
            "start": 195,
            "end": 562
          }
        },
        "demo": {
          "link": "card",
          "content": null
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-card-styles();"
          }
        ],
        "group": [
          "card"
        ],
        "access": "public",
        "require": [
          {
            "type": "mixin",
            "name": "when-clickable"
          },
          {
            "type": "mixin",
            "name": "when-clickable"
          },
          {
            "type": "mixin",
            "name": "when-clickable"
          },
          {
            "type": "mixin",
            "name": "when-clickable"
          },
          {
            "type": "mixin",
            "name": "when-clickable"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_card.scss",
          "name": "_card.scss"
        }
      },
      {
        "id": "mixin-when-clickable",
        "title": "when-clickable()",
        "groupName": "card",
        "path": "/sass/components/card/#mixin-when-clickable",
        "description": "Applies styles to cards that are designated as 'clickable'. This can be for the resting state or for interaction states like hover and focus.\n",
        "commentRange": {
          "start": 649,
          "end": 655
        },
        "context": {
          "type": "mixin",
          "name": "when-clickable",
          "code": "\n  $prefix: selector.class(\"card\");\n  $selectors: (\n    #{ $prefix }#{ get(\"clickable-card-selector\") },\n    a#{ $prefix },\n    button#{ $prefix },\n    #{ $prefix }--clickable\n  );\n\n  @if $extra-selector {\n    $selectors: list.append($selectors, $extra-selector, $separator: comma);\n  }\n\n  #{$selectors} {\n    @if ($hover) {\n      #{ get(\"clickable-card-interact-selector\") } {\n        @content;\n      }\n    } @else {\n      @content;\n    }\n  }\n",
          "line": {
            "start": 657,
            "end": 679
          }
        },
        "parameter": [
          {
            "type": "Boolean",
            "name": "hover",
            "default": "false",
            "description": "Apply styles when the card is being hover/focused within, else applies styles to rest state of a clickable card (one who has a proxy click setup)"
          },
          {
            "type": "String",
            "name": "extra-selector",
            "description": "Selector to be appended to the list"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-card-when-clickable($hover: true) {\n  background-color: lightblue;\n}"
          }
        ],
        "group": [
          "card"
        ],
        "access": "public",
        "content": "",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_card.scss",
          "name": "_card.scss"
        },
        "usedBy": [
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"card\");\n  $border-width-negative: -(get(\"border-width\"));\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-template-rows: auto 1fr auto;\n    \n    \n\n    max-width: get(\"max-width\");\n    line-height: get(\"line-height\");\n    margin-top: get(\"margin-y\");\n    margin-bottom: get(\"margin-y\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\"));\n    border-radius: get(\"border-radius\");\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    @if (not get(\"box-shadow-interactive-only\")) {\n      box-shadow: get(\"box-shadow\");\n    }\n    outline: get(\"border-hover-width\") solid transparent;\n    outline-offset: $border-width-negative;\n  }\n\n  // Remove extra row when image is not present\n  // - So footer doesn't fall on the 1fr row\n  #{ $prefix }:not(:has(> #{ $prefix }__image)),\n  #{ $prefix }--no-image {\n    grid-template-rows: 1fr auto;\n  }\n\n  @if (get(\"box-shadow-interactive-only\") and get(\"box-shadow\")) {\n    @include when-clickable() {\n      box-shadow: get(\"box-shadow\");\n    }\n  }\n\n  @if (get(\"transition-enabled\")) {\n    #{ $prefix },\n    #{ $prefix }__title {\n      transition-duration: get(\"transition-duration\");\n      transition-timing-function: get(\"transition-timing-function\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n\n  @include when-clickable($hover: true) {\n    background-color: color.get(get(\"background-color-hover\"));\n    color: color.get(get(\"color-hover\"));\n    box-shadow: get(\"box-shadow-hover\");\n    outline: get(\"border-hover-width\") solid color.get(get(\"border-hover-color\"));\n  }\n\n  #{ $prefix }__footer,\n  #{ $prefix }__main,\n  #{ $prefix }__aside {\n    padding: get(\"padding\");\n  }\n  #{ $prefix }__body {\n    grid-column: 1;\n    display: flex;\n    flex-direction: column;\n    min-height: get(\"body-min-height\");\n  }\n  #{ $prefix }__footer {\n    grid-column: 1;\n    display: flex;\n    align-items: center;\n    padding-top: get(\"footer-padding-y\");\n    padding-bottom: get(\"footer-padding-y\");\n    min-height: get(\"footer-min-height\");\n    justify-content: get(\"footer-justify\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__aside {\n    background-color: color.get(get(\"aside-background-color\"));\n\n    @if (get(\"aside-rule\")) {\n      // Makes it look like border inside aside padding \n      // without relying on position relative and pseudo technique\n      // which affects popovers/etc or other absolute elements inside card\n      $aside-rule-color: color.get(get(\"aside-rule-color\"));\n      $aside-padding-double: get(\"padding\") * 2;\n\n      background-image: linear-gradient($aside-rule-color, $aside-rule-color);\n      background-size: calc(100% - $aside-padding-double) get(\"aside-rule-width\");\n      background-position: center top;\n      background-repeat: no-repeat;\n    }\n  }\n\n  #{ $prefix }__image {\n    order: -1;\n    grid-column: 1 / -1;\n    overflow: hidden; // For image corners with border-radius\n\n    @if (not get(\"image-within-border\")) {\n      margin: $border-width-negative $border-width-negative 0 $border-width-negative;\n    }\n    \n    background-color: color.get(get(\"image-background-color\"));\n    border: get(\"image-border\");\n    aspect-ratio: get(\"image-aspect-ratio\");\n    @if (get(\"image-margin\")) {\n      margin: get(\"image-margin\");\n    } @else {\n      border-top-right-radius: get(\"border-radius\");\n      border-top-left-radius: get(\"border-radius\");\n    }\n  }\n\n  // Inner Element Styles\n  #{ $prefix }__title {\n    display: block;\n    color: color.get(get(\"title-color\"));\n    margin-bottom: get(\"title-margin\");\n    font-weight: get(\"title-font-weight\");\n  }\n  // Only the inner link gets hover state\n  #{ $prefix }__title-link {\n    all: unset;\n    cursor: pointer;\n    @if get(\"title-color-hover\") {\n      &:hover,\n      &:focus {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  // Unless within a clickable card (below)\n  @if get(\"title-color-hover\") {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__title {\n        color: color.get(get(\"title-color-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__image img,\n  #{ $prefix}__image-media {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    @if (get(\"image-transition-enabled\")) {\n      transition-duration: get(\"image-transition-duration\");\n      transition-timing-function: get(\"image-transition-timing-function\");\n      transition-property: get(\"image-transition-properties\");\n    }\n  }\n  @if (get(\"image-transform-hover\") or get(\"image-filter-hover\")) {\n    @include when-clickable($hover: true) {\n      #{ $prefix }__image img,\n      #{ $prefix}__image-media {\n        transform: get(\"image-transform-hover\");\n        filter: get(\"image-filter-hover\");\n      }\n    }\n  }\n\n  // --- Modifiers ---\n\n  // Allows card to fill space (ie. in grid/etc) \n  #{ $prefix }--fill {\n    max-width: none;\n    height: 100%;\n    margin: 0;\n  }\n  \n  #{ $prefix }--footer-inline {\n    #{ $prefix }__footer {\n      \n      padding: get(\"footer-inline-padding\");\n      flex-direction: column;\n      border-top-right-radius: get(\"border-radius\");\n      border-bottom-left-radius: 0;\n    }\n  }\n  #{ $prefix }--footer-inline:not(#{ $prefix }--overlay) {\n    // The second column (footer) collapses if unused\n    grid-template-columns: 1fr auto;\n    #{ $prefix }__footer {\n      grid-column: 2;\n    }\n  }\n  #{ $prefix }--footer-start #{ $prefix }__footer {\n    justify-content: start;\n  }\n  #{ $prefix }--footer-center #{ $prefix }__footer {\n    justify-content: center;\n  }\n  #{ $prefix }--footer-end #{ $prefix }__footer {\n    justify-content: end;\n  }\n  \n\n  // Makes image centered with max-width for displaying site icon images\n  #{ $prefix }__image--icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    img,\n    #{ $prefix}__image-media {\n      display: block;\n      max-width: get(\"image-icon-max-width\");\n      height: auto;\n    }\n  }\n\n  // Makes image fit naturally instead of bleed/cover\n  #{ $prefix }--image-fit {\n    #{ $prefix }__image {\n      img,\n      #{ $prefix}__image-media {\n        object-fit: contain;\n        object-position: top center;\n        padding: get(\"image-fit-padding\");\n        filter: get(\"image-fit-filter\");\n      }\n    }\n  }\n  \n  // In case this modifier is being used to hide the image\n  // not just to tell the component how to layout without image\n  // - Use case is hiding image when you can't control the output \n  //   of the inside of the card (printed no matter what). We had\n  //   this happen in HHRC, including this extra CSS for that\n  #{ $prefix }--no-image {\n    #{ $prefix }__image {\n      display: none;\n    }\n  }\n\n  // Horizontal layout\n  @if (get(\"horizontal-enabled\")) {\n    @include breakpoint.min(get(\"horizontal-breakpoint\")) {\n      #{ $prefix }--horizontal {\n        @include -horizontal-styles();\n      }\n      #{ $prefix }--horizontal-center {\n        @include -horizontal-center-styles();\n      }\n      #{ $prefix }--horizontal#{ $prefix }--footer-inline {\n        @include -horizontal-footer-inline-styles();\n      }\n    }\n  }\n\n  // Note: Relying on GZIP and identical code for the duplication below\n  // there's really no way to avoid duplication vs complexity for this\n  @if (get(\"horizontal-persist-enabled\")) {\n    #{ $prefix }--horizontal-persist {\n      @include -horizontal-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--horizontal-center {\n      @include -horizontal-center-styles();\n    }\n    #{ $prefix }--horizontal-persist#{ $prefix }--footer-inline {\n      @include -horizontal-footer-inline-styles();\n    }\n  }\n\n  // Overlay layout (image under content)\n  @if (get(\"overlay-enabled\")) {\n    #{ $prefix }--overlay {\n      // Explanation of aspect-ratio combined with grid-template-rows:\n      // - Solves the box growing if needed\n      // - First use aspect ration (which grid is based on) but allow the first row \n      // - to grow to min-content if needed (which makes it so the card grows instead \n      // - of overflowing (ie. if you were using \"auto auto\" or \"1fr auto\"\n      grid-template-rows: minmax(min-content, 1fr) auto;\n      aspect-ratio: get(\"overlay-aspect-ratio\");\n\n      #{ $prefix }__body {\n        grid-row: 1 / 2;\n        align-self: end;\n        min-height: 0;\n        color: color.get(get(\"overlay-color\"));\n        background-color: color.get(get(\"overlay-background-color\"));\n        padding-top: get(\"overlay-body-padding-y\");\n        padding-bottom: get(\"overlay-body-padding-y\");\n        \n        @if (get(\"overlay-shading\")) {\n          padding-top: calc(get(\"overlay-body-padding-y\") + get(\"overlay-shading-height\"));\n          @include -overlay-shading-gradient(\n            color.get(get(\"overlay-background-color\"))\n          );\n        }\n        &:not(:has(~ #{ $prefix }__footer)) {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__aside { \n        background-color: transparent;\n      }\n      #{ $prefix }__footer {\n        grid-row: 2 / 3;\n        background-color: color.get(\n          utils.fallback(\n            color.get(get(\"overlay-footer-background-color\")), \n            color.get(get(\"overlay-background-color\"))\n          )\n        );\n      }\n      #{ $prefix }__body,\n      #{ $prefix }__footer {\n        color: color.get(get(\"overlay-color\"));\n        &:last-child {\n          border-bottom-left-radius: get(\"border-radius\");\n          border-bottom-right-radius: get(\"border-radius\");\n        }\n      }\n      #{ $prefix }__title {\n        color: color.get(\n          utils.fallback(color.get(get(\"overlay-title-color\")), color.get(get(\"overlay-color\")))\n        );\n      }\n      @if (get(\"overlay-title-color-hover\")) {\n        #{ $prefix }__title-link {\n          &:hover,\n          &:focus {\n            color: color.get(get(\"overlay-title-color-hover\"));\n          }\n        }\n      }\n      #{ $prefix }__image {\n        grid-column: 1 / -1;\n        grid-row: 1 / -1;\n        border-radius: get(\"border-radius\");\n        aspect-ratio: auto;\n        img,\n        #{ $prefix}__image-media {\n          height: 100%;\n          object-fit: cover;\n          border: 0;\n        }\n      }\n    }\n\n    @include when-clickable($hover: true) {\n      &#{ $prefix }--overlay {\n        #{ $prefix }__body,\n        #{ $prefix }__footer {\n          background-color: color.get(get(\"overlay-background-color-hover\"));\n        }\n        @if (get(\"overlay-shading\")) {\n          #{ $prefix }__body {\n            @include -overlay-shading-gradient(\n              color.get(get(\"overlay-background-color-hover\"))\n            );\n          }\n        }\n      }\n    }\n\n    #{ $prefix }--overlay#{ $prefix }--footer-inline {\n      grid-template-columns: 1fr auto;\n      #{ $prefix }__footer {\n        grid-column: 2;\n        grid-row: 1 / -1;\n        border-radius: 0 get(\"border-radius\") get(\"border-radius\")  0;\n      }\n    }\n  }\n",
              "line": {
                "start": 195,
                "end": 562
              }
            }
          }
        ]
      }
    ],
    "card-grid": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "card-grid",
        "path": "/sass/components/card-grid/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 12,
          "end": 17
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"gap\" : 1.5rem,\n  \"min-width\" : 20rem,\n  \"compact-gap\" : 0.75rem,\n  \"compact-min-width\" : 14rem,\n)",
          "scope": "default",
          "line": {
            "start": 19,
            "end": 24
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Dimension",
            "name": "gap",
            "default": "1.5rem",
            "description": "The grid gap of the card-grid."
          },
          {
            "type": "Dimension",
            "name": "min-width",
            "default": "20rem",
            "description": "The min-width for the implicit grid columns."
          },
          {
            "type": "Dimension",
            "name": "compact-gap",
            "default": "0.75rem",
            "description": "The grid gap of the card-grid--compact."
          },
          {
            "type": "Dimension",
            "name": "compact-min-width",
            "default": "14rem",
            "description": "The min-width for the implicit grid columns of the card-grid--compact."
          }
        ],
        "group": [
          "card-grid"
        ],
        "access": "public",
        "file": {
          "path": "_card-grid.scss",
          "name": "_card-grid.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "card-grid",
        "path": "/sass/components/card-grid/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 26,
          "end": 29
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 31,
            "end": 33
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-card-grid-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "card-grid"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_card-grid.scss",
          "name": "_card-grid.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "card-grid",
        "path": "/sass/components/card-grid/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 35,
          "end": 38
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"card-grid [config]\");\n",
          "line": {
            "start": 40,
            "end": 42
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-card-grid-get(\"property\");"
          }
        ],
        "group": [
          "card-grid"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_card-grid.scss",
          "name": "_card-grid.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "card-grid",
        "path": "/sass/components/card-grid/#mixin-styles",
        "description": "Prints component styles\n",
        "commentRange": {
          "start": 44,
          "end": 46
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"card-grid\");\n  $prefix-card: selector.class(\"card\");\n  \n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: repeat(auto-fill, minmax(min(100%, get(\"min-width\")), 1fr));\n    grid-auto-rows: 1fr;\n    gap: get(\"gap\");\n    margin: get(\"gap\") 0;\n    #{ $prefix-card } {\n      margin: 0;\n      &:not(#{ $prefix-card }--overlay) {\n        height: 100%;\n      }\n    }\n  }\n  #{ $prefix }--compact {\n    grid-template-columns: repeat(auto-fill, minmax(min(100%, get(\"compact-min-width\")), 1fr));\n    gap: get(\"compact-gap\");\n  }\n  #{ $prefix }--one-column {\n    grid-template-columns: 1fr;\n  }\n  #{ $prefix }--rows-fit {\n    grid-auto-rows: auto;\n  }\n",
          "line": {
            "start": 48,
            "end": 75
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-card-grid-styles();"
          }
        ],
        "group": [
          "card-grid"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_card-grid.scss",
          "name": "_card-grid.scss"
        }
      }
    ],
    "counter-list": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "counter-list",
        "path": "/sass/components/counter-list/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 13,
          "end": 26
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"margin\" : (2rem 0),\n  \"item-margin\" : (0 0 1rem 0),\n  \"align-items\" : baseline, \n  \"counter-width\" : 2.4em,\n  \"counter-height\" : null,\n  \"counter-gap\" : 1em,\n  \"counter-style\" : numeric,\n  \"counter-border-radius\" : 50%,\n  \"counter-font-size\" : 1.2em,\n  \"counter-font-weight\" : null,\n  \"counter-font-family\" : null,\n  \"counter-color\" : white,\n  \"counter-background-color\" : \"accent\",\n  \"extra-selector\" : null\n)",
          "scope": "default",
          "line": {
            "start": 28,
            "end": 43
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "List|CssUnit",
            "name": "margin",
            "default": "(2rem 0)",
            "description": "The top and bottom margin of the list."
          },
          {
            "type": "List|CssUnit",
            "name": "item-margin",
            "default": "((0 0 1rem 0))",
            "description": "The margin applied to each list item."
          },
          {
            "type": "Keyword",
            "name": "align-items",
            "default": "baseline",
            "description": "How to align the counter (flexbox align-items values)"
          },
          {
            "type": "CssUnit",
            "name": "counter-width",
            "default": "2.4em",
            "description": "The width and height (if height is falsy)"
          },
          {
            "type": "CssUnit",
            "name": "counter-height",
            "default": "null",
            "description": "The height (optional)"
          },
          {
            "type": "CssUnit",
            "name": "counter-gap",
            "default": "1em",
            "description": "The gap between the counter and the list item content."
          },
          {
            "type": "String",
            "name": "counter-style",
            "default": "numeric",
            "description": "The list-style-type used for the counter."
          },
          {
            "type": "Keyword|Percentage",
            "name": "counter-border-radius",
            "default": "50%",
            "description": "The border-radius of the counter element."
          },
          {
            "type": "CssUnit",
            "name": "counter-font-size",
            "default": "1.2em",
            "description": "The font-size of the counter text."
          },
          {
            "type": "Color|String",
            "name": "counter-color",
            "default": "white",
            "description": "The text color of the counter. Accepts color names or hex codes."
          },
          {
            "type": "Color|String",
            "name": "counter-background-color",
            "default": "\"accent\"",
            "description": "The background color of the counter. Refers to a color in the color module."
          },
          {
            "type": "String",
            "name": "extra-selector",
            "default": "null",
            "description": "Additional selectors to include table styling."
          }
        ],
        "group": [
          "counter-list"
        ],
        "access": "public",
        "file": {
          "path": "_counter-list.scss",
          "name": "_counter-list.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "counter-list",
        "path": "/sass/components/counter-list/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 45,
          "end": 48
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 50,
            "end": 52
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-counter-list-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "counter-list"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_counter-list.scss",
          "name": "_counter-list.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "counter-list",
        "path": "/sass/components/counter-list/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 54,
          "end": 57
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"counter-list [config]\");\n",
          "line": {
            "start": 59,
            "end": 61
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-counter-list-get(\"property\");"
          }
        ],
        "group": [
          "counter-list"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_counter-list.scss",
          "name": "_counter-list.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "counter-list",
        "path": "/sass/components/counter-list/#mixin-styles",
        "description": "Output counter-list component styles\n",
        "commentRange": {
          "start": 63,
          "end": 70
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"counter-list\");\n  $prefix-item: sassSelector.parse(\"#{ $prefix }__item\");\n  $extra-selector: get(\"extra-selector\");\n\n  $selector: $prefix;\n  $selector-item: sassSelector.parse(\"#{ $prefix } > li, #{ $prefix-item }\");\n\n  @if ($extra-selector) {\n    $selector: sassSelector.parse(\"#{ $prefix }, #{ $extra-selector }\");\n    $selector-item: sassSelector.parse(\"#{ $selector-item }, #{ $extra-selector } > li\");\n  }\n\n  #{ $selector } {\n    margin: get(\"margin\");\n    counter-reset: ulu-counter-list;\n  }\n\n  #{ $selector-item } {\n    $width: get(\"counter-width\");\n    $height: utils.fallback(get(\"counter-height\"), $width);\n\n    display: flex;\n    gap: get(\"counter-gap\");\n    align-items: get(\"align-items\");\n    margin: get(\"item-margin\");\n    min-height: $height;\n    &::before {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: $width;\n      height: $height;\n      flex: 0 0 $width;\n      counter-increment: ulu-counter-list;\n      content: counter(ulu-counter-list, get(\"counter-style\"));\n      font-size: get(\"counter-font-size\");\n      font-family: get(\"counter-font-family\");\n      font-weight: get(\"counter-font-weight\");\n      color: color.get(get(\"counter-color\"));\n      background-color: color.get(get(\"counter-background-color\"));\n      border-radius: get(\"counter-border-radius\");\n    }\n\n    // Keeping this could be useful\n    // but we need to think about how its setup\n    // - Probably should be a modifier (choice)\n    // - May need either option for how align-items is set (flex-start vs center)\n    // - This could be useful when used in grid\n    // - May need to be pervasive and not linked to a breakpoint (alternate style)\n    // - It's also just useful to know you could override the layout like this \n    //   to get useful variations (maybe we don't need to include it but users \n    //   can do specific)\n    // @if ( get(\"counter-mobile-toggle\") ) {\n    //   @include breakpoint.max(\"small\") {\n    //     padding-left: 0;\n    //     padding-top: calc(get(\"counter-width\") + get(\"counter-gap-mobile\"));\n    //     flex-direction: column;\n    //     align-items: center;\n    //   }\n    // }\n  }\n\n  // Modifiers\n  #{ $prefix }--alphabetical {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, upper-alpha);\n    }\n  }\n  #{ $prefix }--numeric {\n    & > li::before,\n    & > #{ $prefix-item }::before {\n      content: counter(ulu-counter-list, numeric);\n    }\n  }\n  #{ $prefix }--no-reset {\n    counter-reset: none;\n  }\n",
          "line": {
            "start": 72,
            "end": 151
          }
        },
        "demo": {
          "link": "counter-list",
          "content": null
        },
        "example": [
          {
            "type": "html",
            "code": "<ol class=\"counter-list\">\n  <li class=\"counter-list__item\">This is a item that will get counted</li>\n  <li class=\"counter-list__item\">Another item that has more content to show line wrapping. Lorem ipsum et depsi anu. Dolor et anu.</li>\n  <li class=\"counter-list__item\">Small Amount of Text</li>\n</ol>",
            "description": "",
            "modifier": "preview"
          }
        ],
        "group": [
          "counter-list"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_counter-list.scss",
          "name": "_counter-list.scss"
        }
      }
    ],
    "css-icon": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "css-icon",
        "path": "/sass/components/css-icon/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 24,
          "end": 39
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"active-selector\" : \"details[open] > summary &, &.is-active\",\n  \"color\" : currentColor,\n  \"font-family\" : ('Courier New', monospace),\n  \"margin\" : (0 0.15em),\n  \"size\" : 1.15em,\n  \"stroke-border-radius\" : null,\n  \"stroke-width\" : 3px,\n  \"drag-gap-multiplier\" : 0.75,\n  \"text-offset\" : 0.05em,\n  \"text-size\" : 1em,\n  \"vertical-align\" : -0.25em,\n  \"transition-duration\" : 200ms, \n  \"transition-timing-function\" : ease-in,\n  \"stroke-sizes\" : (\n    \"large\" : (\n      \"stroke-width\" : 5px,\n      \"stroke-border-radius\" : 2px\n    )\n  )\n)",
          "scope": "private",
          "line": {
            "start": 41,
            "end": 61
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "String",
            "name": "active-selector",
            "default": "details[open",
            "description": "> summary &, &.is-active] The active selector for css-icon."
          },
          {
            "type": "Color",
            "name": "color",
            "default": "currentColor",
            "description": "The color of the css-icon."
          },
          {
            "type": "CssValue",
            "name": "font-family",
            "default": "('Courier New', monospace)"
          },
          {
            "type": "CssValue",
            "name": "margin",
            "default": "(0 0.15em)",
            "description": "The icon's margin"
          },
          {
            "type": "Dimension",
            "name": "size",
            "default": "1.1em",
            "description": "The width, height and font size of the css-icon."
          },
          {
            "type": "Dimension",
            "name": "stroke-border-radius",
            "default": "1px",
            "description": "The rounding of the strokes for css-icon."
          },
          {
            "type": "Dimension",
            "name": "stroke-width",
            "default": "0.15em",
            "description": "The stroke width of the css-icon."
          },
          {
            "type": "Dimension",
            "name": "drag-gap-multiplier",
            "default": "0.75",
            "description": "Multiplier used to adjust the space between drag-x/drag-y icons (used for all stroke sizes)"
          },
          {
            "type": "Dimension",
            "name": "text-offset",
            "default": "0.05em",
            "description": "When using an icon with text, adds a margin to match the text height."
          },
          {
            "type": "Dimension",
            "name": "text-size",
            "default": "1em",
            "description": "font-size of the icon when using text."
          },
          {
            "type": "Dimension",
            "name": "vertical-align",
            "default": "-0.2em",
            "description": "Vertical-align for css-icon"
          },
          {
            "type": "Time",
            "name": "transition-duration",
            "default": "200ms",
            "description": "The duration length for the transition."
          },
          {
            "type": "CssValue",
            "name": "transition-timing-function",
            "default": "ease-in",
            "description": "The timing function for the transition."
          },
          {
            "type": "Map",
            "name": "stroke-sizes",
            "default": "Map",
            "description": "Modifiers to adjust stroke sizes for the icons."
          }
        ],
        "group": [
          "css-icon"
        ],
        "access": "public",
        "file": {
          "path": "_css-icon.scss",
          "name": "_css-icon.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "css-icon",
        "path": "/sass/components/css-icon/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 63,
          "end": 66
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 68,
            "end": 70
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-css-icon-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "css-icon"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_css-icon.scss",
          "name": "_css-icon.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "css-icon",
        "path": "/sass/components/css-icon/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 72,
          "end": 75
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"css-icon [config]\");\n",
          "line": {
            "start": 77,
            "end": 79
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-css-icon-get(\"property\");"
          }
        ],
        "group": [
          "css-icon"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_css-icon.scss",
          "name": "_css-icon.scss"
        }
      },
      {
        "id": "mixin-when-active",
        "title": "when-active()",
        "groupName": "css-icon",
        "path": "/sass/components/css-icon/#mixin-when-active",
        "description": "Used to style active icons\n- Probably only useful for extending this component and matching active selector\n- Used internally in module\n",
        "commentRange": {
          "start": 81,
          "end": 83
        },
        "context": {
          "type": "mixin",
          "name": "when-active",
          "code": "\n  #{ get(\"active-selector\") } {\n    @content;\n  }\n",
          "line": {
            "start": 85,
            "end": 89
          }
        },
        "group": [
          "css-icon"
        ],
        "access": "public",
        "content": "",
        "require": [
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_css-icon.scss",
          "name": "_css-icon.scss"
        },
        "usedBy": [
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          },
          {
            "description": "Output CSS icon component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
              "line": {
                "start": 105,
                "end": 448
              }
            }
          }
        ]
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "css-icon",
        "path": "/sass/components/css-icon/#mixin-styles",
        "description": "Output CSS icon component stylesheet\n",
        "commentRange": {
          "start": 101,
          "end": 103
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $border: get(\"stroke-width\") solid color.get(get(\"color\"));\n  $size: get(\"size\");\n  $stroke-width: get(\"stroke-width\");\n  $half-height: math.div(get(\"size\"), 2);\n  $half-stroke-width: math.round(math.div(get(\"stroke-width\"), 2));\n\n\n  .css-icon {\n    display: inline-block;\n    position: relative;\n    width: get(\"size\");\n    height: get(\"size\");\n    transform-origin: center;\n    vertical-align: get(\"vertical-align\");\n    font-variant: normal;\n    text-rendering: auto;\n    line-height: 1;\n    margin: get(\"margin\");\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    // Icons that share pseudos for strokes\n    &::before,\n    &::after {\n      // content: \"\";\n      display: block;\n      position: absolute;\n      width: 100%;\n      height: $stroke-width;\n      top: 50%;\n      left: 50%;\n      background-color: color.get(get(\"color\")); \n      transform: translateX(-50%);\n      margin-top: -($half-stroke-width);\n      border-radius: get(\"stroke-border-radius\");\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &::before,\n    &::after {\n      height: $alt-width;\n      margin-top: -(math.div($alt-width, 2));\n      border-radius: $alt-border-radius;\n    }\n  }\n  .css-icon--plus,\n  .css-icon--plus-to-minus,\n  .css-icon--minus,\n  .css-icon--close {\n    &::before,\n    &::after {\n      content: \"\";\n    }\n  }\n\n\n  // Solid icons\n  [class*=\"css-icon--circle\"],\n  [class*=\"css-icon--square\"] {\n    background-color: color.get(get(\"color\"));\n  }\n  [class*=\"css-icon--circle\"] {\n    border-radius: 50%;\n  }\n\n  .css-icon--square {\n    transform: scale(0.9);\n  }\n  .css-icon--square,\n  .css-icon--circle,\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    &::before,\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-outline,\n  .css-icon--square-outline {\n    background-color: transparent;\n    border: $border;\n  }\n\n  \n  .css-icon--circle-info,\n  .css-icon--circle-question {\n    &::before {\n      content: \"i\";\n      text-align: center;\n      font-size: get(\"text-size\");\n      font-family: get(\"font-family\");\n      font-weight: bold;\n      margin-top: get(\"text-offset\");\n      color: color.get(get(\"color\"));\n      height: auto;\n      left: 0;\n      right: 0;\n      background-color: transparent;\n      filter: invert(1) brightness(1.5);\n      transform: translateY(-50%);\n    }\n    &::after {\n      content: none;\n    }\n  }\n  .css-icon--circle-question { \n    &::before {\n      content: \"?\";\n    }\n  }\n\n  [class*=\"css-icon--arrow\"] {\n    &::before,\n    &::after {\n      content: \"\";\n      transform: translateY(-50%);\n      margin-top: 0;\n    }\n  }\n  \n  // Arrow uses same equilateral triangle\n  [class*=\"css-icon--triangle\"],\n  [class*=\"css-icon--arrow\"]::after {\n    background-color: color.get(get(\"color\"));\n    clip-path: polygon(10% 10%, 90% 50%, 10% 90%);\n  }\n  [class*=\"css-icon--arrow\"] {\n    &::before {\n      content: \"\";\n      width: 70%;\n      left: 0;\n    }\n    // Note triangle clip-path is defined above with the solid triangle\n    &::after {\n      content: \"\";\n      border-radius: 0;\n      height: 100%;\n      width: 55%;\n      right: 0;\n      left: auto;\n    }\n  }\n  [class*=\"css-icon--angle\"] {\n    transform: rotate(135deg);\n    &::before,\n    &::after {\n      content: \"\";\n      top: 30%;\n      left: 30%;\n      width: 70%;    \n      transform: none;\n      margin-top: 0;\n    }\n    &::after {\n      width: $stroke-width;\n      height: 70%;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &[class*=\"css-icon--angle\"] {\n      &::after {\n        width: $alt-width;\n      }\n    }\n  }\n  .css-icon--angle-left,\n  .css-icon--arrow-left {\n    transform: rotate(315deg);\n  }\n  .css-icon--angle-up,\n  .css-icon--angle-up-to-down {\n    transform: rotate(45deg);\n  }\n  .css-icon--angle-down,\n  .css-icon--angle-down-to-up {\n    transform: rotate(225deg);\n  }\n\n  // Centered pseudos offset by half of stroke before transform\n  // Icons with centered pseudos\n\n  .css-icon--plus,\n  .css-icon--plus-to-minus {\n    &::before {\n      transform: translateX(-50%) rotate(90deg);\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--minus {\n    &::before {\n      content: none;\n    }\n    &::after {\n      transform: translateX(-50%);\n    }\n  }\n  .css-icon--close {\n    &::before {\n      transform: translate(-50%) rotate(45deg);\n    }\n    &::after {\n      transform: translate(-50%) rotate(-45deg);\n    }\n  }\n  [class*=\"css-icon--drag\"] {\n    &::before {\n      content: \"\";\n      // Make up for margin-top by default\n      margin-top: -(($stroke-width + $stroke-width) * get(\"drag-gap-multiplier\"));\n    }\n    &::after {\n      content: \"\";\n      margin-top: $stroke-width * get(\"drag-gap-multiplier\");\n    }\n  }\n\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    // $drag-gap-multiplier: map.get($props, \"drag-gap-multiplier\");\n    // $drag-gap-multiplier: utils.when($drag-gap-multiplier, $drag-gap-multiplier, 0);\n    &[class*=\"css-icon--drag\"] {\n      &::before {\n        margin-top: -(($alt-width + $alt-width) * get(\"drag-gap-multiplier\"));\n      }\n      &::after {\n        margin-top: $alt-width * get(\"drag-gap-multiplier\");\n      }\n    }\n  }\n  // For the menu icon the blocks are stacked with box shadow being the \n  // third bar\n  .css-icon--menu,\n  .css-icon--menu-to-close {\n    display: inline-flex;\n    align-items: center;\n    flex-direction: column;\n    justify-content: center;\n    vertical-align: middle;\n    &::before,\n    &::after {\n      content: \"\";\n      position: static;\n      transform: none;\n      margin-top: 0;\n    }\n    &::before {\n      box-shadow: 0px ($stroke-width * 2 + 1px) color.get(get(\"color\"));\n      margin-bottom: ($stroke-width * 3) + 2px;\n    }\n  }\n  @include for-each-stroke() using ($alt-width, $alt-border-radius) {\n    &.css-icon--menu,\n    &.css-icon--menu-to-close {\n      &::before {\n        box-shadow: 0px ($alt-width * 2 + 1px) color.get(get(\"color\"));\n        margin-bottom: ($alt-width * 3) + 2px;\n      }\n    }\n  }\n\n  // Rotations\n  .css-icon--triangle-left,\n  .css-icon--arrow-left {\n    transform: rotate(180deg);\n  }\n  .css-icon--drag-x,\n  .css-icon--triangle-up,\n  .css-icon--arrow-up {\n    transform: rotate(270deg);\n  }\n  .css-icon--triangle-down,\n  .css-icon--arrow-down {\n    transform: rotate(90deg);\n  }\n  .css-icon--drag-both {\n    transform: rotate(-45deg);\n    &::before {\n      transform: translateX(-50%) scale(0.8);\n      margin-top: -($stroke-width);\n    }\n    &::after {\n      transform: translateX(-50%) scaleX(0.5) scaleY(0.8);\n    }\n  }\n\n  // Active icons\n  .css-icon--plus-to-minus {\n    &,\n    &::before,\n    &::after {\n      transition: get(\"transition-duration\") get(\"transition-timing-function\");\n      transition-property: opacity, transform;\n    }\n    @include when-active() {\n      &::before {\n        opacity: 0;\n        transform: translateX(-50%) rotate(180deg);\n      }\n    }\n  }\n  \n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\");\n      transition-property: transform;\n    }\n  }\n  .css-icon--angle-right-to-down,\n  .css-icon--angle-up-to-down {\n    @include when-active() {\n      transform: rotate(225deg);\n    }\n  }\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transform: rotate(45deg);\n    }\n  }\n  .css-icon--angle-up-to-down,\n  .css-icon--angle-down-to-up {\n    @include when-active() {\n      transition-duration: get(\"transition-duration\") * 2;\n    }\n  }\n  .css-icon--menu-to-close {\n    @include when-active() {\n      animation: UluScaleIn get(\"transition-duration\") get(\"transition-timing-function\") forwards;\n      &::before,\n      &::after {\n        position: absolute;\n        top: 50%;\n        transition: none;\n        transform: translate(-50%) rotate(-45deg);\n      }\n      &::before {\n        box-shadow: none;\n        transform: translate(-50%) rotate(45deg);\n      }\n    }\n  }\n",
          "line": {
            "start": 105,
            "end": 448
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-css-icon-styles();"
          }
        ],
        "group": [
          "css-icon"
        ],
        "access": "public",
        "require": [
          {
            "type": "mixin",
            "name": "when-active"
          },
          {
            "type": "mixin",
            "name": "when-active"
          },
          {
            "type": "mixin",
            "name": "when-active"
          },
          {
            "type": "mixin",
            "name": "when-active"
          },
          {
            "type": "mixin",
            "name": "when-active"
          },
          {
            "type": "mixin",
            "name": "when-active"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_css-icon.scss",
          "name": "_css-icon.scss"
        }
      }
    ],
    "data-grid": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "data-grid",
        "path": "/sass/components/data-grid/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 17,
          "end": 33
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"attribute\":           \"data-grid\",\n  \"attribute-container\": \"data-grid-container\",\n  \"attribute-init\":      \"data-grid-init\",\n  \"breakpoint\":          false,                   // Fallback to default\n  \"columns\":             12,\n  \"gutter\":              14px,\n  \"position-class-column-first\": \"position-column-first\",\n  \"position-class-column-last\":  \"position-column-last\",\n  \"position-class-row-first\":    \"position-row-first\",\n  \"position-class-row-last\":     \"position-row-last\",\n  \"sticky-bottom\":               var(--ulu-sticky-offset-bottom, 0),\n  \"sticky-top\":                  var(--ulu-sticky-offset-top, 0),\n  \"rule-color\" : \"rule\",\n  \"rule-size\" : 1px,\n  \"rule-fade-duration\" : 400ms,\n  \"extra-breakpoints\":   (\n    \"medium\" : (\n      \"breakpoint\": \"medium\",\n      \"gutter\":     15px\n    ),\n    \"large\" : (\n      \"breakpoint\": \"large\",\n      \"gutter\":     20px\n    )\n  ),\n  \"extra-gutter-scales\" : (\n    \"small\": 0.6\n  ),\n  \"extra-rule-styles\" : (\n    \"light\" : (\n      \"size\" : 1px,\n      \"color\": \"rule-light\"\n    )\n  ),\n)",
          "scope": "default",
          "line": {
            "start": 35,
            "end": 70
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "String",
            "name": "attribute",
            "default": "data-grid",
            "description": "Default attribute to use for grid mixin."
          },
          {
            "type": "String",
            "name": "attribute-container",
            "default": "data-grid-container",
            "description": "Default attribute to use for grid's container."
          },
          {
            "type": "Number",
            "name": "columns",
            "default": "12",
            "description": "Default for grid mixin."
          },
          {
            "type": "Number",
            "name": "gutter",
            "default": "14px",
            "description": "Default gutter for grid mixin."
          },
          {
            "type": "String",
            "name": "position-class-column-first",
            "default": "position-column-first",
            "description": "Classname for position system (JS) grid uses to display rules (layout can flow, script will update classes)"
          },
          {
            "type": "String",
            "name": "position-class-column-last",
            "default": "position-column-last",
            "description": "See definition above"
          },
          {
            "type": "String",
            "name": "position-class-row-first",
            "default": "position-row-first",
            "description": "See definition above"
          },
          {
            "type": "String",
            "name": "position-class-row-last",
            "default": "position-row-last",
            "description": "See definition above"
          },
          {
            "type": "Dimension",
            "name": "sticky-bottom",
            "default": "var(--ulu-sticky-offset-bottom, 0)",
            "description": "When a column is sticky bottom this is the value for the sticky offset, set to --ulu-sticky-offset-bottom by default"
          },
          {
            "type": "Dimension",
            "name": "sticky-top",
            "default": "var(--ulu-sticky-offset-top, 0)",
            "description": "When a column is sticky top this is the value for the sticky offset, set to --ulu-sticky-offset-top by default"
          },
          {
            "type": "String",
            "name": "rule-color",
            "default": "\"rule\"",
            "description": "The color of the rule. This uses color.scss, so the value of this option should be a color variable from color.scss."
          },
          {
            "type": "Dimension",
            "name": "rule-size",
            "default": "1px",
            "description": "The width of the rule"
          },
          {
            "type": "Map",
            "name": "extra-breakpoints",
            "default": "Map",
            "description": "Default extra breakpoints for grid mixin"
          },
          {
            "type": "Map",
            "name": "extra-gutter-scales",
            "default": "Map",
            "description": "Extra options for gutter scales."
          },
          {
            "type": "Map",
            "name": "extra-rule-styles",
            "default": "Map",
            "description": "Extra options for rule styles."
          }
        ],
        "group": [
          "data-grid"
        ],
        "access": "public",
        "file": {
          "path": "_data-grid.scss",
          "name": "_data-grid.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "data-grid",
        "path": "/sass/components/data-grid/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 73,
          "end": 76
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 78,
            "end": 80
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-data-grid-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "data-grid"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_data-grid.scss",
          "name": "_data-grid.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "data-grid",
        "path": "/sass/components/data-grid/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 82,
          "end": 85
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"data-grid [config]\");\n",
          "line": {
            "start": 87,
            "end": 89
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-data-grid-get(\"property\");"
          }
        ],
        "group": [
          "data-grid"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_data-grid.scss",
          "name": "_data-grid.scss"
        }
      },
      {
        "id": "function-get-gutter",
        "title": "get-gutter()",
        "groupName": "data-grid",
        "path": "/sass/components/data-grid/#function-get-gutter",
        "description": "Output component stylesheet\n",
        "commentRange": {
          "start": 91,
          "end": 93
        },
        "context": {
          "type": "function",
          "name": "get-gutter",
          "code": "\n  @if (not $name) {\n    @return get(\"gutter\");\n  } @else {\n    $map: utils.fallback($custom-map, get(\"extra-breakpoints\"));\n    $settings: utils.require-map-get($map, $name, \"grid [get-gutter]\");\n    @return map.get($settings, \"gutter\");\n  }\n",
          "line": {
            "start": 95,
            "end": 103
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-data-grid-styles();"
          }
        ],
        "group": [
          "data-grid"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_data-grid.scss",
          "name": "_data-grid.scss"
        }
      },
      {
        "id": "function-get-default-breakpoint",
        "title": "get-default-breakpoint()",
        "groupName": "data-grid",
        "path": "/sass/components/data-grid/#function-get-default-breakpoint",
        "description": "Get the default breakpoint for the grid (when it starts to be a grid (vs stacked/mobile)\n",
        "commentRange": {
          "start": 105,
          "end": 105
        },
        "context": {
          "type": "function",
          "name": "get-default-breakpoint",
          "code": "\n  $breakpoint: get(\"breakpoint\");\n  @if ($breakpoint) {\n    @return $breakpoint;\n  } @else {\n    @return breakpoint.get(\"default\");\n  }\n",
          "line": {
            "start": 107,
            "end": 114
          }
        },
        "group": [
          "data-grid"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_data-grid.scss",
          "name": "_data-grid.scss"
        },
        "usedBy": [
          {
            "description": "Output component stylesheet\n- Use the parent selector '.fill-context' on the element that should be the \n  frame for the child object (img,video).  \n- Can be used within the grid with modifier (see in example below).\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"fill-context\");\n\n  #{ $prefix } {\n    position: relative;\n  }\n  #{ $prefix }__object,\n  #{ $prefix }--auto img {\n    position: absolute;\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n  }\n\n  #{ $prefix }--contain {\n    &#{ $prefix }--auto img,\n    #{ $prefix }__object {\n      object-fit: contain;\n    }\n  }\n\n  #{ $prefix }--in-grid {\n    $breakpoint: data-grid.get-default-breakpoint();\n    @include breakpoint.max($breakpoint) {\n      #{ $prefix }__object,\n      &#{ $prefix }--auto img {\n        position: static;\n        height: auto;\n        object-fit: fill;\n      }\n    }\n  }\n",
              "line": {
                "start": 30,
                "end": 62
              }
            }
          }
        ]
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "data-grid",
        "path": "/sass/components/data-grid/#mixin-styles",
        "description": "Prints default grid styles, if you want to customize further please use the create mixin\n",
        "commentRange": {
          "start": 116,
          "end": 119
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  @include create();\n",
          "line": {
            "start": 121,
            "end": 123
          }
        },
        "demo": {
          "link": "data-grid#align",
          "content": null
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-data-grid-styles();"
          }
        ],
        "group": [
          "data-grid"
        ],
        "access": "public",
        "require": [
          {
            "type": "mixin",
            "name": "create"
          }
        ],
        "file": {
          "path": "_data-grid.scss",
          "name": "_data-grid.scss"
        }
      },
      {
        "id": "mixin-create",
        "title": "create()",
        "groupName": "data-grid",
        "path": "/sass/components/data-grid/#mixin-create",
        "description": "Output data grid styles\n- Can be used instead of styles() to have full control over options or for alternate grids (grids with different settings/column count) \n",
        "commentRange": {
          "start": 125,
          "end": 136
        },
        "context": {
          "type": "mixin",
          "name": "create",
          "code": "\n  $attribute-item: \"#{ $attribute }-item\";\n  $select-grid: '[#{ $attribute }*=\"columns: #{ $columns }\"]';\n  $select-grid-not-init: '[#{ $attribute }]:not([#{ $attribute-init }])';\n  $select-item: '[#{ $attribute-item }]';\n  $select-rule-col: \"::before\";\n  $select-rule-row: \"::after\";\n  $select-container: \"[#{ $container-attribute }]\";\n  // These through off syntax highlighting when inside interpolation\n  $position-class-column-first: get(\"position-class-column-first\");\n  $position-class-column-last: get(\"position-class-column-last\");\n  $position-class-row-first: get(\"position-class-row-first\");\n  $position-class-row-last: get(\"position-class-row-last\");\n\n  #{ $select-grid } {\n    @include layout.clearfix(); // For legacy browsers\n\n    // Ensure empty elements still take up space in layout\n    > #{ $select-item } {\n      min-height: 1px; \n      width: 100%;\n    }\n    // This is for value of true and also covers all options below\n    &#{'[#{ $attribute }*=\"gutters-row:\"]'} { \n      > #{ $select-item } {\n        padding-top:  $gutter;\n        padding-bottom: $gutter;\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              padding-top:  $gutter * $amount;\n              padding-bottom: $gutter * $amount;\n            }\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: top\"]'} { \n      > #{ $select-item } {\n        &.#{ $position-class-row-last } {\n          padding-bottom: 0;\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: bottom\"]'} { \n      > #{ $select-item } {\n        &.#{ $position-class-row-first } {\n          padding-top: 0;\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"gutters-row: fit\"]'} { \n      margin-top: -$gutter;\n      margin-bottom: -$gutter;\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            margin-top: -($gutter * $amount);\n            margin-bottom: -($gutter * $amount);\n          }\n        }\n      }\n    }\n    // Rules: Applies to both column and row\n    &#{'[#{ $attribute }*=\"rules\"]'} { \n      > #{ $select-item } {\n        position: relative;\n        @if ($rule-fade-duration) {\n          &#{ $select-rule-col },\n          &#{ $select-rule-row } {\n            // For when grid init fades them in\n            opacity: 1;\n            transition: opacity $rule-fade-duration ease-in; \n          }\n        }\n      }\n    }\n    // Rules: Row\n    &#{'[#{ $attribute }*=\"rules-row:\"]'} { \n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          position: absolute;\n          left: 0;\n          right: 0;\n          height: $rule-size;\n          background: color.get($rule-color);\n        }\n      }\n    }\n    // Rules: Column\n    &#{'[#{ $attribute }*=\"rules-column:\"]'} { \n      > #{ $select-item } {\n        &#{ $select-rule-col } {\n          position: absolute;\n          top: 0;\n          bottom: 0;\n          width: $rule-size;\n          background: color.get($rule-color);\n        }\n      }\n    }\n    // Options for the left or right\n    @include -create-rule-col-position(\n      $position: \"left\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-col: $select-rule-col, \n      $end-class: $position-class-column-first\n    );\n    @include -create-rule-col-position(\n      $position: \"right\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-col: $select-rule-col, \n      $end-class: $position-class-column-last\n    );\n    &#{'[#{ $attribute }*=\"rules-column-align: gutter\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-col } {\n          top: $gutter;\n          bottom: $gutter;\n        }\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              &#{ $select-rule-col } {\n                top: $gutter * $amount;\n                bottom: $gutter * $amount;\n              }\n            }\n          }\n        }\n      }\n    }\n    // Options for the left or right\n    @include -create-rule-row-position(\n      $position: \"top\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-row: $select-rule-row, \n      $between: false\n    );\n    @include -create-rule-row-position(\n      $position: \"bottom\", \n      $size: $rule-size, \n      $attribute: $attribute, \n      $select-item: $select-item, \n      $select-rule-row: $select-rule-row, \n      $between: false\n    );\n\n    &#{'[#{ $attribute }*=\"rules-row: between\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          bottom: math.floor(math.div($rule-size, 2)) * -1;\n        }\n        // For removing the rule per row (via equal heights for now)\n        &.#{ $position-class-row-last } {\n          &#{ $select-rule-row } {\n            content: none !important;\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"rules-row-align: gutter\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          @include breakpoint.min($breakpoint) {\n            left: $gutter;\n            right: $gutter;\n          }\n        }\n      }\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            > #{ $select-item } {\n              &#{ $select-rule-row } {\n                @include breakpoint.min($breakpoint) {\n                  left: $gutter * $amount;\n                  right: $gutter * $amount;\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    &#{'[#{ $attribute }*=\"rules-row-persist: true\"]'},\n    &#{'[#{ $attribute }*=\"rules-row-stacked-only: true\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          content: '';\n        }\n      }\n    }\n    // IE for mobile/small (non grid / stacked)\n    &#{'[#{ $attribute }*=\"rules-row-stacked-only: true\"]'} {\n      > #{ $select-item } {\n        &#{ $select-rule-row } {\n          @include breakpoint.min($breakpoint) {\n            content: none !important;\n          }\n        }\n      }\n    }\n  }\n\n  @include breakpoint.min($breakpoint) {\n\n    $select-gutter-false: '[#{ $attribute }*=\"gutters: false\"]';\n    $select-gutter-false-child: '#{ $select-container }:has(>#{ $select-gutter-false })';\n\n    @if $include-container {\n      #{ $select-container } {\n        padding-left: $gutter;\n        padding-right: $gutter;\n      }\n      #{ $select-gutter-false-child } {\n        padding-left: 0;\n        padding-right: 0;\n      }\n      @if $extra-gutter-scales and $container-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          #{'#{ $select-container }:has(>[#{ $attribute }*=\"gutter-scale: #{ $scale }\"])'} { \n            padding-left: ($gutter * $amount);\n            padding-right: ($gutter * $amount);\n          }\n        }\n      }\n    }\n    // Select the attribute with matching column count\n    #{ $select-grid } {\n      // Defaults for grid an item\n      display: flex;\n      flex-flow: row wrap;\n      align-items: stretch;\n      margin-left: -$gutter;\n      margin-right: -$gutter;\n\n      > #{ $select-item } {\n        float: left; // Fallback\n        padding-left: $gutter;\n        padding-right: $gutter;\n      }\n      > #{'[#{ $attribute-item }*=\"sticky: top\"]'} {\n        position: sticky;\n        align-self: start;\n        top: $sticky-top;\n      }\n      > #{'[#{ $attribute-item }*=\"sticky: bottom\"]'} {\n        position: sticky;\n        align-self: end;\n        bottom: $sticky-bottom;\n      }\n\n      @if $extra-gutter-scales {\n        @each $scale, $amount in $extra-gutter-scales {\n          &#{'[#{ $attribute }*=\"gutter-scale: #{ $scale }\"]'} { \n            margin-left: -($gutter * $amount);\n            margin-right: -($gutter * $amount);\n\n            > #{ $select-item } {\n              padding-left: $gutter * $amount;\n              padding-right: $gutter * $amount;\n            }\n          }\n        }\n      }\n      \n      // Alignment options\n      &#{'[#{ $attribute }*=\"justify: center\"]'} { \n        justify-content: center;  \n      }\n      &#{'[#{ $attribute }*=\"justify: end\"]'} { \n        justify-content: flex-end;  \n      }\n      &#{'[#{ $attribute }*=\"align: center\"]'} { \n        align-items: center;  \n      }\n      &#{'[#{ $attribute }*=\"align: end\"]'} { \n        align-items: flex-end;\n      }\n      &#{'[#{ $attribute }*=\"align: start\"]'} { \n        align-items: flex-start; \n      }\n      // Alignment of the children when using stretch\n      // - There is no stetch-start (that's defualt);\n      // - There is no stetch-middle (that's covered by stretch-);\n      &#{'[#{ $attribute }*=\"align: stretch-\"]'} { \n        // set the child to display as a single flex item\n        > #{ $select-item } {\n          display: flex;\n          flex-direction: column;\n          justify-content: center;\n        }\n      }\n      &#{'[#{ $attribute }*=\"align: stretch-end\"]'} { \n        > #{ $select-item } {\n          justify-content: flex-end;\n        }\n      }\n      // Other options\n      &#{ $select-gutter-false } { \n        margin-left: 0;\n        margin-right: 0;\n        > #{ $select-item } {\n          padding-left: 0;\n          padding-right: 0;\n        }\n      }\n      // Activate Rules\n      &#{'[#{ $attribute }*=\"rules-column:\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-col } {\n            content: '';\n          }\n        }\n      }\n      &#{'[#{ $attribute }*=\"rules-row:\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-row } {\n            content: '';\n          }\n        }\n      }\n      // Override first or last column removing the rule using matching specificity\n      &#{'[#{ $attribute }*=\"rules-column:\"][#{ $attribute }*=\"rules-column-ends: true\"]'} {\n        > #{ $select-item } {\n          &#{ $select-rule-col } {\n            content: '';\n          }\n        }\n      }\n      // Generated props for item\n      @include -create-column-widths(\n        $columns: $columns,\n        $attribute-item: $attribute-item,\n        $suffix: ''\n      );\n      @include -create-column-offsets(\n        $columns: $columns,\n        $attribute-item: $attribute-item,\n        $suffix: ''\n      );\n    }\n  }\n  @if $extra-breakpoints {\n    @each $name, $options in $extra-breakpoints {\n      $g: map.get($options, \"gutter\");\n      @include -create-extra-breakpoint(\n        $name: $name, \n        $breakpoint: map.get($options, \"breakpoint\"),\n        $gutter: utils.fallback($g, $gutter),\n        $columns: $columns,\n        $attribute: $attribute,\n        $attribute-item: $attribute-item,\n        $select-grid: $select-grid,\n        $select-item: $select-item,\n        $extra-gutter-scales: $extra-gutter-scales,\n        $include-container: $include-container,\n        $select-container: $select-container,\n        $container-gutter-scales: $container-gutter-scales\n      );\n    }\n  }\n  @if $extra-rule-styles {\n    @each $name, $options in $extra-rule-styles {\n      $color: utils.require-map-get($options, \"color\", \"grid [extra rule style]\");\n      $size: utils.require-map-get($options, \"size\", \"grid [extra rule style]\");\n      #{ $select-grid } {\n\n        &#{'[#{ $attribute }*=\"rules-column-style: #{ $name }\"]'} {\n          > #{ $select-item } {\n            &#{ $select-rule-col } {\n              background-color: color.get($color);\n              width: $size;\n            }\n          }\n          @include -create-rule-col-position(\n            $position: \"left\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-col: $select-rule-col, \n            $end-class: false\n          );\n          @include -create-rule-col-position(\n            $position: \"right\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-col: $select-rule-col, \n            $end-class: false\n          );\n        }\n        &#{'[#{ $attribute }*=\"rules-row-style: #{ $name }\"]'} {\n          > #{ $select-item } {\n            &#{ $select-rule-row } {\n              background-color: color.get($color);\n              height: $size;\n            }\n          }\n          @include -create-rule-row-position(\n            $position: \"top\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: false\n          );\n          @include -create-rule-row-position(\n            $position: \"bottom\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: false\n          );\n          @include -create-rule-row-position(\n            $position: \"bottom\", \n            $size: $size, \n            $attribute: $attribute, \n            $select-item: $select-item, \n            $select-rule-row: $select-rule-row, \n            $between: true\n          );\n        }\n      }\n    }\n  }\n\n  // Disable grid rules until init attribute it present (from positioning script)\n  // - In order to keep the rules for this compact it will only hide them if the init\n  //   is not present\n  \n  @if ($rule-fade-duration) {\n    #{ $select-grid-not-init } {\n      > #{ $select-item } {\n        &#{ $select-rule-col },\n        &#{ $select-rule-row } {\n          opacity: 0 !important;\n        }\n      }\n    }\n  }\n",
          "line": {
            "start": 138,
            "end": 609
          }
        },
        "parameter": [
          {
            "type": "Number",
            "name": "columns",
            "description": "Columns in grid"
          },
          {
            "type": "Number",
            "name": "breakpoint",
            "description": "Breakpoint key for starting the grid"
          },
          {
            "type": "Map",
            "name": "extra-breakpoints",
            "description": "Map with other breakpoints to add (map of breakpoint and gutter see config.extra-breakpoints for an example (smallest to largest)"
          },
          {
            "type": "Number",
            "name": "gutter",
            "description": "Size in pixels for the gutters"
          },
          {
            "type": "Boolean",
            "name": "include-rules",
            "description": "Print styles for including rules"
          },
          {
            "type": "Number",
            "name": "rule-size",
            "description": "Size of the rule (border/separator)"
          },
          {
            "type": "Map",
            "name": "extra-rule-styles",
            "description": "Map of other rule styles to add (map of maps of size, and color), key is the styles name (\"name\": (\"size\" : 4px, \"color\" : \"color name\" || color))"
          },
          {
            "type": "String",
            "name": "extra-gutter-scales",
            "description": "A map of gutter scales used like `data-grid=\"gutter-scale: large`, configuration map property becomes scale name and value is the amount (multiplier) to apply to the grid's gutter ie `( \"large\" : 2.25 )`"
          },
          {
            "type": "Map",
            "name": "attribute",
            "description": "Attribute to use for selecting grid and children. Children attribute get's \"-item\" as a suffix (\"ie. data-grid, data-grid-item\")"
          },
          {
            "type": "CssDuration",
            "name": "rule-fade-duration",
            "description": "The amount of time for rules to fade in (after init, script positioning), set to falsey value to disable rule fade in (rules will always be shown)"
          }
        ],
        "group": [
          "data-grid"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_data-grid.scss",
          "name": "_data-grid.scss"
        },
        "usedBy": [
          {
            "description": "Prints default grid styles, if you want to customize further please use the create mixin\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  @include create();\n",
              "line": {
                "start": 121,
                "end": 123
              }
            }
          }
        ]
      }
    ],
    "data-list": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "data-list",
        "path": "/sass/components/data-list/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 34,
          "end": 57
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"grid-template-columns\": 1fr,\n  \"grid-template-columns-stacked\": 100%,\n  \"row-gap\": 0,\n  \"column-gap\": 1rem,\n  \"column-gap-stacked\": 0.5rem,\n  \"group-gap-stacked\": 0.25rem,\n  \"padding\": 1rem clamp(0.65rem, 3vw, 1.5rem),\n  \"overlap-borders\": true,\n  \"border-width\": 1px,\n  \"border-color\": \"rule-light\",\n  \"border-radius\": null,\n  \"box-shadow\": null,\n  \"background-color\": transparent,\n  \"background-color-even\": #f9f9f9,\n  \"background-color-hover\": #f0f0f0,\n  \"clickable-background-color-hover\": #e8e8e8, // Slightly darker for interactive indication\n  \"clickable-border-color-hover\": \"control-border-hover\",\n  \"stacked-breakpoint\": true,\n  \"span-count\" : 6,\n  \"header-font-weight\": bold,\n  \"header-border-bottom-width\": 2px,\n  \"header-border-bottom-color\": \"rule\",\n)",
          "scope": "default",
          "line": {
            "start": 59,
            "end": 82
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "String",
            "name": "grid-template-columns",
            "default": "1fr",
            "description": "The default master grid columns."
          },
          {
            "type": "String",
            "name": "grid-template-columns-stacked",
            "default": "100%",
            "description": "The stacked grid columns (default is single column stack)."
          },
          {
            "type": "Dimension",
            "name": "row-gap",
            "default": "0",
            "description": "The space between list items (rows). Forced to 0 if overlap-borders is true."
          },
          {
            "type": "Dimension",
            "name": "column-gap",
            "default": "1rem",
            "description": "The space between columns."
          },
          {
            "type": "Dimension",
            "name": "column-gap-stacked",
            "default": "0.5rem",
            "description": "The space between stacked elements when stacked within an item."
          },
          {
            "type": "Dimension",
            "name": "group-gap-stacked",
            "default": "0.25rem",
            "description": "The space between stacked elements inside a nested column when stacked."
          },
          {
            "type": "Dimension",
            "name": "padding",
            "default": "1rem clamp(0.65rem, 3vw, 1.5rem),",
            "description": "The padding inside list items."
          },
          {
            "type": "Boolean",
            "name": "overlap-borders",
            "default": "true",
            "description": "If true, applies a negative top margin to items to prevent double-thick borders between touching rows, and forces row-gap to 0."
          },
          {
            "type": "Dimension",
            "name": "border-width",
            "default": "1px",
            "description": "The border width for the list items."
          },
          {
            "type": "String",
            "name": "border-color",
            "default": "\"rule-light\"",
            "description": "The border color key for the list items."
          },
          {
            "type": "Dimension",
            "name": "border-radius",
            "default": "null",
            "description": "The border radius for the list items."
          },
          {
            "type": "CssValue",
            "name": "box-shadow",
            "default": "null",
            "description": "The box shadow for the list items."
          },
          {
            "type": "Color",
            "name": "background-color",
            "default": "transparent",
            "description": "The default background color for items."
          },
          {
            "type": "Color",
            "name": "background-color-even",
            "default": "null",
            "description": "The background color for even-numbered items (for striping)."
          },
          {
            "type": "Color",
            "name": "background-color-hover",
            "default": "null",
            "description": "The background color for items on hover."
          },
          {
            "type": "Color",
            "name": "clickable-background-color-hover",
            "default": "#e8e8e8",
            "description": "The background color for clickable items on hover."
          },
          {
            "type": "String",
            "name": "clickable-border-color-hover",
            "default": "\"control-border-hover\"",
            "description": "The border color for interactive (clickable) items on hover/focus."
          },
          {
            "type": "String",
            "name": "stacked-breakpoint",
            "default": "true",
            "description": "The breakpoint below which groups stack. Defaults to the global default breakpoint via function fallback."
          },
          {
            "type": "Number",
            "name": "span-count",
            "default": "4",
            "description": "The number of span modifiers to create, increase if needed, (ie. data-list__column--span-2, --span-3, ...)"
          },
          {
            "type": "CssValue",
            "name": "header-font-weight",
            "default": "bold",
            "description": "The font weight for the header row text."
          },
          {
            "type": "Dimension",
            "name": "header-border-bottom-width",
            "default": "2px",
            "description": "The width for the bottom border of the header row."
          },
          {
            "type": "String",
            "name": "header-border-bottom-color",
            "default": "\"rule\"",
            "description": "The color key for the bottom border of the header row."
          }
        ],
        "group": [
          "data-list"
        ],
        "access": "public",
        "file": {
          "path": "_data-list.scss",
          "name": "_data-list.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "data-list",
        "path": "/sass/components/data-list/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 84,
          "end": 85
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 86,
            "end": 88
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "group": [
          "data-list"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_data-list.scss",
          "name": "_data-list.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "data-list",
        "path": "/sass/components/data-list/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 90,
          "end": 91
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  $value: utils.require-map-get($config, $name, \"data-list [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
          "line": {
            "start": 92,
            "end": 95
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "group": [
          "data-list"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_data-list.scss",
          "name": "_data-list.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "data-list",
        "path": "/sass/components/data-list/#mixin-styles",
        "description": "Prints component styles\n",
        "commentRange": {
          "start": 97,
          "end": 98
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  @include utils.file-header('component', 'data-list');\n\n  $prefix: selector.class(\"data-list\");\n  $stacked-bp: get(\"stacked-breakpoint\");\n  $overlap: get(\"overlap-borders\");\n  $border-width: get(\"border-width\");\n  \n  #{ $prefix } {\n    display: grid;\n    \n    @if $overlap {\n      gap: 0; // Forced to 0 when borders overlap to prevent disjointed negative margins\n    } @else {\n      gap: var(--ulu-data-list-row-gap, get(\"row-gap\"));\n    }\n    \n    // Allows inline override via custom property, falls back to config default\n    grid-template-columns: var(--ulu-data-list-columns, get(\"grid-template-columns\"));\n    list-style: none;\n    margin: 0;\n    padding: 0;\n\n    @include breakpoint.max($stacked-bp) {\n      // Switch to stacked grid template (defaults to 100% stack, but can be overridden for persistent cols)\n      grid-template-columns: var(--ulu-data-list-columns-stacked, get(\"grid-template-columns-stacked\"));\n    }\n  }\n\n  // Row Item (Passes the grid down)\n  #{ $prefix }__item {\n    display: grid;\n    grid-template-columns: subgrid;\n    grid-column: 1 / -1;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    border: element.optional-border($border-width, get(\"border-color\"));\n    border-radius: get(\"border-radius\");\n    box-shadow: get(\"box-shadow\");\n\n    @if $overlap {\n      margin-top: calc(-1 * #{ $border-width });\n      &:first-child {\n        margin-top: 0;\n      }\n    }\n\n    \n\n    @include breakpoint.max($stacked-bp) {\n      // We keep display: grid/subgrid here to respect the stacked parent grid\n      gap: var(--ulu-data-list-column-gap-stacked, get(\"column-gap-stacked\")); \n    }\n\n    @if (get(\"background-color-hover\")) {\n      &:hover {\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n  }\n\n  // Interactive z-index management for borders/shadows\n  #{ $prefix }__item:hover,\n  #{ $prefix }__item:focus-within,\n  #{ $prefix }__header #{ $prefix }__item {\n    position: relative;\n    z-index: 2;\n  }\n\n  // Columns (The cells / wrappers)\n  #{ $prefix }__column {\n    display: flex;\n    align-items: center;\n    gap: var(--ulu-data-list-column-gap, get(\"column-gap\"));\n    // Defensive Layout: Prevents flexbox/grid from refusing to shrink below intrinsic content size.\n    // Without this, a long unbroken word or URL could force the column to expand, blowing out the grid.\n    // It allows text-overflow: ellipsis to work safely within a column without breaking the layout.\n    min-width: 0; \n  }\n\n  // Automatic Groups (Subgrid on desktop, stack on smaller screens)\n  #{ $prefix }__column:has(> #{ $prefix }__column) {\n    display: grid;\n    grid-template-columns: subgrid;\n    // Default span is 1, use modifiers below for larger spans\n    \n    @include breakpoint.max($stacked-bp) {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: stretch;\n      gap: var(--ulu-data-list-group-gap-stacked, get(\"group-gap-stacked\")); // Tighter vertical gap when stacked\n    }\n  }\n\n  // Header Row (Optional)\n  #{ $prefix }__header {\n    display: contents; // Removes wrapper so children participate in grid\n\n    // Hide headers when stacked since columns stack\n    @include breakpoint.max($stacked-bp) {\n      display: none;\n    }\n\n    #{ $prefix }__item {\n      font-weight: get(\"header-font-weight\");\n      background-color: transparent;\n      border-bottom: element.optional-border(get(\"header-border-bottom-width\"), get(\"header-border-bottom-color\"));\n      border-radius: 0; // Prevent rounding on headers\n      &:hover {\n        background-color: transparent; // No hover effect on headers\n      }\n    }\n  }\n\n  // Modifiers\n\n  // Structural Edge Modifiers (Decorating the default 1fr track)\n  #{ $prefix }--prefixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr);\n    }\n  }\n  #{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, 1fr auto);\n    }\n  }\n  #{ $prefix }--prefixed#{ $prefix }--suffixed {\n    grid-template-columns: var(--ulu-data-list-columns, auto 1fr auto);\n    @include breakpoint.max($stacked-bp) {\n      grid-template-columns: var(--ulu-data-list-columns-stacked, auto 1fr auto);\n    }\n  }\n\n  // Striped Rows\n  #{ $prefix }--striped {\n    @if (get(\"background-color-even\")) {\n      #{ $prefix }__item:nth-child(even) {\n        background-color: color.get(get(\"background-color-even\"));\n      }\n    }\n  }\n\n  // Interactive Rows (Proxy Click Support)\n  // Applied to parent to indicate all rows are interactive\n  #{ $prefix }--clickable {\n    #{ $prefix }__item {\n      cursor: pointer;\n      &:hover,\n      &:focus-within {\n        background-color: color.get(get(\"clickable-background-color-hover\"));\n        border-color: color.get(get(\"clickable-border-color-hover\"));\n      }\n    }\n  }\n\n  // Spanning (Required when a subgrid contains multiple child columns)\n  @for $i from 2 through get(\"span-count\") {\n    #{ $prefix }__column--span-#{$i} {\n      grid-column: span #{$i};\n      \n      // Reset span when stacked so it fits the simplified grid\n      @include breakpoint.max($stacked-bp) {\n        grid-column: auto;\n      }\n    }\n  }\n",
          "line": {
            "start": 99,
            "end": 270
          }
        },
        "demo": {
          "link": "data-list",
          "content": null
        },
        "group": [
          "data-list"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_data-list.scss",
          "name": "_data-list.scss"
        }
      }
    ],
    "data-table": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "data-table",
        "path": "/sass/components/data-table/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 25,
          "end": 56
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"cell-padding\" : (0.5em,),\n  \"text-align\" : left,\n  \"type-size\" : \"small\",\n  \"vertical-align\" : top,\n  \"background-color\" : white,\n  \"header-background-color\" : #f5f4f4,\n  \"body-background-color\" : white,\n  \"footer-background-color\" : #f3f3f3,\n  \"color\" : \"type-secondary\",\n  \"header-color\" : \"headline\",\n  \"footer-color\" : null,\n  \"line-height\" : true,\n  \"column-min-width\" : 6em,\n  \"first-column-large-min-width\" : 15em,\n  \"border-width\" : 1px,\n  \"border-color\" : #dddddd,\n  \"striped-row-background-color\" : #eeeeee,\n  \"muted-row-background-color\" : #ccc,\n  \"muted-row-border-color\" : null,\n  \"highlighted-row-background-color\" : #ccc,\n  \"highlighted-row-border-color\" : null,\n  \"large-header-cell-padding-y\" : 1em,\n  \"caption-type-size\" : \"large\",\n  \"caption-background-color\" : null,\n  \"caption-font-weight\" : bold,\n  \"caption-border-bottom\" : null,\n  \"caption-margin\" : (0,),\n  \"caption-padding\" : (0.65em 0),\n  \"caption-text-align\" : left,\n  \"extra-selector\" : \".wysiwyg table\"\n)",
          "scope": "default",
          "line": {
            "start": 58,
            "end": 89
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Dimension",
            "name": "cell-padding",
            "default": "(0.5em,)",
            "description": "Padding of the th and td elements."
          },
          {
            "type": "CssValue",
            "name": "text-align",
            "default": "left",
            "description": "Text align of the table."
          },
          {
            "type": "String",
            "name": "type-size",
            "default": "\"small\"",
            "description": "Font size of the table."
          },
          {
            "type": "CssValue",
            "name": "vertical-align",
            "default": "top",
            "description": "Vertical align for td/th"
          },
          {
            "type": "Color",
            "name": "background-color",
            "default": "white",
            "description": "Background color of table container."
          },
          {
            "type": "Color",
            "name": "header-background-color",
            "default": "#f5f4f4",
            "description": "Background color of the the table header."
          },
          {
            "type": "Color",
            "name": "body-background-color",
            "default": "white",
            "description": "Background color of table body."
          },
          {
            "type": "Color",
            "name": "footer-background-color",
            "default": "#f3f3f3",
            "description": "Background color of table footer."
          },
          {
            "type": "Color",
            "name": "color",
            "default": "\"type-secondary\"",
            "description": "Font color of the table."
          },
          {
            "type": "Color",
            "name": "header-color",
            "default": "\"headline\"",
            "description": "Font color for the table header."
          },
          {
            "type": "Color",
            "name": "footer-color",
            "default": "null",
            "description": "Font color for the table footer."
          },
          {
            "type": "Number",
            "name": "line-height",
            "default": "true",
            "description": "Line height for the table."
          },
          {
            "type": "Dimension",
            "name": "column-min-width",
            "default": "6em",
            "description": "Min-width of the th element."
          },
          {
            "type": "Dimension",
            "name": "first-column-large-min-width",
            "default": "15em",
            "description": "When using \"--large-first\" style, the min width of the first th element."
          },
          {
            "type": "Dimension",
            "name": "border-width",
            "default": "1px",
            "description": "Border width of the table."
          },
          {
            "type": "Color",
            "name": "border-color",
            "default": "#dddddd",
            "description": "Border color for the table."
          },
          {
            "type": "Color",
            "name": "striped-row-background-color",
            "default": "#eeeeee",
            "description": "Background color for even rows if using \"--striped\" styling."
          },
          {
            "type": "Color",
            "name": "muted-row-background-color",
            "default": "#ccc",
            "description": "Background color for odd rows if using \"--striped\" styling."
          },
          {
            "type": "Color",
            "name": "muted-row-border-color",
            "default": "null",
            "description": "Border color for odd rows if using \"--striped\" styling."
          },
          {
            "type": "Color",
            "name": "highlighted-row-background-color",
            "default": "#ccc",
            "description": "Background color row if using \"__row-highlighted\" styling."
          },
          {
            "type": "Color",
            "name": "highlighted-row-border-color",
            "default": "null",
            "description": "Border color row if using \"__row-highlighted\" styling."
          },
          {
            "type": "Dimension",
            "name": "large-header-cell-padding-y",
            "default": "1em",
            "description": "Vertical padding of header if using \"--large-header\" styling."
          },
          {
            "type": "String",
            "name": "caption-type-size",
            "default": "\"large\"",
            "description": "Type size of table caption."
          },
          {
            "type": "Color",
            "name": "caption-background-color",
            "default": "null",
            "description": "Background color of table caption."
          },
          {
            "type": "CssValue",
            "name": "caption-font-weight",
            "default": "bold",
            "description": "Font weight of caption."
          },
          {
            "type": "CssBalue",
            "name": "caption-border-bottom",
            "default": "null",
            "description": "Bottom border of the caption."
          },
          {
            "type": "Dimension",
            "name": "caption-margin",
            "default": "(0,)",
            "description": "Margin of the caption."
          },
          {
            "type": "Dimension",
            "name": "caption-padding",
            "default": "(0.65em 0)",
            "description": "Padding of the caption."
          },
          {
            "type": "CssValue",
            "name": "caption-text-align",
            "default": "left",
            "description": "Text align of the caption."
          },
          {
            "type": "String",
            "name": "extra-selector",
            "default": "\".wysiwyg table\"",
            "description": "Additional selectors to include table styling."
          }
        ],
        "group": [
          "data-table"
        ],
        "access": "public",
        "file": {
          "path": "_data-table.scss",
          "name": "_data-table.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "data-table",
        "path": "/sass/components/data-table/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 91,
          "end": 94
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 96,
            "end": 98
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-data-table-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "data-table"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_data-table.scss",
          "name": "_data-table.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "data-table",
        "path": "/sass/components/data-table/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 100,
          "end": 103
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  $value: utils.require-map-get($config, $name, \"data-table [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
          "line": {
            "start": 105,
            "end": 108
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-data-table-get(\"property\");"
          }
        ],
        "group": [
          "data-table"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_data-table.scss",
          "name": "_data-table.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "data-table",
        "path": "/sass/components/data-table/#mixin-styles",
        "description": "Output component stylesheet\n",
        "commentRange": {
          "start": 110,
          "end": 112
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"data-table\");\n  $border: get(\"border-width\") solid color.get(get(\"border-color\"));\n  \n  $selector-table: sassSelector.parse(\"#{ $prefix } table, table#{ $prefix }\");\n  $selector-inner: sassSelector.parse($prefix);\n  $extra-selector: get(\"extra-selector\");\n\n  // Allow this to work with wysiwyg class, or as \"table\" for editor stylesheet\n  @if ($extra-selector) {\n    $selector-table: sassSelector.parse(\"#{ $selector-table }, #{ $extra-selector }\");\n    $selector-inner: sassSelector.parse(\"#{ $selector-inner }, #{ $extra-selector }\");\n  }\n\n  // Selector can be on table or wrapping table for convenience\n  #{ $selector-table } {\n    background-color: color.get(get(\"background-color\"));\n    border-collapse: collapse;\n    border: $border;\n    color: color.get(get(\"color\"));\n  }\n  #{ $selector-inner } {\n    @if (get(\"type-size\") and typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    line-height: get(\"line-height\");\n\n    caption {\n      @if (get(\"caption-type-size\") and typography.has-size(get(\"caption-type-size\"))) {\n        @include typography.size(get(\"caption-type-size\"));\n      }\n      font-weight: get(\"caption-font-weight\");\n      text-align: get(\"caption-text-align\");\n      margin: get(\"caption-margin\");\n      padding: get(\"caption-padding\");\n      background-color: get(\"caption-background-color\");\n      border-bottom: get(\"caption-border-bottom\");\n    }\n    th,\n    td {\n      text-align: get(\"text-align\");\n      vertical-align: get(\"vertical-align\");\n    }\n    th {\n      min-width: get(\"column-min-width\");\n    }\n    td:not(:last-child), \n    th:not(:last-child) {\n      border-right: $border;\n    }\n    // This makes it work for nested headers last child that aren't the last in the table\n    th:not(:first-child) {\n      border-left: $border;\n    }\n    tr + tr {\n      border-top: $border;\n    }\n    thead tr {\n      background-color: color.get(get(\"header-background-color\"));\n    }\n    thead th {\n      color: color.get(get(\"header-color\"));\n    }\n    tbody tr {\n      background-color: color.get(get(\"body-background-color\"));\n    }\n    tfoot tr {\n      background-color: color.get(get(\"footer-background-color\"));\n      color: color.get(get(\"footer-color\"));\n    }\n    th,\n    td {\n      padding: get(\"cell-padding\");\n    }\n  }\n  #{ $prefix }__row-muted {\n    background-color: color.get(get(\"muted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"muted-row-border-color\"));\n    }\n  }\n  #{ $prefix }__row-highlighted {\n    background-color: color.get(get(\"highlighted-row-background-color\"));\n    td {\n      border-color: color.get(get(\"highlighted-row-border-color\"));\n    }\n  }\n  #{ $prefix }--striped {\n    tbody tr:nth-child(even) {\n      background-color: color.get(get(\"striped-row-background-color\"));\n    }\n  }\n  #{ $prefix }--large-first {\n    thead tr:first-child th:first-child,\n    tbody td:first-child {\n      min-width: get(\"first-column-large-min-width\");\n    }\n  }\n  #{ $prefix }--large-header {\n    thead th {\n      padding-top: get(\"large-header-cell-padding-y\");\n      padding-bottom: get(\"large-header-cell-padding-y\");\n    }\n  }\n  #{ $prefix }--no-border table,\n  table#{ $prefix }--no-border  {\n    border: none;\n  }\n",
          "line": {
            "start": 114,
            "end": 222
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-data-table-styles();"
          }
        ],
        "group": [
          "data-table"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_data-table.scss",
          "name": "_data-table.scss"
        }
      }
    ],
    "definition-list": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "definition-list",
        "path": "/sass/components/definition-list/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 33,
          "end": 46
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"margin\" : (0 0 1.5em 0),\n  \"term-font-weight\": true,\n  \"term-color\" : null,\n  \"line-height\": true,\n  \"item-margin\" : 1em,\n  \"separator\": true,\n  \"separator-border\": true,\n  \"table-breakpoint\": \"medium\",\n  \"table-template-columns\": (25% 75%),\n  \"table-gap\": 1rem,\n  \"inline-description-separator\": \",\",\n  \"inline-term-separator\": \":\",\n  \"compact-item-margin\" : 0.5em\n)",
          "scope": "default",
          "line": {
            "start": 48,
            "end": 62
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "String",
            "name": "term-font-weight",
            "default": "true",
            "description": "The font-weight of the dt element."
          },
          {
            "type": "String",
            "name": "term-color",
            "default": "null",
            "description": "Set a color for the term"
          },
          {
            "type": "Dimension",
            "name": "line-height",
            "default": "true",
            "description": "The line-height of the definition list."
          },
          {
            "type": "CssUnit",
            "name": "item-margin",
            "default": "0.75em",
            "description": "The spacing for each item."
          },
          {
            "type": "Boolean",
            "name": "separator",
            "default": "true",
            "description": "Whether to show a separator between items."
          },
          {
            "type": "Border",
            "name": "separator-border",
            "default": "true",
            "description": "The border style for the separator."
          },
          {
            "type": "Dimension",
            "name": "separator-padding",
            "default": "0.75em",
            "description": "The padding for the separator."
          },
          {
            "type": "String",
            "name": "table-breakpoint",
            "default": "medium",
            "description": "The breakpoint for the table layout."
          },
          {
            "type": "String",
            "name": "table-template-columns",
            "default": "(25% 75%)",
            "description": "The grid-template-columns for the table layout."
          },
          {
            "type": "Dimension",
            "name": "table-gap",
            "default": "1rem",
            "description": "The gap for the table layout."
          },
          {
            "type": "String",
            "name": "inline-description-separator",
            "default": "\",\"",
            "description": "The separator for multiple dd elements in inline layout."
          },
          {
            "type": "String",
            "name": "inline-term-separator",
            "default": "\":\"",
            "description": "The separator for dt elements in inline layout."
          }
        ],
        "group": [
          "definition-list"
        ],
        "access": "public",
        "file": {
          "path": "_definition-list.scss",
          "name": "_definition-list.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "definition-list",
        "path": "/sass/components/definition-list/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 64,
          "end": 67
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 69,
            "end": 71
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-definition-list-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "definition-list"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_definition-list.scss",
          "name": "_definition-list.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "definition-list",
        "path": "/sass/components/definition-list/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 73,
          "end": 76
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  $value: utils.require-map-get($config, $name, \"definition-list [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
          "line": {
            "start": 78,
            "end": 81
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-definition-list-get(\"property\");"
          }
        ],
        "group": [
          "definition-list"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_definition-list.scss",
          "name": "_definition-list.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "definition-list",
        "path": "/sass/components/definition-list/#mixin-styles",
        "description": "Prints component styles\n",
        "commentRange": {
          "start": 83,
          "end": 86
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"definition-list\");\n  $item-margin-half: math.div(get(\"item-margin\"), 2);\n  $compact-item-margin-half: math.div(get(\"compact-item-margin\"), 2);\n\n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n\n    > div {\n      margin-top: $item-margin-half;\n      padding-top: $item-margin-half;\n    }\n    dt,\n    dd {\n      display: block;\n      margin: 0;\n      font-weight: normal;\n    }\n    dt {\n      font-weight: get(\"term-font-weight\");\n      font-weight: color.get(get(\"term-color\"));\n    }\n  }\n\n  // Modifiers\n  #{ $prefix }--table {\n    @include breakpoint.min(get(\"table-breakpoint\")) {\n      > div {\n        display: grid;\n        grid-template-columns: get(\"table-template-columns\");\n        gap: get(\"table-gap\");\n      }\n    }\n  }\n\n  #{ $prefix }--inline,\n  #{ $prefix }--inline-all {\n    > div {\n      display: flex;\n      flex-wrap: wrap;\n      align-items: baseline;\n    }\n\n    dd + dd {\n      &::before {\n        content: get(\"inline-description-separator\");\n        margin-right: 0.2em;\n      }\n    }\n  }\n\n  #{ $prefix }--inline {\n    dt {\n      flex-basis: 100%;\n    }\n  }\n\n  #{ $prefix }--inline-all {\n    dt {\n      &::after {\n        content: get(\"inline-term-separator\");\n        margin-right: 0.2em;\n      }\n    }\n  }\n\n  #{ $prefix }--separated > div:not(:first-child),\n  #{ $prefix }--separated-first > div:first-child {\n    border-top: get(\"separator-border\");\n  }\n  #{ $prefix }--separated-last > div:last-child {\n    border-bottom: get(\"separator-border\");\n    padding-bottom: $item-margin-half;\n  }\n\n  #{ $prefix }--compact {\n    > div {\n      margin-top: $compact-item-margin-half;\n      padding-top: $compact-item-margin-half;\n    }\n  }\n  #{ $prefix }--compact#{ $prefix }--separated-last > div:last-child {\n    padding-bottom: $compact-item-margin-half;\n  }\n\n  // Clip margin of first\n  #{ $prefix }:not(#{ $prefix }--separated-first) {\n    > div:first-child {\n      padding-top: 0;\n      margin-top: 0;\n    }\n  }\n",
          "line": {
            "start": 88,
            "end": 181
          }
        },
        "demo": {
          "link": "definition-list",
          "content": null
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-definition-list-styles();"
          }
        ],
        "group": [
          "definition-list"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_definition-list.scss",
          "name": "_definition-list.scss"
        }
      }
    ],
    "fill-context": [
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "fill-context",
        "path": "/sass/components/fill-context/#mixin-styles",
        "description": "Output component stylesheet\n- Use the parent selector '.fill-context' on the element that should be the \n  frame for the child object (img,video).  \n- Can be used within the grid with modifier (see in example below).\n",
        "commentRange": {
          "start": 10,
          "end": 28
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"fill-context\");\n\n  #{ $prefix } {\n    position: relative;\n  }\n  #{ $prefix }__object,\n  #{ $prefix }--auto img {\n    position: absolute;\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n  }\n\n  #{ $prefix }--contain {\n    &#{ $prefix }--auto img,\n    #{ $prefix }__object {\n      object-fit: contain;\n    }\n  }\n\n  #{ $prefix }--in-grid {\n    $breakpoint: data-grid.get-default-breakpoint();\n    @include breakpoint.max($breakpoint) {\n      #{ $prefix }__object,\n      &#{ $prefix }--auto img {\n        position: static;\n        height: auto;\n        object-fit: fill;\n      }\n    }\n  }\n",
          "line": {
            "start": 30,
            "end": 62
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-fill-context-styles();"
          },
          {
            "type": "html",
            "code": "<div class=\"fill-context\">\n  <img class=\"fill-context__object\" src=\"background.jpg\">\n</div>\n \n \n<div class=\"fill-context fill-context--auto\">\n  <img src=\"background.jpg\">\n</div>\n \n<div data-grid-item=\"width: 6\" class=\"fill-context fill-context--in-grid fill-context--contain\">\n  <img src=\"background.jpg\">\n</div>",
            "description": "",
            "modifier": "preview"
          }
        ],
        "group": [
          "fill-context"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get-default-breakpoint"
          }
        ],
        "file": {
          "path": "_fill-context.scss",
          "name": "_fill-context.scss"
        }
      }
    ],
    "flipcard": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "flipcard",
        "path": "/sass/components/flipcard/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 13,
          "end": 40
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"anim-delay\" : 200ms,\n  \"anim-duration\" : 430ms,\n  \"anim-front-close\": \"FlipcardFrontClose\",\n  \"anim-front-open\": \"FlipcardFrontOpen\",\n  \"anim-back-open\": \"FlipcardBackOpen\",\n  \"anim-timing-function\": ease-out,\n  \"background-color\" : \"background\",\n  \"background-color-image\" : \"accent\",\n  \"background-color-back\" : \"placeholder-background\",\n  \"bottom-shadow\" : true,\n  \"border-width\" : 1px,\n  \"border-width-focus\" : 3px,\n  \"border-color\" : \"rule-light\",\n  \"border-color-hover\" : \"rule\",\n  \"border-color-focus\" : \"focus\",\n  \"border-radius\" : 6px,\n  \"icon-color\" : \"type-secondary\",\n  \"icon-color-hover\" : \"link-hover\",\n  \"icon-color-image\" : \"white\",\n  \"icon-color-image-hover\" : \"white\",\n  \"image-opacity\" : 0.7,\n  \"padding\" : 1.5rem,\n  \"title-color\" : \"type\",\n  \"title-color-hover\" : \"link-hover\",\n  \"title-color-image\" : \"white\",\n  \"title-color-image-hover\" : \"white\",\n)",
          "scope": "private",
          "line": {
            "start": 42,
            "end": 69
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Color",
            "name": "background-color",
            "default": "\"background\"",
            "description": "Background color of the text-only flipcard front."
          },
          {
            "type": "Color",
            "name": "background-color-image",
            "default": "\"accent\"",
            "description": "Background color of the image flipcard front."
          },
          {
            "type": "Number",
            "name": "image-opacity",
            "default": "0.7",
            "description": "Opacity of the image to allow shading from the background color."
          },
          {
            "type": "Color",
            "name": "background-color-back",
            "default": "\"placeholder-background\"",
            "description": "Background color on the back of the flipcard."
          },
          {
            "type": "Dimension",
            "name": "border-width",
            "default": "1px",
            "description": "Flipcard border width"
          },
          {
            "type": "Color",
            "name": "border-color",
            "default": "\"rule-light\"",
            "description": "Flipcard border color"
          },
          {
            "type": "Dimension",
            "name": "border-radius",
            "default": "6px",
            "description": "Border radius for flipcard."
          },
          {
            "type": "Color",
            "name": "border-color-hover",
            "default": "\"rule\"",
            "description": "border color when hovered."
          },
          {
            "type": "Dimension",
            "name": "border-width-focus",
            "default": "3px",
            "description": "Border width that shows when focused."
          },
          {
            "type": "Color",
            "name": "border-color-focus",
            "default": "\"focus\"",
            "description": "border color when focused"
          },
          {
            "type": "Time",
            "name": "anim-duration",
            "default": "430ms",
            "description": "Animation duration."
          },
          {
            "type": "Time",
            "name": "anim-delay",
            "default": "200ms",
            "description": "Animation delay."
          },
          {
            "type": "String",
            "name": "anim-front-close",
            "default": "\"FlipcardFrontClose\"",
            "description": "Animation name for front close."
          },
          {
            "type": "String",
            "name": "anim-front-open",
            "default": "\"FlipcardFrontOpen\"",
            "description": "Animation name for front open."
          },
          {
            "type": "String",
            "name": "anim-back-open",
            "default": "\"FlipcardBackOpen\"",
            "description": "Animation name for back open."
          },
          {
            "type": "CssValue",
            "name": "anim-timing-function",
            "default": "ease-out",
            "description": "Animation timing function."
          },
          {
            "type": "Dimension",
            "name": "padding",
            "default": "1.5rem",
            "description": "Padding for the flipcard."
          },
          {
            "type": "Color",
            "name": "title-color",
            "default": "\"type\"",
            "description": "Color of the front page text."
          },
          {
            "type": "Color",
            "name": "title-color-hover",
            "default": "\"link-hover\"",
            "description": "Color of the front page text when hovered or focused."
          },
          {
            "type": "Color",
            "name": "icon-color",
            "default": "\"type-secondary\"",
            "description": "Color of the icon."
          },
          {
            "type": "Color",
            "name": "icon-color-hover",
            "default": "\"link-hover\"",
            "description": "Color of the icon when hovered or focused."
          },
          {
            "type": "Color",
            "name": "icon-color-image",
            "default": "\"white\"",
            "description": "Color of the icon when using an image."
          },
          {
            "type": "Color",
            "name": "icon-color-image-hover",
            "default": "\"white\"",
            "description": "Color of the icon when using an image and hovered or focused."
          },
          {
            "type": "Color",
            "name": "title-color-image",
            "default": "\"white\"",
            "description": "Color of the front page text when using an image."
          },
          {
            "type": "Color",
            "name": "title-color-image-hover",
            "default": "\"white\"",
            "description": "Color of the front page text when using an image and hovered or focused."
          },
          {
            "type": "Boolean",
            "name": "bottom-shadow",
            "default": "true",
            "description": "Boolean that enables a bottom shadow to the image flipcard."
          }
        ],
        "group": [
          "flipcard"
        ],
        "access": "public",
        "file": {
          "path": "_flipcard.scss",
          "name": "_flipcard.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "flipcard",
        "path": "/sass/components/flipcard/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 71,
          "end": 74
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 76,
            "end": 78
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-flipcard-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "flipcard"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_flipcard.scss",
          "name": "_flipcard.scss"
        }
      },
      {
        "id": "mixin-set-sizes",
        "title": "set-sizes()",
        "groupName": "flipcard",
        "path": "/sass/components/flipcard/#mixin-set-sizes",
        "description": "Set sizes map\n",
        "commentRange": {
          "start": 80,
          "end": 82
        },
        "context": {
          "type": "mixin",
          "name": "set-sizes",
          "code": "\n  $sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;\n",
          "line": {
            "start": 84,
            "end": 86
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          },
          {
            "type": "String",
            "name": "merge-mode",
            "description": "Merge mode see utils.map-merge() [null|\"deep\"|\"overwrite\"]"
          }
        ],
        "group": [
          "flipcard"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "sizes"
          },
          {
            "type": "variable",
            "name": "sizes"
          }
        ],
        "file": {
          "path": "_flipcard.scss",
          "name": "_flipcard.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "flipcard",
        "path": "/sass/components/flipcard/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 88,
          "end": 91
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"flipcard [config]\");\n",
          "line": {
            "start": 93,
            "end": 95
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-flipcard-get(\"property\");"
          }
        ],
        "group": [
          "flipcard"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_flipcard.scss",
          "name": "_flipcard.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "flipcard",
        "path": "/sass/components/flipcard/#mixin-styles",
        "description": "Prints component styles\n",
        "commentRange": {
          "start": 97,
          "end": 101
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"flipcard\");\n  $prefix-plugin: selector.class(\"Flipcard\");\n\n  #{ $prefix } {\n    height: 100%;\n    background-color: color.get(get(\"background-color\"));\n    line-height: 1.4;\n    overflow: hidden;\n    position: relative;\n    border-radius: get(\"border-radius\");\n    @if (get(\"border-width\")) {\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    }\n    \n    &#{ $prefix }:hover {\n      border-color: color.get(get(\"border-color-hover\"));\n    }\n    @if (get(\"border-width-focus\")) {\n      #{ $prefix-plugin }__control-button:focus {\n        border: get(\"border-width-focus\") solid color.get(get(\"border-color-focus\"));\n      }\n    }\n  }\n  #{ $prefix }__front,\n  #{ $prefix }__back {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n  }\n  \n  #{ $prefix }__front {\n    // To lay the image out on top of the text\n    display: grid;\n    grid-template-columns: 1fr;\n    justify-items: stretch;\n    grid-template-areas: \"flipcard-front\";\n    &:hover {\n      #{ $prefix }__front-image {\n        transition-duration: 8000ms;\n        transition-delay: 0;\n        transform: scale(1.15);\n      }\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-hover\"));\n      }\n    }\n    @media (prefers-reduced-motion: no-preference) {\n      [data-flipcard-state=\"open\"] & {\n        opacity: 0;\n        animation: get(\"anim-front-close\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n      [data-flipcard-state=\"closed\"] & {\n        animation: get(\"anim-front-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      }\n    }\n  }\n  #{ $prefix }--w-image {\n    background-color: color.get(get(\"background-color-image\"));\n\n    &:hover {\n      #{ $prefix }__front-content {\n        color: color.get(get(\"title-color-image-hover\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(get(\"icon-color-image-hover\"));\n      }\n    }\n  }\n  #{ $prefix }__front-image,\n  #{ $prefix }__front-content {\n    grid-area: flipcard-front / flipcard-front / flipcard-front / flipcard-front;\n  }\n  #{ $prefix }__front-image {\n    display: block;\n    @media (prefers-reduced-motion) {\n      transition: transform 1000ms 200ms get(\"anim-timing-function\");\n    }\n    img {\n      object-fit: cover;\n      width: 100%;\n      height: 100%;\n      opacity: get(\"image-opacity\");\n    }\n  }\n  #{ $prefix }__icon {\n    color: color.get(get('icon-color'));\n    display: block;\n    margin-top: 0.5rem;\n  }\n  #{ $prefix }__front-content {\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    color: color.get(get(\"title-color\"));\n    position: relative;\n    z-index: 2;\n    padding: get('padding');\n    align-self: end;\n    transition: transform 350ms get(\"anim-timing-function\");    \n  }\n  #{ $prefix }--w-image {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-image\"));\n    }\n    #{ $prefix }__front-content {\n      color: color.get(get(\"title-color-image\"));\n      @if (get(\"bottom-shadow\")) {\n        // bottom position includes padding so that the shadow \n        &::after {\n          content: '';\n          display: block;\n          position: absolute;\n          bottom: calc(0rem - get('padding'));\n          top: 0;\n          left: 0;\n          right: 0;\n          background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5));\n          z-index: -1;\n        }\n      }\n    }\n  }\n  #{ $prefix }__back {\n    background-color: color.get(get(\"background-color-back\"));\n    padding: get('padding');\n    justify-content: flex-end;\n    [data-flipcard-state=\"open\"] & {\n      animation: get(\"anim-back-open\") get('anim-duration') get(\"anim-timing-function\") forwards;\n      @media (prefers-reduced-motion) {\n        animation: UluFadeIn 430ms get(\"anim-timing-function\");\n      }\n    }\n  }\n  @keyframes FlipcardBackOpen {\n    0% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    30% {\n      opacity: 0;\n      transform: translateY(100%);\n    }\n    100% {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n  @keyframes FlipcardFrontClose {\n    0% {\n      opacity: 1;\n    }\n    80% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 0;\n    }\n  }\n  @keyframes FlipcardFrontOpen {\n    0% {\n      opacity: 0;\n    }\n    30% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  #{ $prefix }--center-title {\n    #{ $prefix }__front-content {\n      justify-content: center;\n      align-items: center;\n    }\n    #{ $prefix }__back-content {\n      #{ $prefix }__icon-container {\n        display: flex;\n        justify-content: center;\n        width: 100%;\n      }\n    }\n  }\n  #{ $prefix }--bottom-title {\n    #{ $prefix }__front-content {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }:not(#{ $prefix }--bottom-title, #{ $prefix }--center-title) {\n    #{ $prefix }__front-content {\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n    #{ $prefix }__back {\n      position: relative;\n      padding-top: calc(get(\"padding\") + 1.2rem);\n      padding-bottom: calc(get(\"padding\") + 1.2rem);\n      #{ $prefix }__icon-container {\n        position: absolute;\n        bottom: get(\"padding\");\n        right: get(\"padding\");\n      }\n    }\n  }\n  // modifier for animations\n  #{ $prefix }--animation:hover {\n    #{ $prefix }__front-content {\n      transform: translateY(-(get('padding') * 0.5));\n    }\n  }\n",
          "line": {
            "start": 103,
            "end": 325
          }
        },
        "demo": {
          "link": "flipcard",
          "content": null
        },
        "example": [
          {
            "type": "scss",
            "code": "scss"
          },
          {
            "type": "scss",
            "code": "@include ulu.component-flipcard-styles();"
          }
        ],
        "group": [
          "flipcard"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_flipcard.scss",
          "name": "_flipcard.scss"
        }
      }
    ],
    "flipcard-grid": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "flipcard-grid",
        "path": "/sass/components/flipcard-grid/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 12,
          "end": 15
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"gutter\" : 1rem,\n  \"grid-template-columns\" : 1fr 1fr,\n  \"breakpoint\" : \"small\"\n)",
          "scope": "private",
          "line": {
            "start": 17,
            "end": 22
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Dimension",
            "name": "gutter",
            "default": "1rem",
            "description": "The gutter between grid items."
          },
          {
            "type": "CssValue",
            "name": "grid-template-columns",
            "default": "1fr 1fr",
            "description": "The size ratio of items in the grid."
          }
        ],
        "group": [
          "flipcard-grid"
        ],
        "access": "public",
        "file": {
          "path": "_flipcard-grid.scss",
          "name": "_flipcard-grid.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "flipcard-grid",
        "path": "/sass/components/flipcard-grid/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 24,
          "end": 27
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 29,
            "end": 31
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-flipcard-grid-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "flipcard-grid"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_flipcard-grid.scss",
          "name": "_flipcard-grid.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "flipcard-grid",
        "path": "/sass/components/flipcard-grid/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 33,
          "end": 36
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"flipcard-grid [config]\");\n",
          "line": {
            "start": 38,
            "end": 40
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-flipcard-grid-get(\"property\");"
          }
        ],
        "group": [
          "flipcard-grid"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_flipcard-grid.scss",
          "name": "_flipcard-grid.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "flipcard-grid",
        "path": "/sass/components/flipcard-grid/#mixin-styles",
        "description": "Output component stylesheet\n",
        "commentRange": {
          "start": 42,
          "end": 44
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"flipcard-grid\");\n\n  #{ $prefix } {\n    display: grid;\n    grid-template-columns: 1fr;\n    grid-auto-rows: 1fr;\n    justify-items: stretch;\n    gap: get(\"gutter\");\n    list-style: none !important; // B/c in Editor\n    padding: 0 !important; // B/c in Editor\n    @if (breakpoint.exists(get(\"breakpoint\"))) {\n      @include breakpoint.min(get(\"breakpoint\")) {\n        grid-template-columns: get(\"grid-template-columns\");\n      }\n    }\n  }\n  #{ $prefix }__item {\n    margin: 0 !important; // B/c in Editor\n  }\n",
          "line": {
            "start": 46,
            "end": 66
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-flipcard-grid-styles();"
          }
        ],
        "group": [
          "flipcard-grid"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_flipcard-grid.scss",
          "name": "_flipcard-grid.scss"
        }
      }
    ],
    "form-theme": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "form-theme",
        "path": "/sass/components/form-theme/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 25,
          "end": 109
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"color\"                                     : inherit,\n  \"color-placeholder\"                         : \"type-tertiary\",\n  \"drupal\"                                    : false,\n  \"error-color\"                               : \"danger\",\n  \"error-highlight-color\"                     : rgb(251, 242, 242),\n  \"error-selector\"                            : \".is-danger\",\n  \"file-button-style\"                         : true,\n  \"font-weight-label\"                         : bold,\n  \"font-weight-legend\"                        : bold,\n  \"font-weight-placeholder\"                   : normal,\n  \"font-weight-input\"                         : null,\n  \"font-weight-textarea\"                      : null,\n  \"font-weight-select\"                        : null,\n  \"input-border\"                              : element.get-rule-style(),\n  \"input-border-radius\"                       : 3px,\n  \"item-align-items\"                          : flex-start,\n  \"item-border-radius\"                        : null,\n  \"item-highlight-width\"                      : 6px,\n  \"item-margin-y\"                             : 0.75em,\n  \"input-padding-x\"                           : 0.5em,\n  \"input-padding-y\"                           : 0.25em,\n  \"input-min-width\"                           : 10em,\n  \"input-background-color\"                    : white,\n  \"required-color\"                            : \"danger\",\n  \"text-input-margin-bottom\"                  : 0.5em,\n  \"text-input-margin-top\"                     : 1em,\n  \"warning-color\"                             : \"warning\",\n  \"warning-highlight-color\"                   : rgb(255, 249, 237),\n  \"warning-selector\"                          : \".is-warning\",\n  \"check-input-color\"                         : currentColor,\n  \"check-input-size\"                          : 1.15em,\n  \"check-input-touch-size\"                    : 2em,\n  \"check-input-background-color\"              : white,\n  \"check-input-background-color-checked\"      : white,\n  \"check-input-background-color-hover\"        : white,\n  \"check-input-background-color-indeterminate\": white,\n  \"check-input-border\"                        : null,\n  \"check-input-border-color-hover\"            : null,\n  \"check-input-border-color-checked\"          : null,\n  \"check-input-border-color-indeterminate\"    : null,\n  \"check-input-border-color-focus\"            : null,\n  \"check-input-outline\"                       : null,\n  \"check-input-outline-hover\"                 : null,\n  \"check-input-outline-checked\"               : null,\n  \"check-input-outline-focus\"                 : 1px solid white,\n  \"check-input-touch-color-hover\"             : #e8e8e8,\n  \"check-input-touch-color-focus\"             : null,\n  \"check-input-radio-size\"                    : 0.3em,\n  \"check-input-checkmark-width\"               : 0.38em,\n  \"check-input-checkmark-height\"              : 0.68em,\n  \"check-input-checkmark-offset-y\"            : -0.2em,\n  \"check-input-checkmark-stroke-size\"         : 0.18em,\n  \"check-input-mark-color\"                    : currentColor,\n  \"check-input-mark-color-hover\"              : null,\n  \"check-input-mark-color-focus\"              : null,\n  \"check-input-mark-color-checked\"            : null,\n  \"check-input-mark-color-indeterminate\"      : null,\n  \"check-input-disabled-opacity\"              : 0.6,\n  \"check-input-border-radius\"                 : 0,\n  \"description-color\"                         : false,\n  \"description-margin\"                        : (0.25em 0),\n  \"description-max-width\"                     : 25em,\n  \"description-line-height\"                   : true,\n  \"fieldset-background\"                       : transparent,\n  \"fieldset-border\"                           : none,\n  \"fieldset-margin-bottom\"                    : 1rem,\n  \"fieldset-margin-top\"                       : 1rem,\n  \"fieldset-padding\"                          : 0,\n  \"fieldset-margin-compact\"                   : 0,\n  \"fieldset-border-radius\"                    : 0,\n  \"fieldset-legend-color\"                     : inherit,\n  \"fieldset-legend-border-bottom\"             : null,\n  \"fieldset-legend-padding-bottom\"            : 0,\n  \"fieldset-legend-margin-bottom\"             : 0.5em,\n  \"select-border-radius\"                      : 4px,\n  \"select-background-color\"                   : null,\n  \"select-border\"                             : null,\n  \"select-padding-x\"                          : null,\n  \"select-padding-y\"                          : null,\n  \"select-image\"                              : null,\n  \"select-image-size\"                         : 0.9em,\n  \"select-image-offset\"                       : 0.7em,\n  \"select-image-margin\"                       : 0.65em,\n  \"inline-gap\"                                : 1em\n)",
          "scope": "default",
          "line": {
            "start": 111,
            "end": 196
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "CssValue",
            "name": "color",
            "default": "inherit",
            "description": "Color of the text of the form."
          },
          {
            "type": "CssValue",
            "name": "color-placeholder",
            "default": "\"type-tertiary\"",
            "description": "Color for the placeholder text."
          },
          {
            "type": "Boolean",
            "name": "drupal",
            "default": "false",
            "description": "Toggle if using drupal to include drupal specific styling."
          },
          {
            "type": "Color",
            "name": "error-color",
            "default": "\"danger\"",
            "description": "Type color for errors."
          },
          {
            "type": "Color",
            "name": "error-highlight-color",
            "default": "rgb(251, 242, 242)",
            "description": "Outline color of error container."
          },
          {
            "type": "String",
            "name": "error-selector",
            "default": "\".is-danger\"",
            "description": "Class for error styling."
          },
          {
            "type": "Map",
            "name": "file-button-style",
            "default": "true",
            "description": "@joe-check should this have a fallback"
          },
          {
            "type": "CssValue",
            "name": "font-weight-label",
            "default": "bold",
            "description": "Font weight of the labels."
          },
          {
            "type": "CssValue",
            "name": "font-weight-legend",
            "default": "bold",
            "description": "Font weight of the legend."
          },
          {
            "type": "CssValue",
            "name": "font-weight-placeholder",
            "default": "normal",
            "description": "Font weight of placeholder text."
          },
          {
            "type": "CssValue",
            "name": "font-weight-input",
            "default": "null",
            "description": "Font weight of input text."
          },
          {
            "type": "CssValue",
            "name": "font-weight-textarea",
            "default": "null",
            "description": "Font weight of textarea text."
          },
          {
            "type": "CssValue",
            "name": "font-weight-select",
            "default": "null",
            "description": "Font weight of select text."
          },
          {
            "type": "CssValue",
            "name": "input-border",
            "default": "element.get-rule-style()",
            "description": "Border of the input."
          },
          {
            "type": "Dimension",
            "name": "input-border-radius",
            "default": "0",
            "description": "Border radius of the input."
          },
          {
            "type": "Dimension",
            "name": "input-padding-x",
            "default": "0.5em",
            "description": "Horizontal padding of the input."
          },
          {
            "type": "Dimension",
            "name": "input-padding-y",
            "default": "0.25em",
            "description": "Vertical padding of the input."
          },
          {
            "type": "Dimension",
            "name": "input-min-width",
            "default": "10em",
            "description": "Min width of the input."
          },
          {
            "type": "Color",
            "name": "input-background-color",
            "default": "white",
            "description": "Background color of the input."
          },
          {
            "type": "CssValue",
            "name": "item-align-items",
            "default": "flex-start",
            "description": "Alignment for items inline."
          },
          {
            "type": "Dimension",
            "name": "item-border-radius",
            "default": "null",
            "description": "Border radius for __item."
          },
          {
            "type": "Dimension",
            "name": "item-highlight-width",
            "default": "6px",
            "description": "Width of the item box highlight."
          },
          {
            "type": "Dimension",
            "name": "item-margin-y",
            "default": "0.75em",
            "description": "Vertical margin for items."
          },
          {
            "type": "Color",
            "name": "required-color",
            "default": "\"danger\"",
            "description": "Color for required text."
          },
          {
            "type": "Dimension",
            "name": "text-input-margin-bottom",
            "default": "0.5em",
            "description": "Bottom margin for the label."
          },
          {
            "type": "Dimension",
            "name": "text-input-margin-top",
            "default": "1em",
            "description": "Top margin for the label."
          },
          {
            "type": "Color",
            "name": "warning-color",
            "default": "\"warning\"",
            "description": "The warning text color."
          },
          {
            "type": "Color",
            "name": "warning-highlight-color",
            "default": "rgb(255, 249, 237)",
            "description": "Outline color of the warning."
          },
          {
            "type": "String",
            "name": "warning-selector",
            "default": "\".is-warning\"",
            "description": "Selector for adding warning styles."
          },
          {
            "type": "Color",
            "name": "check-input-color",
            "default": "currentColor",
            "description": "@joe-check unused"
          },
          {
            "type": "Dimension",
            "name": "check-input-size",
            "default": "1.15em",
            "description": "Size of input box."
          },
          {
            "type": "Dimension",
            "name": "check-input-touch-size",
            "default": "2em",
            "description": "Touchable size of the input box."
          },
          {
            "type": "Color",
            "name": "check-input-background-color",
            "default": "white",
            "description": "Background color for the check input."
          },
          {
            "type": "Color",
            "name": "check-input-background-color-checked",
            "default": "white",
            "description": "Background color for the check input when checked."
          },
          {
            "type": "Color",
            "name": "check-input-background-color-hover",
            "default": "white",
            "description": "Background color for the check input when hovered or focused."
          },
          {
            "type": "Color",
            "name": "check-input-background-color-indeterminate",
            "default": "white",
            "description": "Background color for the indeterminate check input."
          },
          {
            "type": "Map",
            "name": "check-input-border",
            "default": "null",
            "description": "@joe-check check how this is called with a fallback in the styles mixin"
          },
          {
            "type": "Color",
            "name": "check-input-border-color-hover",
            "default": "null",
            "description": "Check input border color."
          },
          {
            "type": "Color",
            "name": "check-input-border-color-checked",
            "default": "null",
            "description": "Check input border color when checked."
          },
          {
            "type": "Color",
            "name": "check-input-border-color-indeterminate",
            "default": "null",
            "description": "Indeterminate check input border color."
          },
          {
            "type": "Color",
            "name": "check-input-border-color-focus",
            "default": "null",
            "description": "Check input border color when hovered or focused."
          },
          {
            "type": "CssValue",
            "name": "check-input-outline",
            "default": "null",
            "description": "Check input outline."
          },
          {
            "type": "CssValue",
            "name": "check-input-outline-hover",
            "default": "null",
            "description": "Check input outline when hovered."
          },
          {
            "type": "CssValue",
            "name": "check-input-outline-checked",
            "default": "null",
            "description": "Check input outline when checked."
          },
          {
            "type": "CssValue",
            "name": "check-input-outline-focus",
            "default": "1px solid white",
            "description": "Check input outline when focused."
          },
          {
            "type": "Color",
            "name": "check-input-touch-color-hover",
            "default": "#e8e8e8",
            "description": "Check input background color when hovered."
          },
          {
            "type": "Color",
            "name": "check-input-touch-color-focus",
            "default": "null",
            "description": "Check input background color when focused."
          },
          {
            "type": "Dimension",
            "name": "check-input-radio-size",
            "default": "0.3em",
            "description": "Radio border size."
          },
          {
            "type": "Dimension",
            "name": "check-input-checkmark-width",
            "default": "0.38em",
            "description": "Width of checkmark."
          },
          {
            "type": "Dimension",
            "name": "check-input-checkmark-height",
            "default": "0.68em",
            "description": "Height of checkmark."
          },
          {
            "type": "Dimension",
            "name": "check-input-checkmark-offset-y",
            "default": "-0.2em",
            "description": "vertical offset of checkmark."
          },
          {
            "type": "Dimension",
            "name": "check-input-checkmark-stroke-size",
            "default": "0.18em",
            "description": "stroke size of checkmark."
          },
          {
            "type": "Color",
            "name": "check-input-mark-color",
            "default": "currentColor",
            "description": "Check input color."
          },
          {
            "type": "Color",
            "name": "check-input-mark-color-hover",
            "default": "null",
            "description": "Check input color when hovered."
          },
          {
            "type": "Color",
            "name": "check-input-mark-color-focus",
            "default": "null",
            "description": "Check input color when focused."
          },
          {
            "type": "Color",
            "name": "check-input-mark-color-checked",
            "default": "null",
            "description": "Check input color when checked."
          },
          {
            "type": "Color",
            "name": "check-input-mark-color-indeterminate",
            "default": "null",
            "description": "Check input color when indeterminate."
          },
          {
            "type": "Number",
            "name": "check-input-disabled-opacity",
            "default": "0.6",
            "description": "Opacity of the check input when disabled."
          },
          {
            "type": "Dimension",
            "name": "check-input-border-radius",
            "default": "0",
            "description": "Checkbox input border radius."
          },
          {
            "type": "Color",
            "name": "description-color",
            "default": "false",
            "description": "Color of help text."
          },
          {
            "type": "CssValue",
            "name": "description-margin",
            "default": "(0.25em 0)",
            "description": "Margin for help text."
          },
          {
            "type": "Dimension",
            "name": "description-max-width",
            "default": "25em",
            "description": "Max width of help text."
          },
          {
            "type": "Number",
            "name": "description-line-height",
            "default": "true",
            "description": "Line height for description element, defaults to typography line-height-dense"
          },
          {
            "type": "Color",
            "name": "fieldset-background",
            "default": "transparent",
            "description": "Background color of fieldset element."
          },
          {
            "type": "CssValue",
            "name": "fieldset-border",
            "default": "none",
            "description": "Border for fieldset"
          },
          {
            "type": "Dimension",
            "name": "fieldset-margin-bottom",
            "default": "1rem",
            "description": "Bottom margin for the fieldset element."
          },
          {
            "type": "Dimension",
            "name": "fieldset-margin-top",
            "default": "1rem",
            "description": "Bottom margin for the fieldset element."
          },
          {
            "type": "Dimension",
            "name": "fieldset-padding",
            "default": "0",
            "description": "Padding for the fieldset element."
          },
          {
            "type": "Dimension",
            "name": "fieldset-margin-compact",
            "default": "0",
            "description": "@joe-check unused"
          },
          {
            "type": "Dimension",
            "name": "fieldset-border-radius",
            "default": "0",
            "description": "Border radius of the fieldset element."
          },
          {
            "type": "Color",
            "name": "fieldset-legend-color",
            "default": "inherit",
            "description": "Text color for the fieldset's label."
          },
          {
            "type": "Dimension",
            "name": "fieldset-legend-border-bottom",
            "default": "null",
            "description": "Bottom border color for the fieldset's label"
          },
          {
            "type": "Dimension",
            "name": "fieldset-legend-padding-bottom",
            "default": "null",
            "description": "Bottom padding for the fieldset's label"
          },
          {
            "type": "Dimension",
            "name": "select-border-radius",
            "default": "4px",
            "description": "Border radius for the select element."
          },
          {
            "type": "Color",
            "name": "select-background-color",
            "default": "null",
            "description": "Background color for the select element."
          },
          {
            "type": "CssValue",
            "name": "select-border",
            "default": "null",
            "description": "The border for the select element. Fallback to input border."
          },
          {
            "type": "Dimension",
            "name": "select-padding-x",
            "default": "null",
            "description": "Horizontal padding for the select element. Fallback to input-padding-x."
          },
          {
            "type": "Dimension",
            "name": "select-padding-y",
            "default": "null",
            "description": "Vertical padding for the select element. Fallback to input-padding-y."
          },
          {
            "type": "CssValue",
            "name": "select-image",
            "default": "null",
            "description": "Url for select element's background image."
          },
          {
            "type": "Dimension",
            "name": "select-image-size",
            "default": "0.9em",
            "description": "Background size for the select image."
          },
          {
            "type": "Dimension",
            "name": "select-image-offset",
            "default": "0.7em",
            "description": "Offset for the select image."
          },
          {
            "type": "Dimension",
            "name": "select-image-margin",
            "default": "0.65em",
            "description": "select image margin."
          },
          {
            "type": "Dimension",
            "name": "inline-gap",
            "default": "1em",
            "description": "Gap between items that are inline like checkboxes"
          }
        ],
        "group": [
          "form-theme"
        ],
        "access": "public",
        "file": {
          "path": "_form-theme.scss",
          "name": "_form-theme.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "form-theme",
        "path": "/sass/components/form-theme/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 198,
          "end": 201
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 203,
            "end": 205
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-form-theme-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "form-theme"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_form-theme.scss",
          "name": "_form-theme.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "form-theme",
        "path": "/sass/components/form-theme/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 207,
          "end": 210
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  $value: utils.require-map-get($config, $name, \"component-form-theme [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
          "line": {
            "start": 212,
            "end": 215
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-form-theme-get(\"property\");"
          }
        ],
        "group": [
          "form-theme"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_form-theme.scss",
          "name": "_form-theme.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "form-theme",
        "path": "/sass/components/form-theme/#mixin-styles",
        "description": "Output component stylesheet\n",
        "commentRange": {
          "start": 221,
          "end": 223
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"form-theme\");\n\n  // Shared element styles\n  #{ $prefix } {\n    @include form-element-styles();\n  }\n\n  // Print styles differently for standard vs Drupal\n  // - Has different elements (ie. .form-item)\n  @if (get(\"drupal\")) {\n    @include drupal-layout-element-styles();\n  } @else {\n    @include layout-element-styles();\n  }\n\n  // Modifiers\n  #{ $prefix }--full-width {\n    [type=\"text\"],\n    [type=\"email\"],\n    [type=\"password\"] {\n      width: 100%;\n    }\n    textarea {\n      width: 100%;\n    }\n  }\n  #{ $prefix }--full-width-select {\n    select {\n      width: 100%;\n    }\n  }\n  #{ $prefix }--hide-labels {\n    label {\n      @include element.hidden-visually();\n    }\n  }\n",
          "line": {
            "start": 225,
            "end": 262
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-form-theme-styles();"
          }
        ],
        "group": [
          "form-theme"
        ],
        "access": "public",
        "require": [
          {
            "type": "mixin",
            "name": "drupal-layout-element-styles"
          },
          {
            "type": "mixin",
            "name": "layout-element-styles"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_form-theme.scss",
          "name": "_form-theme.scss"
        }
      },
      {
        "id": "mixin-element-required-char",
        "title": "element-required-char()",
        "groupName": "form-theme",
        "path": "/sass/components/form-theme/#mixin-element-required-char",
        "description": "Required Character styles (ie. \"*\")\n",
        "commentRange": {
          "start": 501,
          "end": 501
        },
        "context": {
          "type": "mixin",
          "name": "element-required-char",
          "code": "\n  color: color.get(get(\"required-color\"));\n  font-size: 110%;\n  font-weight: bold;\n  &:last-child {\n    margin-left: 0.15em;\n  }\n",
          "line": {
            "start": 502,
            "end": 509
          }
        },
        "group": [
          "form-theme"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_form-theme.scss",
          "name": "_form-theme.scss"
        },
        "usedBy": [
          {
            "description": "Layout styling for static/app sites\n",
            "context": {
              "type": "mixin",
              "name": "layout-element-styles",
              "code": "\n  $prefix: selector.class(\"form-theme\");\n  $errorColor: color.get(get(\"error-color\"));\n  $selectError: get(\"error-selector\");\n  $warningColor: color.get(get(\"warning-color\"));\n  $selectWarning: get(\"warning-selector\");\n\n  #{ $prefix }__required-char {\n    @include element-required-char();\n  }\n  #{ $prefix }__description {\n    @include element-help-text();\n  }\n  #{ $prefix }__item {\n    @include -element-form-item();\n  }\n  #{ $prefix }__item--align-top {\n    align-items: flex-start;\n  }\n  #{ $prefix }__item--align-center {\n    align-items: center;\n  }\n  #{ $prefix }__item--text,\n  #{ $prefix }__item--file,\n  #{ $prefix }__item--select,\n  #{ $prefix }__item--textarea {\n    @include element-form-item-block();\n  }\n  #{ $prefix }__items-inline {\n    display: flex;\n    flex-wrap: wrap;\n    gap: get(\"inline-gap\");\n    > #{ $prefix }__item {\n      margin: 0;\n    }\n  }\n  #{ $prefix }__actions {\n    @include element-form-actions();\n  }\n  #{ $prefix }--actions-right {\n    #{ $prefix }__actions {\n      @include element-form-actions-right();\n    }\n  }\n  #{ $prefix }__error {\n    color: color.get($errorColor);\n  }\n  #{ $prefix }__warning {\n    color: color.get($warningColor);\n  }\n",
              "line": {
                "start": 564,
                "end": 614
              }
            }
          },
          {
            "description": "Layout styles but using drupal form structures\n",
            "context": {
              "type": "mixin",
              "name": "drupal-layout-element-styles",
              "code": "\n  $prefix: selector.class(\"form-theme\");\n  #{ $prefix } {\n    .form-required-character {\n      @include element-required-char();\n    }\n    .description {\n      @include element-help-text();\n    }\n    .form-item:not(fieldset) {\n      margin-bottom: 1rem;\n    }\n    [class*=\"form-type-checkbox\"],\n    [class*=\"form-type-radio\"] {\n      @include -element-form-item();\n    }\n    [class*=\"form-type-textarea\"],\n    [class*=\"form-type-password\"],\n    [class*=\"form-type-email\"],\n    [class*=\"form-type-tel\"],\n    [class*=\"form-type-number\"],\n    [class*=\"form-type-select\"],\n    [class*=\"form-type-textfield\"] {\n      @include element-form-item-block();\n    }\n    .form-actions {\n      @include element-form-actions();\n    }\n  }\n  #{ $prefix }--actions-right .form-actions {\n    @include element-form-actions-right();\n  }\n",
              "line": {
                "start": 617,
                "end": 649
              }
            }
          }
        ]
      },
      {
        "id": "mixin-element-help-text",
        "title": "element-help-text()",
        "groupName": "form-theme",
        "path": "/sass/components/form-theme/#mixin-element-help-text",
        "description": "Help text / Description\n",
        "commentRange": {
          "start": 511,
          "end": 511
        },
        "context": {
          "type": "mixin",
          "name": "element-help-text",
          "code": "\n  margin: get(\"description-margin\");\n  font-style: italic;\n  @include typography.size(\"small\", null, true);\n  line-height: get(\"description-line-height\");\n  max-width: get(\"description-max-width\");\n  color: color.get(get(\"description-color\"));\n",
          "line": {
            "start": 512,
            "end": 519
          }
        },
        "group": [
          "form-theme"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_form-theme.scss",
          "name": "_form-theme.scss"
        },
        "usedBy": [
          {
            "description": "Layout styling for static/app sites\n",
            "context": {
              "type": "mixin",
              "name": "layout-element-styles",
              "code": "\n  $prefix: selector.class(\"form-theme\");\n  $errorColor: color.get(get(\"error-color\"));\n  $selectError: get(\"error-selector\");\n  $warningColor: color.get(get(\"warning-color\"));\n  $selectWarning: get(\"warning-selector\");\n\n  #{ $prefix }__required-char {\n    @include element-required-char();\n  }\n  #{ $prefix }__description {\n    @include element-help-text();\n  }\n  #{ $prefix }__item {\n    @include -element-form-item();\n  }\n  #{ $prefix }__item--align-top {\n    align-items: flex-start;\n  }\n  #{ $prefix }__item--align-center {\n    align-items: center;\n  }\n  #{ $prefix }__item--text,\n  #{ $prefix }__item--file,\n  #{ $prefix }__item--select,\n  #{ $prefix }__item--textarea {\n    @include element-form-item-block();\n  }\n  #{ $prefix }__items-inline {\n    display: flex;\n    flex-wrap: wrap;\n    gap: get(\"inline-gap\");\n    > #{ $prefix }__item {\n      margin: 0;\n    }\n  }\n  #{ $prefix }__actions {\n    @include element-form-actions();\n  }\n  #{ $prefix }--actions-right {\n    #{ $prefix }__actions {\n      @include element-form-actions-right();\n    }\n  }\n  #{ $prefix }__error {\n    color: color.get($errorColor);\n  }\n  #{ $prefix }__warning {\n    color: color.get($warningColor);\n  }\n",
              "line": {
                "start": 564,
                "end": 614
              }
            }
          },
          {
            "description": "Layout styles but using drupal form structures\n",
            "context": {
              "type": "mixin",
              "name": "drupal-layout-element-styles",
              "code": "\n  $prefix: selector.class(\"form-theme\");\n  #{ $prefix } {\n    .form-required-character {\n      @include element-required-char();\n    }\n    .description {\n      @include element-help-text();\n    }\n    .form-item:not(fieldset) {\n      margin-bottom: 1rem;\n    }\n    [class*=\"form-type-checkbox\"],\n    [class*=\"form-type-radio\"] {\n      @include -element-form-item();\n    }\n    [class*=\"form-type-textarea\"],\n    [class*=\"form-type-password\"],\n    [class*=\"form-type-email\"],\n    [class*=\"form-type-tel\"],\n    [class*=\"form-type-number\"],\n    [class*=\"form-type-select\"],\n    [class*=\"form-type-textfield\"] {\n      @include element-form-item-block();\n    }\n    .form-actions {\n      @include element-form-actions();\n    }\n  }\n  #{ $prefix }--actions-right .form-actions {\n    @include element-form-actions-right();\n  }\n",
              "line": {
                "start": 617,
                "end": 649
              }
            }
          }
        ]
      },
      {
        "id": "mixin-element-form-item-block",
        "title": "element-form-item-block()",
        "groupName": "form-theme",
        "path": "/sass/components/form-theme/#mixin-element-form-item-block",
        "description": "Styles for form item that should have label as block and text input\n",
        "commentRange": {
          "start": 537,
          "end": 537
        },
        "context": {
          "type": "mixin",
          "name": "element-form-item-block",
          "code": "\n  display: block;\n  label {\n    font-weight: get(\"font-weight-label\");\n    display: block;\n    margin-bottom: get(\"text-input-margin-bottom\");\n    margin-top: get(\"text-input-margin-top\");\n  }\n  input {\n    border-radius: get(\"input-border-radius\");\n  }\n",
          "line": {
            "start": 538,
            "end": 549
          }
        },
        "group": [
          "form-theme"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_form-theme.scss",
          "name": "_form-theme.scss"
        },
        "usedBy": [
          {
            "description": "Layout styling for static/app sites\n",
            "context": {
              "type": "mixin",
              "name": "layout-element-styles",
              "code": "\n  $prefix: selector.class(\"form-theme\");\n  $errorColor: color.get(get(\"error-color\"));\n  $selectError: get(\"error-selector\");\n  $warningColor: color.get(get(\"warning-color\"));\n  $selectWarning: get(\"warning-selector\");\n\n  #{ $prefix }__required-char {\n    @include element-required-char();\n  }\n  #{ $prefix }__description {\n    @include element-help-text();\n  }\n  #{ $prefix }__item {\n    @include -element-form-item();\n  }\n  #{ $prefix }__item--align-top {\n    align-items: flex-start;\n  }\n  #{ $prefix }__item--align-center {\n    align-items: center;\n  }\n  #{ $prefix }__item--text,\n  #{ $prefix }__item--file,\n  #{ $prefix }__item--select,\n  #{ $prefix }__item--textarea {\n    @include element-form-item-block();\n  }\n  #{ $prefix }__items-inline {\n    display: flex;\n    flex-wrap: wrap;\n    gap: get(\"inline-gap\");\n    > #{ $prefix }__item {\n      margin: 0;\n    }\n  }\n  #{ $prefix }__actions {\n    @include element-form-actions();\n  }\n  #{ $prefix }--actions-right {\n    #{ $prefix }__actions {\n      @include element-form-actions-right();\n    }\n  }\n  #{ $prefix }__error {\n    color: color.get($errorColor);\n  }\n  #{ $prefix }__warning {\n    color: color.get($warningColor);\n  }\n",
              "line": {
                "start": 564,
                "end": 614
              }
            }
          },
          {
            "description": "Layout styles but using drupal form structures\n",
            "context": {
              "type": "mixin",
              "name": "drupal-layout-element-styles",
              "code": "\n  $prefix: selector.class(\"form-theme\");\n  #{ $prefix } {\n    .form-required-character {\n      @include element-required-char();\n    }\n    .description {\n      @include element-help-text();\n    }\n    .form-item:not(fieldset) {\n      margin-bottom: 1rem;\n    }\n    [class*=\"form-type-checkbox\"],\n    [class*=\"form-type-radio\"] {\n      @include -element-form-item();\n    }\n    [class*=\"form-type-textarea\"],\n    [class*=\"form-type-password\"],\n    [class*=\"form-type-email\"],\n    [class*=\"form-type-tel\"],\n    [class*=\"form-type-number\"],\n    [class*=\"form-type-select\"],\n    [class*=\"form-type-textfield\"] {\n      @include element-form-item-block();\n    }\n    .form-actions {\n      @include element-form-actions();\n    }\n  }\n  #{ $prefix }--actions-right .form-actions {\n    @include element-form-actions-right();\n  }\n",
              "line": {
                "start": 617,
                "end": 649
              }
            }
          }
        ]
      },
      {
        "id": "mixin-element-form-actions",
        "title": "element-form-actions()",
        "groupName": "form-theme",
        "path": "/sass/components/form-theme/#mixin-element-form-actions",
        "description": "Footer of form (with button for example)\n",
        "commentRange": {
          "start": 551,
          "end": 551
        },
        "context": {
          "type": "mixin",
          "name": "element-form-actions",
          "code": "\n  display: flex;\n  flex-wrap: wrap;\n  margin: 1rem 0;\n",
          "line": {
            "start": 552,
            "end": 556
          }
        },
        "group": [
          "form-theme"
        ],
        "access": "public",
        "file": {
          "path": "_form-theme.scss",
          "name": "_form-theme.scss"
        },
        "usedBy": [
          {
            "description": "Layout styling for static/app sites\n",
            "context": {
              "type": "mixin",
              "name": "layout-element-styles",
              "code": "\n  $prefix: selector.class(\"form-theme\");\n  $errorColor: color.get(get(\"error-color\"));\n  $selectError: get(\"error-selector\");\n  $warningColor: color.get(get(\"warning-color\"));\n  $selectWarning: get(\"warning-selector\");\n\n  #{ $prefix }__required-char {\n    @include element-required-char();\n  }\n  #{ $prefix }__description {\n    @include element-help-text();\n  }\n  #{ $prefix }__item {\n    @include -element-form-item();\n  }\n  #{ $prefix }__item--align-top {\n    align-items: flex-start;\n  }\n  #{ $prefix }__item--align-center {\n    align-items: center;\n  }\n  #{ $prefix }__item--text,\n  #{ $prefix }__item--file,\n  #{ $prefix }__item--select,\n  #{ $prefix }__item--textarea {\n    @include element-form-item-block();\n  }\n  #{ $prefix }__items-inline {\n    display: flex;\n    flex-wrap: wrap;\n    gap: get(\"inline-gap\");\n    > #{ $prefix }__item {\n      margin: 0;\n    }\n  }\n  #{ $prefix }__actions {\n    @include element-form-actions();\n  }\n  #{ $prefix }--actions-right {\n    #{ $prefix }__actions {\n      @include element-form-actions-right();\n    }\n  }\n  #{ $prefix }__error {\n    color: color.get($errorColor);\n  }\n  #{ $prefix }__warning {\n    color: color.get($warningColor);\n  }\n",
              "line": {
                "start": 564,
                "end": 614
              }
            }
          },
          {
            "description": "Layout styles but using drupal form structures\n",
            "context": {
              "type": "mixin",
              "name": "drupal-layout-element-styles",
              "code": "\n  $prefix: selector.class(\"form-theme\");\n  #{ $prefix } {\n    .form-required-character {\n      @include element-required-char();\n    }\n    .description {\n      @include element-help-text();\n    }\n    .form-item:not(fieldset) {\n      margin-bottom: 1rem;\n    }\n    [class*=\"form-type-checkbox\"],\n    [class*=\"form-type-radio\"] {\n      @include -element-form-item();\n    }\n    [class*=\"form-type-textarea\"],\n    [class*=\"form-type-password\"],\n    [class*=\"form-type-email\"],\n    [class*=\"form-type-tel\"],\n    [class*=\"form-type-number\"],\n    [class*=\"form-type-select\"],\n    [class*=\"form-type-textfield\"] {\n      @include element-form-item-block();\n    }\n    .form-actions {\n      @include element-form-actions();\n    }\n  }\n  #{ $prefix }--actions-right .form-actions {\n    @include element-form-actions-right();\n  }\n",
              "line": {
                "start": 617,
                "end": 649
              }
            }
          }
        ]
      },
      {
        "id": "mixin-element-form-actions-right",
        "title": "element-form-actions-right()",
        "groupName": "form-theme",
        "path": "/sass/components/form-theme/#mixin-element-form-actions-right",
        "description": "Footer of form (with button for example)\n",
        "commentRange": {
          "start": 558,
          "end": 558
        },
        "context": {
          "type": "mixin",
          "name": "element-form-actions-right",
          "code": "\n  justify-content: flex-end;\n",
          "line": {
            "start": 559,
            "end": 561
          }
        },
        "group": [
          "form-theme"
        ],
        "access": "public",
        "file": {
          "path": "_form-theme.scss",
          "name": "_form-theme.scss"
        },
        "usedBy": [
          {
            "description": "Layout styling for static/app sites\n",
            "context": {
              "type": "mixin",
              "name": "layout-element-styles",
              "code": "\n  $prefix: selector.class(\"form-theme\");\n  $errorColor: color.get(get(\"error-color\"));\n  $selectError: get(\"error-selector\");\n  $warningColor: color.get(get(\"warning-color\"));\n  $selectWarning: get(\"warning-selector\");\n\n  #{ $prefix }__required-char {\n    @include element-required-char();\n  }\n  #{ $prefix }__description {\n    @include element-help-text();\n  }\n  #{ $prefix }__item {\n    @include -element-form-item();\n  }\n  #{ $prefix }__item--align-top {\n    align-items: flex-start;\n  }\n  #{ $prefix }__item--align-center {\n    align-items: center;\n  }\n  #{ $prefix }__item--text,\n  #{ $prefix }__item--file,\n  #{ $prefix }__item--select,\n  #{ $prefix }__item--textarea {\n    @include element-form-item-block();\n  }\n  #{ $prefix }__items-inline {\n    display: flex;\n    flex-wrap: wrap;\n    gap: get(\"inline-gap\");\n    > #{ $prefix }__item {\n      margin: 0;\n    }\n  }\n  #{ $prefix }__actions {\n    @include element-form-actions();\n  }\n  #{ $prefix }--actions-right {\n    #{ $prefix }__actions {\n      @include element-form-actions-right();\n    }\n  }\n  #{ $prefix }__error {\n    color: color.get($errorColor);\n  }\n  #{ $prefix }__warning {\n    color: color.get($warningColor);\n  }\n",
              "line": {
                "start": 564,
                "end": 614
              }
            }
          },
          {
            "description": "Layout styles but using drupal form structures\n",
            "context": {
              "type": "mixin",
              "name": "drupal-layout-element-styles",
              "code": "\n  $prefix: selector.class(\"form-theme\");\n  #{ $prefix } {\n    .form-required-character {\n      @include element-required-char();\n    }\n    .description {\n      @include element-help-text();\n    }\n    .form-item:not(fieldset) {\n      margin-bottom: 1rem;\n    }\n    [class*=\"form-type-checkbox\"],\n    [class*=\"form-type-radio\"] {\n      @include -element-form-item();\n    }\n    [class*=\"form-type-textarea\"],\n    [class*=\"form-type-password\"],\n    [class*=\"form-type-email\"],\n    [class*=\"form-type-tel\"],\n    [class*=\"form-type-number\"],\n    [class*=\"form-type-select\"],\n    [class*=\"form-type-textfield\"] {\n      @include element-form-item-block();\n    }\n    .form-actions {\n      @include element-form-actions();\n    }\n  }\n  #{ $prefix }--actions-right .form-actions {\n    @include element-form-actions-right();\n  }\n",
              "line": {
                "start": 617,
                "end": 649
              }
            }
          }
        ]
      },
      {
        "id": "mixin-layout-element-styles",
        "title": "layout-element-styles()",
        "groupName": "form-theme",
        "path": "/sass/components/form-theme/#mixin-layout-element-styles",
        "description": "Layout styling for static/app sites\n",
        "commentRange": {
          "start": 563,
          "end": 563
        },
        "context": {
          "type": "mixin",
          "name": "layout-element-styles",
          "code": "\n  $prefix: selector.class(\"form-theme\");\n  $errorColor: color.get(get(\"error-color\"));\n  $selectError: get(\"error-selector\");\n  $warningColor: color.get(get(\"warning-color\"));\n  $selectWarning: get(\"warning-selector\");\n\n  #{ $prefix }__required-char {\n    @include element-required-char();\n  }\n  #{ $prefix }__description {\n    @include element-help-text();\n  }\n  #{ $prefix }__item {\n    @include -element-form-item();\n  }\n  #{ $prefix }__item--align-top {\n    align-items: flex-start;\n  }\n  #{ $prefix }__item--align-center {\n    align-items: center;\n  }\n  #{ $prefix }__item--text,\n  #{ $prefix }__item--file,\n  #{ $prefix }__item--select,\n  #{ $prefix }__item--textarea {\n    @include element-form-item-block();\n  }\n  #{ $prefix }__items-inline {\n    display: flex;\n    flex-wrap: wrap;\n    gap: get(\"inline-gap\");\n    > #{ $prefix }__item {\n      margin: 0;\n    }\n  }\n  #{ $prefix }__actions {\n    @include element-form-actions();\n  }\n  #{ $prefix }--actions-right {\n    #{ $prefix }__actions {\n      @include element-form-actions-right();\n    }\n  }\n  #{ $prefix }__error {\n    color: color.get($errorColor);\n  }\n  #{ $prefix }__warning {\n    color: color.get($warningColor);\n  }\n",
          "line": {
            "start": 564,
            "end": 614
          }
        },
        "group": [
          "form-theme"
        ],
        "access": "public",
        "require": [
          {
            "type": "mixin",
            "name": "element-required-char"
          },
          {
            "type": "mixin",
            "name": "element-help-text"
          },
          {
            "type": "mixin",
            "name": "-element-form-item"
          },
          {
            "type": "mixin",
            "name": "element-form-item-block"
          },
          {
            "type": "mixin",
            "name": "element-form-actions"
          },
          {
            "type": "mixin",
            "name": "element-form-actions-right"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_form-theme.scss",
          "name": "_form-theme.scss"
        },
        "usedBy": [
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"form-theme\");\n\n  // Shared element styles\n  #{ $prefix } {\n    @include form-element-styles();\n  }\n\n  // Print styles differently for standard vs Drupal\n  // - Has different elements (ie. .form-item)\n  @if (get(\"drupal\")) {\n    @include drupal-layout-element-styles();\n  } @else {\n    @include layout-element-styles();\n  }\n\n  // Modifiers\n  #{ $prefix }--full-width {\n    [type=\"text\"],\n    [type=\"email\"],\n    [type=\"password\"] {\n      width: 100%;\n    }\n    textarea {\n      width: 100%;\n    }\n  }\n  #{ $prefix }--full-width-select {\n    select {\n      width: 100%;\n    }\n  }\n  #{ $prefix }--hide-labels {\n    label {\n      @include element.hidden-visually();\n    }\n  }\n",
              "line": {
                "start": 225,
                "end": 262
              }
            }
          }
        ]
      },
      {
        "id": "mixin-drupal-layout-element-styles",
        "title": "drupal-layout-element-styles()",
        "groupName": "form-theme",
        "path": "/sass/components/form-theme/#mixin-drupal-layout-element-styles",
        "description": "Layout styles but using drupal form structures\n",
        "commentRange": {
          "start": 616,
          "end": 616
        },
        "context": {
          "type": "mixin",
          "name": "drupal-layout-element-styles",
          "code": "\n  $prefix: selector.class(\"form-theme\");\n  #{ $prefix } {\n    .form-required-character {\n      @include element-required-char();\n    }\n    .description {\n      @include element-help-text();\n    }\n    .form-item:not(fieldset) {\n      margin-bottom: 1rem;\n    }\n    [class*=\"form-type-checkbox\"],\n    [class*=\"form-type-radio\"] {\n      @include -element-form-item();\n    }\n    [class*=\"form-type-textarea\"],\n    [class*=\"form-type-password\"],\n    [class*=\"form-type-email\"],\n    [class*=\"form-type-tel\"],\n    [class*=\"form-type-number\"],\n    [class*=\"form-type-select\"],\n    [class*=\"form-type-textfield\"] {\n      @include element-form-item-block();\n    }\n    .form-actions {\n      @include element-form-actions();\n    }\n  }\n  #{ $prefix }--actions-right .form-actions {\n    @include element-form-actions-right();\n  }\n",
          "line": {
            "start": 617,
            "end": 649
          }
        },
        "group": [
          "form-theme"
        ],
        "access": "public",
        "require": [
          {
            "type": "mixin",
            "name": "element-required-char"
          },
          {
            "type": "mixin",
            "name": "element-help-text"
          },
          {
            "type": "mixin",
            "name": "-element-form-item"
          },
          {
            "type": "mixin",
            "name": "element-form-item-block"
          },
          {
            "type": "mixin",
            "name": "element-form-actions"
          },
          {
            "type": "mixin",
            "name": "element-form-actions-right"
          }
        ],
        "file": {
          "path": "_form-theme.scss",
          "name": "_form-theme.scss"
        },
        "usedBy": [
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"form-theme\");\n\n  // Shared element styles\n  #{ $prefix } {\n    @include form-element-styles();\n  }\n\n  // Print styles differently for standard vs Drupal\n  // - Has different elements (ie. .form-item)\n  @if (get(\"drupal\")) {\n    @include drupal-layout-element-styles();\n  } @else {\n    @include layout-element-styles();\n  }\n\n  // Modifiers\n  #{ $prefix }--full-width {\n    [type=\"text\"],\n    [type=\"email\"],\n    [type=\"password\"] {\n      width: 100%;\n    }\n    textarea {\n      width: 100%;\n    }\n  }\n  #{ $prefix }--full-width-select {\n    select {\n      width: 100%;\n    }\n  }\n  #{ $prefix }--hide-labels {\n    label {\n      @include element.hidden-visually();\n    }\n  }\n",
              "line": {
                "start": 225,
                "end": 262
              }
            }
          }
        ]
      }
    ],
    "graphic-text-group": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "graphic-text-group",
        "path": "/sass/components/graphic-text-group/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 27,
          "end": 37
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"gap\" : 1rem,\n  \"gap-compact\" : 0.5rem,\n  \"margin\" : (2em 0),\n  \"graphic-width\" : 3.5rem,\n  \"rule-border\" : true,\n  \"rule-padding\" : 1rem,\n  \"wrap-breakpoint\" : \"small\",\n  \"separator-border\" : true,\n  \"separator-gap\" : 0.8rem,\n)",
          "scope": "default",
          "line": {
            "start": 39,
            "end": 49
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "CssUnit",
            "name": "gap",
            "default": "1rem",
            "description": "The gap between graphic and text."
          },
          {
            "type": "CssUnit",
            "name": "gap-compact",
            "default": "0.5rem",
            "description": "The smaller gap applied when the compact modifier is used."
          },
          {
            "type": "List",
            "name": "margin",
            "default": "2em 0",
            "description": "Margin applied to the group."
          },
          {
            "type": "CssUnit",
            "name": "graphic-width",
            "default": "3.5rem",
            "description": "The default safe width for the graphic."
          },
          {
            "type": "Border",
            "name": "rule-border",
            "default": "true",
            "description": "The border style for the rules."
          },
          {
            "type": "CssUnit",
            "name": "rule-padding",
            "default": "1rem",
            "description": "The padding applied when using rules."
          },
          {
            "type": "String",
            "name": "wrap-breakpoint",
            "default": "\"small\"",
            "description": "The breakpoint name at which the layout wraps to a column."
          },
          {
            "type": "Border",
            "name": "separator-border",
            "default": "true",
            "description": "The border style for the separator between graphic and text."
          },
          {
            "type": "CssUnit",
            "name": "separator-gap",
            "default": "0.5rem",
            "description": "The gap when the separator modifier is used (typically smaller since there are two gaps around the separator)."
          }
        ],
        "group": [
          "graphic-text-group"
        ],
        "access": "public",
        "file": {
          "path": "_graphic-text-group.scss",
          "name": "_graphic-text-group.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "graphic-text-group",
        "path": "/sass/components/graphic-text-group/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 51,
          "end": 54
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 56,
            "end": 58
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-graphic-text-group-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "graphic-text-group"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_graphic-text-group.scss",
          "name": "_graphic-text-group.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "graphic-text-group",
        "path": "/sass/components/graphic-text-group/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 60,
          "end": 63
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  $value: utils.require-map-get($config, $name, \"graphic-text-group [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
          "line": {
            "start": 65,
            "end": 68
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-graphic-text-group-get(\"property\");"
          }
        ],
        "group": [
          "graphic-text-group"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_graphic-text-group.scss",
          "name": "_graphic-text-group.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "graphic-text-group",
        "path": "/sass/components/graphic-text-group/#mixin-styles",
        "description": "Prints component styles\n",
        "commentRange": {
          "start": 70,
          "end": 73
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"graphic-text-group\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: center;\n    text-align: left;\n    gap: get(\"gap\");\n    margin: get(\"margin\");\n  }\n\n  #{ $prefix }__graphic {\n    flex-shrink: 0;\n    width: get(\"graphic-width\");\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    order: 1;\n\n    img, svg {\n      margin: 0;\n    }\n  }\n\n  #{ $prefix }__text {\n    flex-grow: 1;\n    min-width: 0;\n    order: 3;\n  }\n\n  // Separator Modifier\n  #{ $prefix }--separator {\n    gap: get(\"separator-gap\");\n    &::before {\n      content: \"\";\n      display: block;\n      order: 2;\n      align-self: stretch;\n      border-left: get(\"separator-border\");\n    }\n    &#{ $prefix }--top,\n    &#{ $prefix }--bottom {\n      &::before {\n        border-left: none;\n        border-bottom: get(\"separator-border\");\n      }\n    }\n  }\n\n  // Responsive Modifiers\n  #{ $prefix }--wrap {\n    @include breakpoint.max(get(\"wrap-breakpoint\")) {\n      flex-direction: column;\n      align-items: flex-start;\n      &#{ $prefix }--separator::before {\n        border-left: none;\n        border-bottom: get(\"separator-border\");\n      }\n    }\n  }\n\n  // Alignment Modifiers\n  #{ $prefix }--align-start {\n    align-items: flex-start;\n  }\n\n  #{ $prefix }--align-baseline {\n    align-items: baseline;\n  }\n\n  #{ $prefix }--align-end {\n    align-items: flex-end;\n  }\n\n  // Position Modifiers\n  #{ $prefix }--right {\n    > #{ $prefix }__graphic {\n      order: 3;\n    }\n    > #{ $prefix }__text {\n      order: 1;\n    }\n  }\n\n  #{ $prefix }--top {\n    flex-direction: column;\n  }\n\n  #{ $prefix }--bottom {\n    flex-direction: column;\n    > #{ $prefix }__graphic {\n      order: 3;\n    }\n    > #{ $prefix }__text {\n      order: 1;\n    }\n  }\n\n  #{ $prefix }--center {\n    align-items: center;\n    text-align: center;\n  }\n\n  // Rule Modifiers\n  #{ $prefix }--rule-top {\n    border-top: get(\"rule-border\");\n    padding-top: get(\"rule-padding\");\n  }\n\n  #{ $prefix }--rule-bottom {\n    border-bottom: get(\"rule-border\");\n    padding-bottom: get(\"rule-padding\");\n  }\n\n  // Spacing Modifiers\n  #{ $prefix }--compact {\n    gap: get(\"gap-compact\");\n  }\n\n  // Graphic Modifiers\n  #{ $prefix }--auto {\n    > #{ $prefix }__graphic {\n      width: auto;\n    }\n  }\n",
          "line": {
            "start": 75,
            "end": 200
          }
        },
        "demo": {
          "link": "graphic-text-group",
          "content": null
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-graphic-text-group-styles();"
          }
        ],
        "group": [
          "graphic-text-group"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_graphic-text-group.scss",
          "name": "_graphic-text-group.scss"
        }
      }
    ],
    "headline-label": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "headline-label",
        "path": "/sass/components/headline-label/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 27,
          "end": 35
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"color\": \"accent\",\n  \"margin-bottom\": 0.2em,\n  \"font-weight\": true,\n  \"font-family\": true,\n  \"line-height\": true,\n  \"text-transform\" : null,\n  \"type-size\": \"small\"\n)",
          "scope": "default",
          "line": {
            "start": 37,
            "end": 45
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Color",
            "name": "color",
            "default": "ulu.cssvar-use(\"color-accent\")",
            "description": "The text color of the headline label."
          },
          {
            "type": "Dimension",
            "name": "margin-bottom",
            "default": "0.2em",
            "description": "The bottom margin of the headline label."
          },
          {
            "type": "String",
            "name": "font-weight",
            "default": "typography.get(\"font-weight-bold\")",
            "description": "The font weight of the headline label."
          },
          {
            "type": "String",
            "name": "font-family",
            "default": "typography.get(\"font-family-sans\")",
            "description": "The font family of the headline label."
          },
          {
            "type": "Dimension|Number",
            "name": "line-height",
            "default": "typography.get(\"line-height-dense\")",
            "description": "The font family of the headline label."
          },
          {
            "type": "String",
            "name": "text-transform",
            "default": "null",
            "description": "The font family of the headline label."
          },
          {
            "type": "String",
            "name": "type-size",
            "default": "\"small\"",
            "description": "The typography size preset to use for the headline label (e.g., \"small\", \"medium\", \"large\"), Only uses the font-size value for size"
          }
        ],
        "group": [
          "headline-label"
        ],
        "access": "public",
        "file": {
          "path": "_headline-label.scss",
          "name": "_headline-label.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "headline-label",
        "path": "/sass/components/headline-label/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 47,
          "end": 50
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 52,
            "end": 54
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-headline-label-set(( \"color\" : red ));"
          }
        ],
        "group": [
          "headline-label"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_headline-label.scss",
          "name": "_headline-label.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "headline-label",
        "path": "/sass/components/headline-label/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 56,
          "end": 59
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  $value: utils.require-map-get($config, $name, \"headline-label [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
          "line": {
            "start": 61,
            "end": 64
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-headline-label-get(\"color\");"
          }
        ],
        "group": [
          "headline-label"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_headline-label.scss",
          "name": "_headline-label.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "headline-label",
        "path": "/sass/components/headline-label/#mixin-styles",
        "description": "Prints component styles\n",
        "commentRange": {
          "start": 66,
          "end": 68
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  .headline-label {\n    display: block;\n    margin-bottom: get(\"margin-bottom\");\n    font-weight: get(\"font-weight\");\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    text-transform: get(\"text-transform\");\n    color: color.get(get(\"color\"));\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n  }\n",
          "line": {
            "start": 70,
            "end": 83
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-headline-label-styles();"
          }
        ],
        "group": [
          "headline-label"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_headline-label.scss",
          "name": "_headline-label.scss"
        }
      }
    ],
    "hero": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "hero",
        "path": "/sass/components/hero/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 16,
          "end": 26
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"breakpoint\" : \"medium\",\n  \"height\" : var(--ulu-fullscreen-height),\n  \"height-compact\" : 40vh,\n  \"graphic-height-stacked\" : 60vh,\n  \"content-max-width\" : 40rem,\n  \"content-padding-top\" : 3rem,\n  \"content-padding-bottom\" : 3rem,\n  \"text-align\" : center,\n  \"extra-split-ratios\" : (\n    \"wide\" : (60%, 40%)\n  )\n)",
          "scope": "default",
          "line": {
            "start": 28,
            "end": 41
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Map",
            "name": "extra-split-ratios",
            "default": "wide 70/30",
            "description": "A map where the name is the modifier and the value is a list with two percentages (the first percentage will be correspond with the graphic or content depending on selector [ie. .hero--split-graphic-[name] would apply the first percentage to the graphic while hero--split-content-[name] would apply the first percentage to the content])"
          },
          {
            "type": "String",
            "name": "breakpoint",
            "default": "\"medium\"",
            "description": "At what breakpoint the hero goes to small screen styling."
          },
          {
            "type": "Dimension",
            "name": "height",
            "default": "var(--ulu-fullscreen-height)",
            "description": "Height of the hero."
          },
          {
            "type": "Dimension",
            "name": "height-compact",
            "default": "40vh",
            "description": "Height of the hero when using the \"--compact\" styling."
          },
          {
            "type": "Dimension",
            "name": "graphic-height-stacked",
            "default": "60vh",
            "description": "Height of the graphic."
          },
          {
            "type": "Dimension",
            "name": "content-max-width",
            "default": "40rem",
            "description": "Max width of the content."
          },
          {
            "type": "Dimension",
            "name": "content-padding-top",
            "default": "3rem",
            "description": "Top padding of the content."
          },
          {
            "type": "Dimension",
            "name": "content-padding-bottom",
            "default": "3rem",
            "description": "Bottom padding of the content."
          },
          {
            "type": "CssValue",
            "name": "text-align",
            "default": "center",
            "description": "Text align of the content."
          }
        ],
        "group": [
          "hero"
        ],
        "access": "public",
        "file": {
          "path": "_hero.scss",
          "name": "_hero.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "hero",
        "path": "/sass/components/hero/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 43,
          "end": 46
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 48,
            "end": 50
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-hero-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "hero"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_hero.scss",
          "name": "_hero.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "hero",
        "path": "/sass/components/hero/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 52,
          "end": 55
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"hero [config]\");\n",
          "line": {
            "start": 57,
            "end": 59
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-hero-get(\"property\");"
          }
        ],
        "group": [
          "hero"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_hero.scss",
          "name": "_hero.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "hero",
        "path": "/sass/components/hero/#mixin-styles",
        "description": "Prints component styles\n",
        "commentRange": {
          "start": 61,
          "end": 63
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"hero\");\n  $height: get(\"height\");\n  $breakpoint: get(\"breakpoint\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    text-align: get(\"text-align\");\n  }\n  #{ $prefix }__content-container {\n    padding-top: get(\"content-padding-top\");\n    padding-top: get(\"content-padding-bottom\");\n  }\n  #{ $prefix }__content-inner {\n    max-width: get(\"content-max-width\");\n    margin-left: auto;\n    margin-right: auto;\n  }\n  #{ $prefix }__graphic {\n    position: relative;\n    flex-grow: 1;\n    width: 100%;\n  }\n  #{ $prefix }__graphic-media {\n    @include layout.absolute-fill(true);\n    object-fit: cover;\n  }\n  \n  \n  \n  // This doesn't interfere with overlay\n  #{ $prefix }--top {\n    #{ $prefix }__graphic {\n      @include breakpoint.min($breakpoint) {\n        order: -1;\n      }\n    }\n  }\n  // These are shared between overlay and split style\n  @include breakpoint.min($breakpoint) {\n    #{ $prefix }--right,\n    #{ $prefix }--left {\n      text-align: right;\n      flex-direction: row;\n      #{ $prefix }__graphic,\n      #{ $prefix }__content {\n        flex: 1 0 50%;\n      }\n      #{ $prefix }__content {\n        display: flex;\n        flex-direction: column;\n        justify-content: center;\n      }\n    }\n    #{ $prefix }--right {\n      #{ $prefix }__content-inner {\n        margin-right: 0;\n      }\n    }\n    #{ $prefix }--left {\n      text-align: left;\n      #{ $prefix }__graphic {\n        order: -1;\n      }\n      #{ $prefix }__content-inner {\n        margin-left: 0;\n      }\n    }\n  }\n  #{ $prefix }--split {\n    @include breakpoint.min($breakpoint) {\n      min-height: $height;\n    }\n    #{ $prefix }__graphic {\n      @include breakpoint.max($breakpoint) {\n        height: get(\"graphic-height-stacked\");\n      }\n    }\n  }\n\n  @if get(\"extra-split-ratios\") {\n    @include breakpoint.min($breakpoint) {\n      @each $name, $ratio in get(\"extra-split-ratios\") {\n        #{ $prefix }--split-graphic-#{ $name } #{ $prefix }__graphic,\n        #{ $prefix }--split-content-#{ $name } #{ $prefix }__content {\n          flex-basis: list.nth($ratio, 1);\n        }\n        #{ $prefix }--split-graphic-#{ $name } #{ $prefix }__content,\n        #{ $prefix }--split-content-#{ $name } #{ $prefix }__graphic {\n          flex-basis: list.nth($ratio, 2);\n        }\n      }\n    }\n  }\n  \n\n  #{ $prefix }--overlay {\n    position: relative;\n    justify-content: center;\n    min-height: $height;\n    #{ $prefix }__content { \n      position: relative;\n      z-index: 2;\n    }\n    #{ $prefix }__graphic {\n      @include layout.absolute-fill();\n    }\n    &#{ $prefix }--bottom,\n    &#{ $prefix }--bottom #{ $prefix }__content {\n      justify-content: flex-end;\n    }\n    &#{ $prefix }--top,\n    &#{ $prefix }--top #{ $prefix }__content {\n      justify-content: flex-start;\n    }\n  }\n  #{ $prefix }--compact {\n    min-height: get(\"height-compact\");\n  }\n",
          "line": {
            "start": 65,
            "end": 185
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-hero-styles();"
          }
        ],
        "group": [
          "hero"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_hero.scss",
          "name": "_hero.scss"
        }
      }
    ],
    "image-grid": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "image-grid",
        "path": "/sass/components/image-grid/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 13,
          "end": 17
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"breakpoint\": \"small\",\n  \"gap\":        3px,\n  \"min-width\":  math.div(100%, 3)\n)",
          "scope": "default",
          "line": {
            "start": 19,
            "end": 23
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "String",
            "name": "breakpoint",
            "default": "\"small\"",
            "description": "Sets the min breakpoint for the grid to print. This uses breakpoint.scss, so the value of this option should be a breakpoint variable from breakpoint.scss."
          },
          {
            "type": "Dimension",
            "name": "gap",
            "default": "3px",
            "description": "The gap between images in the grid."
          },
          {
            "type": "Dimension",
            "name": "min-width",
            "default": "math.div(100%, 3)",
            "description": "The min-width of the images in the grid."
          }
        ],
        "group": [
          "image-grid"
        ],
        "access": "public",
        "file": {
          "path": "_image-grid.scss",
          "name": "_image-grid.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "image-grid",
        "path": "/sass/components/image-grid/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 25,
          "end": 28
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 30,
            "end": 32
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-image-grid-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "image-grid"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_image-grid.scss",
          "name": "_image-grid.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "image-grid",
        "path": "/sass/components/image-grid/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 34,
          "end": 37
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"image-grid [config]\");\n",
          "line": {
            "start": 39,
            "end": 41
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-image-grid-get(\"property\");"
          }
        ],
        "group": [
          "image-grid"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_image-grid.scss",
          "name": "_image-grid.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "image-grid",
        "path": "/sass/components/image-grid/#mixin-styles",
        "description": "Prints component styles\n",
        "commentRange": {
          "start": 43,
          "end": 45
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n\n  $prefix: selector.class(\"image-grid\");\n  $gap: get(\"gap\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-wrap: wrap;\n    margin: -($gap);\n    overflow: hidden;\n  }\n  #{ $prefix }__item {\n    // Have to use borders vs flexbox gap (adds to percentages) @important\n    border-bottom: $gap solid transparent;\n    border-top: $gap solid transparent;\n    @include breakpoint.min(get(\"breakpoint\")) {\n      border: $gap solid transparent;\n      flex: 1 1;\n      min-width: get(\"min-width\");\n    }\n    > img {\n      width: 100%;\n    }\n  }\n",
          "line": {
            "start": 47,
            "end": 71
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-image-grid-styles();"
          }
        ],
        "group": [
          "image-grid"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_image-grid.scss",
          "name": "_image-grid.scss"
        }
      }
    ],
    "input-group": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "input-group",
        "path": "/sass/components/input-group/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 17,
          "end": 27
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"gap\": 0.5em,\n  \"border-radius\" : null,\n  \"item-min-width\" : 0,\n  \"item-padding-x\" : 0.75em,\n  \"item-padding-y\" : null,\n  \"overlap-margin\" : null,\n  \"field-min-width\" : 0,\n  \"cue-background-color\" : rgba(0,0,0,0.1),\n  \"joined-button-radius-match\" : true,\n)",
          "scope": "default",
          "line": {
            "start": 29,
            "end": 39
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Dimension",
            "name": "gap",
            "default": "0.5em",
            "description": "Gap between items when not joined"
          },
          {
            "type": "Dimension",
            "name": "border-radius",
            "default": "null",
            "description": "Border radius for joined items (and cue when not joined). Defaults to form-theme input-border-radius"
          },
          {
            "type": "Dimension",
            "name": "item-min-width",
            "default": "0",
            "description": "Minimum width for items (buttons, cues)"
          },
          {
            "type": "Dimension",
            "name": "item-padding-x",
            "default": "0.75em",
            "description": "Horizontal padding for cue items"
          },
          {
            "type": "Dimension",
            "name": "item-padding-y",
            "default": "null",
            "description": "Vertical padding for cue items. Defaults to button vertical padding."
          },
          {
            "type": "Dimension",
            "name": "overlap-margin",
            "default": "null",
            "description": "Negative margin for joined items. Defaults to form-theme border width."
          },
          {
            "type": "Dimension",
            "name": "field-min-width",
            "default": "0",
            "description": "Minimum width for the field item"
          },
          {
            "type": "Color",
            "name": "cue-background-color",
            "default": "rgba(0,0,0,0.1)",
            "description": "Background color for cue items"
          },
          {
            "type": "Color",
            "name": "joined-button-radius-match",
            "default": "true",
            "description": "Whether or not to use the 'border-radius' for input-group vs button's border-radius"
          }
        ],
        "group": [
          "input-group"
        ],
        "access": "public",
        "file": {
          "path": "_input-group.scss",
          "name": "_input-group.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "input-group",
        "path": "/sass/components/input-group/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 41,
          "end": 44
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 46,
            "end": 48
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-input-group-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "input-group"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_input-group.scss",
          "name": "_input-group.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "input-group",
        "path": "/sass/components/input-group/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 50,
          "end": 53
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"input-group [config]\");\n",
          "line": {
            "start": 55,
            "end": 57
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-input-group-get(\"property\");"
          }
        ],
        "group": [
          "input-group"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_input-group.scss",
          "name": "_input-group.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "input-group",
        "path": "/sass/components/input-group/#mixin-styles",
        "description": "Prints component stylesheets\n",
        "commentRange": {
          "start": 59,
          "end": 62
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"input-group\");\n  \n  $radius: get(\"border-radius\") or form-theme.get(\"input-border-radius\");\n  $border-info: utils.border-info(form-theme.get(\"input-border\"));\n  $overlap: get(\"overlap-margin\") or map.get($border-info, \"width\");\n  \n  $padding-y: get(\"item-padding-y\") or utils.get-spacing-top(button.get(\"padding\"));\n  $padding-x: get(\"item-padding-x\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: stretch;\n    max-width: 100%;\n    gap: get(\"gap\");\n  }\n\n  #{ $prefix }__item {\n    position: relative; // For z-index management\n    display: flex;\n    align-items: stretch;\n    flex: 0 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-item-min-width\", get(\"item-min-width\"));\n  }\n\n  #{ $prefix }__item--field {\n    flex: 1 1 auto; \n    min-width: cssvar.use-ulu(\"input-group-field-min-width\", get(\"field-min-width\"));\n  }\n\n  #{ $prefix }__item--cue {\n    padding: $padding-y $padding-x;\n    align-items: center;\n    background-color: cssvar.use-ulu(\"input-group-cue-background\", get(\"cue-background-color\"));\n    border: form-theme.get(\"input-border\");\n    border-radius: $radius;\n    color: form-theme.get(\"color\");\n    line-height: typography.get(\"line-height-dense\");\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n  }\n\n  // Specificity overrides for internal elements\n  #{ $prefix } {\n    #{ $prefix }__input,\n    #{ $prefix }__button {\n      height: 100%;\n      margin: 0;\n      min-width: 0; \n      max-width: none;\n    }\n    \n    #{ $prefix }__input {\n      width: 100%;\n    }\n  }\n\n  // Removes internal border-radius and overlaps borders\n  #{ $prefix }--joined {\n    gap: 0;\n\n    // Remove default button padding when joined only\n    #{ $prefix }__button { \n      padding-left: $padding-x;\n      padding-right: $padding-x;\n      @if (get(\"joined-button-radius-match\")) {\n        border-radius: $radius;\n      }\n    }\n\n    // Interactive items pop to front (cues do not have focus/hover states)\n    #{ $prefix }__item:not(#{ $prefix }__item--cue) {\n      &:hover,\n      &:focus-within {\n        z-index: 2;\n      }\n    }\n\n    // Strip left radius for items after the first\n    #{ $prefix }__item:not(:first-child) {\n      margin-left: -#{ $overlap }; // Use resolved overlap width\n\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-left-radius: 0;\n        border-bottom-left-radius: 0;\n      }\n    }\n\n    // Strip right radius for items before the last\n    #{ $prefix }__item:not(:last-child) {\n      &#{ $prefix }__item--cue,\n      #{ $prefix }__input, \n      #{ $prefix }__button {\n        border-top-right-radius: 0;\n        border-bottom-right-radius: 0;\n      }\n    }\n  }\n",
          "line": {
            "start": 64,
            "end": 165
          }
        },
        "demo": {
          "link": "input-group",
          "content": null
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-input-group-styles();"
          }
        ],
        "group": [
          "input-group"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_input-group.scss",
          "name": "_input-group.scss"
        }
      }
    ],
    "links": [
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "links",
        "path": "/sass/components/links/#mixin-styles",
        "description": "Link component styles (.link)\n- Contextual link styling\n- Styles all links within as normal text hyperlinks (hover, visited)\n",
        "commentRange": {
          "start": 8,
          "end": 12
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $selector: selector.class(\"links\");\n  $selectorSingle: selector.class(\"link\");\n  $selectorNot: \"#{ $selector }--no-visited\";\n  $selectorSingleNot: \"#{ $selectorSingle }--no-visited\";\n  // Using not to avoid duplicating css\n  // There shouldn't be to many reasons to need to override these styles\n  #{ $selector }:not(#{ $selectorNot }) a,\n  #{ $selectorSingle }:not(#{ $selectorSingleNot }) {\n      @include element.link(true, true);\n    }\n  #{ $selector }--no-visited a,\n  #{ $selectorSingle }--no-visited {\n      @include element.link();\n    }\n  // Chained to match not() specifity\n  #{ $selector }#{ $selector }--no-underline a,\n  #{ $selectorSingle }#{ $selectorSingle }--no-underline {\n    text-decoration: none;\n  }\n",
          "line": {
            "start": 14,
            "end": 34
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-links-styles();"
          }
        ],
        "group": [
          "links"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_links.scss",
          "name": "_links.scss"
        }
      }
    ],
    "list-inline": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "list-inline",
        "path": "/sass/components/list-inline/#variable-config",
        "description": "Module Config\n",
        "commentRange": {
          "start": 11,
          "end": 16
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"rule-style\" : \"light\",\n  \"margin-top\": 0,\n  \"margin-bottom\": 1em,\n  \"space-between\" : 1em,\n  \"space-between-large\" : 2em\n)",
          "scope": "default",
          "line": {
            "start": 18,
            "end": 24
          }
        },
        "property": [
          {
            "type": "String",
            "name": "rule-style",
            "default": "\"light\"",
            "description": "Name of element > rule style to use for divider/border"
          },
          {
            "type": "Dimension",
            "name": "margin-top",
            "default": "0",
            "description": "Top margin of list."
          },
          {
            "type": "Dimension",
            "name": "margin-bottom",
            "default": "1em",
            "description": "Bottom margin of list."
          },
          {
            "type": "Dimension",
            "name": "space-between",
            "default": "1em",
            "description": "Gap between item and dividers"
          },
          {
            "type": "Dimension",
            "name": "space-between-large",
            "default": "1em",
            "description": "Gap between item and dividers when using large-gap modifier"
          }
        ],
        "group": [
          "list-inline"
        ],
        "access": "public",
        "file": {
          "path": "_list-inline.scss",
          "name": "_list-inline.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "list-inline",
        "path": "/sass/components/list-inline/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 26,
          "end": 29
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 31,
            "end": 33
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-list-inline-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "list-inline"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_list-inline.scss",
          "name": "_list-inline.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "list-inline",
        "path": "/sass/components/list-inline/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 35,
          "end": 38
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"list-inline [config]\");\n",
          "line": {
            "start": 40,
            "end": 42
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-list-inline-get(\"property\");"
          }
        ],
        "group": [
          "list-inline"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_list-inline.scss",
          "name": "_list-inline.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "list-inline",
        "path": "/sass/components/list-inline/#mixin-styles",
        "description": "Output component stylesheet\n",
        "commentRange": {
          "start": 44,
          "end": 46
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"list-inline\");\n  $border: element.get-rule-style(get(\"rule-style\"));\n  \n  ul#{ $prefix },\n  #{ $prefix } ul {\n    list-style: none;\n    display: inline-flex;\n    flex-wrap: wrap;\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n  }\n  #{ $prefix } {\n    li {\n      // Not using flex gap because we would need to position\n      // pseudo for divider, so we would still need to use math\n      // So custom properties couldn't be used (no benefit)\n      padding-right: get(\"space-between\");\n      margin-right: get(\"space-between\");\n      border-right: $border;\n      &:last-child {\n        border-right: none;\n        padding-right: 0;\n        margin-right: 0;\n      }\n    }\n  }\n  #{ $prefix }--large-gap {\n    li {\n      padding-right: get(\"space-between-large\");\n      margin-right: get(\"space-between-large\");\n    }\n  }\n",
          "line": {
            "start": 48,
            "end": 80
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-list-inline-styles();"
          }
        ],
        "group": [
          "list-inline"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_list-inline.scss",
          "name": "_list-inline.scss"
        }
      }
    ],
    "list-lines": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "list-lines",
        "path": "/sass/components/list-lines/#variable-config",
        "description": "Module Config\n",
        "commentRange": {
          "start": 21,
          "end": 29
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"border-first\" : true,\n  \"border-last\" : true,\n  \"margin-bottom\": 1em,\n  \"margin-top\": 0,\n  \"rule-style\" : \"light\",\n  \"padding-between\" : 1em,\n  \"dense-padding-between\" : 0.65em,\n  \"dense-line-height\" : true\n)",
          "scope": "default",
          "line": {
            "start": 31,
            "end": 40
          }
        },
        "property": [
          {
            "type": "Boolean",
            "name": "border-first",
            "default": "true",
            "description": "If enabled, adds a top border to the first item in list-lines."
          },
          {
            "type": "Boolean",
            "name": "border-last",
            "default": "true",
            "description": "If enabled, adds a bottom border to the last item in list-lines."
          },
          {
            "type": "String",
            "name": "rule-style",
            "default": "\"light\"",
            "description": "Name of element > rule style to use for divider/border"
          },
          {
            "type": "Dimension",
            "name": "margin-bottom",
            "default": "1em",
            "description": "Bottom margin of list."
          },
          {
            "type": "Dimension",
            "name": "margin-top",
            "default": "0",
            "description": "Top margin of list."
          },
          {
            "type": "Dimension",
            "name": "padding-between",
            "default": "1em",
            "description": "Padding between items in list."
          },
          {
            "type": "Dimension",
            "name": "padding-between",
            "default": "1em",
            "description": "Padding between items in list when using dense modifier"
          },
          {
            "type": "Dimension",
            "name": "line-height-dense",
            "default": "true",
            "description": "Line height when list lines has dense modifier (defaults to typography line-height-dense)"
          }
        ],
        "group": [
          "list-lines"
        ],
        "access": "public",
        "file": {
          "path": "_list-lines.scss",
          "name": "_list-lines.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "list-lines",
        "path": "/sass/components/list-lines/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 42,
          "end": 45
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 47,
            "end": 49
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-list-lines-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "list-lines"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_list-lines.scss",
          "name": "_list-lines.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "list-lines",
        "path": "/sass/components/list-lines/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 51,
          "end": 54
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  $value: utils.require-map-get($config, $name, \"list-lines [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
          "line": {
            "start": 56,
            "end": 59
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-list-lines-get(\"property\");"
          }
        ],
        "group": [
          "list-lines"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_list-lines.scss",
          "name": "_list-lines.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "list-lines",
        "path": "/sass/components/list-lines/#mixin-styles",
        "description": "Output component stylesheet\n",
        "commentRange": {
          "start": 61,
          "end": 63
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"list-lines\");\n  $border: element.get-rule-style(get(\"rule-style\"));\n\n  #{ $prefix } {\n    list-style: none;\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n    padding: 0;\n    @if (get(\"border-first\")) {\n      border-top: $border;\n    }\n    >li {\n      border-bottom: $border;\n      padding: get(\"padding-between\") 0;\n      >*:last-child {\n        margin-bottom: 0;\n      }\n      @if (not get(\"border-last\")) {\n        &:last-child {\n          border-bottom-width: 0;\n        }\n      }\n    }\n  }\n  #{ $prefix }--dense {\n    >li {\n      padding: get(\"dense-padding-between\") 0;\n      line-height: get(\"dense-line-height\");\n    }\n  }\n",
          "line": {
            "start": 65,
            "end": 95
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-list-lines-styles();"
          }
        ],
        "group": [
          "list-lines"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_list-lines.scss",
          "name": "_list-lines.scss"
        }
      }
    ],
    "list-ordered": [
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "list-ordered",
        "path": "/sass/components/list-ordered/#mixin-styles",
        "description": "Output component stylesheet\n",
        "commentRange": {
          "start": 8,
          "end": 10
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"list-ordered\");\n  #{ $prefix } {\n    @include element.styles-ordered-list();\n  }\n",
          "line": {
            "start": 12,
            "end": 17
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-list-ordered-styles();"
          }
        ],
        "group": [
          "list-ordered"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_list-ordered.scss",
          "name": "_list-ordered.scss"
        }
      }
    ],
    "list-unordered": [
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "list-unordered",
        "path": "/sass/components/list-unordered/#mixin-styles",
        "description": "Output component stylesheet\n",
        "commentRange": {
          "start": 9,
          "end": 11
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"list-unordered\");\n  #{ $prefix } {\n    @include element.styles-unordered-list();\n    li {\n      &::marker {\n        color: color.get(\"bullet\");\n      }\n    }\n  }\n",
          "line": {
            "start": 13,
            "end": 23
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-list-unordered-styles();"
          }
        ],
        "group": [
          "list-unordered"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_list-unordered.scss",
          "name": "_list-unordered.scss"
        }
      }
    ],
    "menu-stack": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "menu-stack",
        "path": "/sass/components/menu-stack/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 38,
          "end": 92
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"nested-indent\" : 0.5em,\n  \"rule-style\" : \"light\",\n  \"rule-margin\" : 0.5em,\n  \"toggle-icon-rotate\" : false,\n  \"label-color\" : \"type-secondary\",\n  \"label-margin\" : 0.5em,\n  \"label-text-transform\" : null,\n  \"label-type-size\" : false,\n  \"label-font-weight\" : bold,\n  \"label-line-height\" : true,\n  \"link-separated-margin\" : false,\n  \"link-separated-rule-style\" : false,\n  \"link-active-selectors\" : (\".is-active\",),\n  \"link-background-color\" : transparent,\n  \"link-background-color-active\" : \"control-background-active\",\n  \"link-background-color-hover\" : rgba(0,0,0,0.2),\n  \"link-border-radius\" : true,\n  \"link-color\" : \"type-secondary\",\n  \"link-color-active\" : \"control-active\",\n  \"link-color-hover\" : \"type\",\n  \"link-font-weight\" : null,\n  \"link-line-height\" : true,\n  \"link-icon-margin\" : 0.65em,\n  \"link-icon-width\" : 1em,\n  \"link-icon-font-size\" : null,\n  \"link-margin\" : 0.2em,\n  \"link-padding-x\": 0.85em,\n  \"link-padding-y\": 0.4em,\n  \"link-transition-duration\": 200ms,\n  \"link-transition-properties\": (border-color, background-color, color, box-shadow),\n  \"compact-link-padding-x\": 0.75em,\n  \"compact-link-padding-y\": 0.25em,\n  \"compact-link-margin\" : 0.2em,\n  \"compact-link-border-radius\" : null,\n  \"compact-selectable-input-width\": 2.2em,\n  \"compact-selectable-input-top\" : 0.5em,\n  \"compact-selectable-input-font-size\": 0.8em,\n  \"stacked-link-padding-x\": 0.4em,\n  \"stacked-link-padding-y\": 0.8em,\n  \"stacked-link-margin\": 0.4em,\n  \"stacked-link-icon-margin\": 0.35em,\n  \"stacked-link-border-radius\": true,\n  \"stacked-link-font-weight\" : null,\n  \"selectable-input-width\" : 3em,\n  \"selectable-input-top\" : 0.73em,\n  \"selectable-input-font-size\" : null,\n  \"title-color\" : null,\n  \"title-font-weight\" : bold,\n  \"title-separator-enabled\": true,\n  \"title-separator-color\" : \"rule\",\n  \"title-rule-style\" : \"light\",\n  \"title-separated-margin\" : false,\n  \"columns-gap\" : 2rem,\n  \"columns-min-width\" : 18rem,\n)",
          "scope": "default",
          "line": {
            "start": 94,
            "end": 149
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Dimension",
            "name": "nested-indent",
            "default": "0.5em",
            "description": "The indentation of child lists within the menu-stack."
          },
          {
            "type": "Dimension",
            "name": "rule-margin",
            "default": "0.5em",
            "description": "Sets the padding and margin of the rule."
          },
          {
            "type": "String",
            "name": "rule-style",
            "default": "default",
            "description": "Determines the styling of the rule. Uses the rule.scss component."
          },
          {
            "type": "Number",
            "name": "toggle-icon-rotate",
            "default": "false",
            "description": "Set a value to rotate the collapsible item toggle icon rotation when open (ie. 90deg)"
          },
          {
            "type": "Color",
            "name": "label-color",
            "default": "null",
            "description": "The type color of the label."
          },
          {
            "type": "Dimension",
            "name": "label-margin",
            "default": "0.5em",
            "description": "The margin of the label."
          },
          {
            "type": "CssValue",
            "name": "label-text-transform",
            "default": "uppercase",
            "description": "Transforms the label text."
          },
          {
            "type": "CssValue",
            "name": "label-type-size",
            "default": "false",
            "description": "Adjusts the type size of the label. Only uses font-size from type size."
          },
          {
            "type": "CssValue",
            "name": "label-font-weight",
            "default": "bold",
            "description": "Adjust label font weight"
          },
          {
            "type": "CssValue",
            "name": "label-line-height",
            "default": "true",
            "description": "Adjust the label line-height, defaults to typography line-height-dense"
          },
          {
            "type": "list",
            "name": "link-active-selectors",
            "default": "(.is-active, '[aria-current=page",
            "description": "')] Selectors to apply active styling."
          },
          {
            "type": "Color",
            "name": "link-background-color",
            "default": "transparent",
            "description": "The background color of the menu-stack toggle."
          },
          {
            "type": "Color",
            "name": "link-background-color-active",
            "default": "rgb(219, 219, 219)",
            "description": "The background color of the menu-stack toggle when active."
          },
          {
            "type": "Color",
            "name": "link-background-color-hover",
            "default": "rgb(219, 219, 219)",
            "description": "The background color of the menu-stack toggle when hovered or focused."
          },
          {
            "type": "Dimension",
            "name": "link-border-radius",
            "default": "true",
            "description": "The border radius of the menu-stack toggle. If set to true, will use the border radius from the button component."
          },
          {
            "type": "String",
            "name": "link-color",
            "default": "link",
            "description": "The type color of the menu-stack toggle. This uses color.scss, so the value of this option should be a color variable from color.scss."
          },
          {
            "type": "Color",
            "name": "link-color-active",
            "default": "black",
            "description": "The type color of the menu-stack toggle when active."
          },
          {
            "type": "String",
            "name": "link-color-hover",
            "default": "link-hover",
            "description": "The type color of the menu-stack toggle when hovered or focused.  This uses color.scss, so the value of this option should be a color variable from color.scss."
          },
          {
            "type": "CssValue",
            "name": "link-font-weight",
            "default": "null",
            "description": "The font weight of the menu-stack toggle."
          },
          {
            "type": "CssValue",
            "name": "link-line-height",
            "default": "true",
            "description": "Adjust the link line-height, defaults to typography line-height-dense"
          },
          {
            "type": "Dimension",
            "name": "link-icon-margin",
            "default": "0.65em",
            "description": "Adds a right margin to the icon."
          },
          {
            "type": "Dimension",
            "name": "link-icon-width",
            "default": "1em",
            "description": "The width of the icon."
          },
          {
            "type": "Dimension",
            "name": "link-icon-font-size",
            "default": "null",
            "description": "Set the font-size for the icon (not set by default)"
          },
          {
            "type": "Dimension",
            "name": "link-margin",
            "default": "0.2em",
            "description": "Margin for the menu-stack toggle."
          },
          {
            "type": "Dimension",
            "name": "link-padding-x",
            "default": "1em",
            "description": "Horizontal padding for menu-stack toggle."
          },
          {
            "type": "Dimension",
            "name": "link-padding-y",
            "default": "0.35em",
            "description": "Vertical padding for menu-stack toggle."
          },
          {
            "type": "Boolean",
            "name": "link-separated-margin",
            "default": "false",
            "description": "Enables a margin between the items in the menu-stack."
          },
          {
            "type": "Boolean",
            "name": "link-separated-rule-style",
            "default": "false",
            "description": "Enables a rule between the items in the menu-stack."
          },
          {
            "type": "Dimension",
            "name": "selectable-input-width",
            "default": "3em",
            "description": "The width of the checkbox/radio input"
          },
          {
            "type": "Dimension",
            "name": "selectable-input-top",
            "default": "0.73em",
            "description": "To fine tune the y/top value for absolutely positioned input, if you pass null/falsey it will use the padding which isn't always perfect since this is setup to not be centered when wrapping lines in label"
          },
          {
            "type": "Dimension",
            "name": "selectable-input-font-size",
            "default": "null",
            "description": "Optional to set a specific font-size on the input"
          },
          {
            "type": "Duration",
            "name": "link-transition-duration",
            "default": "200ms",
            "description": "The duration of the link state transition."
          },
          {
            "type": "List",
            "name": "link-transition-properties",
            "default": "(border-color, background-color, color, box-shadow)",
            "description": "The properties to transition on link state change."
          },
          {
            "type": "CssValue",
            "name": "title-color",
            "default": "null",
            "description": "Color to use for the title modifier"
          },
          {
            "type": "CssValue",
            "name": "title-font-weight",
            "default": "bold",
            "description": "The font weight for the title modifier."
          },
          {
            "type": "Boolean",
            "name": "title-separator-enabled",
            "default": "true",
            "description": "Enables a separator rule below the title item."
          },
          {
            "type": "Color",
            "name": "title-separator-color",
            "default": "rule",
            "description": "The color of the title separator rule."
          },
          {
            "type": "String",
            "name": "title-rule-style",
            "default": "light",
            "description": "The rule style to use for the title separator."
          },
          {
            "type": "Boolean",
            "name": "title-separated-margin",
            "default": "false",
            "description": "Use specific margin for title separated items."
          },
          {
            "type": "Dimension",
            "name": "columns-gap",
            "default": "2rem",
            "description": "The gap between columns in a columns menu stack."
          },
          {
            "type": "Dimension",
            "name": "columns-min-width",
            "default": "18rem",
            "description": "The minimum width of a column in a columns menu stack."
          },
          {
            "type": "Dimension",
            "name": "compact-link-padding-x",
            "default": "0.75em",
            "description": "The links horizontal padding when using the compact option."
          },
          {
            "type": "Dimension",
            "name": "compact-link-padding-y",
            "default": "0.25em",
            "description": "The links vertical padding when using the compact option."
          },
          {
            "type": "Dimension",
            "name": "compact-link-margin",
            "default": "0.2em",
            "description": "Margin between items when compact"
          },
          {
            "type": "Dimension",
            "name": "compact-link-border-radius",
            "default": "null",
            "description": "Unless set will use the normal link border radius"
          },
          {
            "type": "Dimension",
            "name": "compact-selectable-input-width",
            "default": "2em",
            "description": "The width of the checkbox/radio input (when compact modifier)"
          },
          {
            "type": "Dimension",
            "name": "compact-selectable-input-font-size",
            "default": "null",
            "description": "Optional compact input font-size"
          },
          {
            "type": "Dimension",
            "name": "compact-selectable-input-top",
            "default": "null",
            "description": "Optional y/top for input"
          },
          {
            "type": "Dimension",
            "name": "stacked-link-padding-x",
            "default": "0.4em",
            "description": "The links horizontal padding when using the stacked option."
          },
          {
            "type": "Dimension",
            "name": "stacked-link-padding-y",
            "default": "0.4em",
            "description": "The links vertical padding when using the stacked option."
          },
          {
            "type": "Dimension",
            "name": "stacked-link-icon-margin",
            "default": "0.35em",
            "description": "Margin between icon and text when stacked."
          },
          {
            "type": "Dimension",
            "name": "stacked-link-border-radius",
            "default": "true",
            "description": "Border radius for stacked style of links, defaults to element \"border-radius-small\""
          },
          {
            "type": "Dimension",
            "name": "stacked-link-font-weight",
            "default": "true",
            "description": "Optional font-weight for stacked style"
          }
        ],
        "group": [
          "menu-stack"
        ],
        "access": "public",
        "file": {
          "path": "_menu-stack.scss",
          "name": "_menu-stack.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "menu-stack",
        "path": "/sass/components/menu-stack/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 151,
          "end": 154
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 156,
            "end": 158
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-menu-stack-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "menu-stack"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_menu-stack.scss",
          "name": "_menu-stack.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "menu-stack",
        "path": "/sass/components/menu-stack/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 160,
          "end": 163
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  $value: utils.require-map-get($config, $name, \"menu-stack [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
          "line": {
            "start": 165,
            "end": 168
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-menu-stack-get(\"property\");"
          }
        ],
        "group": [
          "menu-stack"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_menu-stack.scss",
          "name": "_menu-stack.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "menu-stack",
        "path": "/sass/components/menu-stack/#mixin-styles",
        "description": "Prints component styles\n",
        "commentRange": {
          "start": 175,
          "end": 179
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"menu-stack\");\n  $prefix-name-only: selector.class(\"menu-stack\", $name-only: true);\n  $prefix-popover: selector.class(\"popover\");\n  $selectable-y: (get(\"link-padding-y\") + get(\"link-margin\"));\n\n  #{ $prefix } {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"link-padding-x\"));\n  }\n\n  #{ $prefix }--separated {\n    border-top: element.get-rule-style(get(\"rule-style\"));\n    padding-top: get(\"rule-margin\");\n    margin-top: get(\"rule-margin\");\n  }\n  #{ $prefix }__label {\n    text-transform: get(\"label-text-transform\");\n    padding-bottom: get(\"label-margin\");\n    color: color.get(get(\"label-color\"));\n    font-weight: get(\"label-font-weight\");\n    line-height: get(\"label-line-height\");\n    @if (get(\"label-type-size\")) {\n      @include typography.size(get(\"label-type-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__item--separator-before {\n    border-top: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-top: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__item--separator-after {\n    border-bottom: element.get-rule-style(-fallback(\"link-separated-rule-style\", \"rule-style\"));\n    margin-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n    padding-bottom: -fallback(\"link-separated-margin\", \"link-padding-y\");\n  }\n  #{ $prefix }__list {\n    & & {\n      padding-left: get(\"nested-indent\");\n    }\n  }\n\n  // Special modifier for item to style as a title\n  // - Used in columns menus where first level isn't in a <ul> but is just above \n  //   the <ul> and being styled as though it was to match the styling of the menu \n  //   of children\n  // - Note: This is output above the link styling for specificity, so it will \n  //   fallback to link colors for hover/active\n  #{ $prefix }__item--title {\n    @if get(\"title-separator-enabled\") {\n      border-bottom: element.get-rule-style(-fallback(\"title-rule-style\", \"rule-style\"));\n      margin-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n      padding-bottom: -fallback(\"title-separated-margin\", \"link-padding-y\");\n    }\n    &,\n    > #{ $prefix }__link {\n      color: color.get(get(\"title-color\"));\n      font-weight: get(\"title-font-weight\");\n    }\n  }\n  \n\n  // By default the link hangs outside the container so that \n  // the icons/text align to the text (above/below)\n  // - Use the modifier \"site-menu--contained\" to keep the links within \n  //   the parent container (no optical alignment), should be within something that contains it\n\n  #{ $prefix }__link,\n  #{ $prefix }__selectable,\n  #{ $prefix }__toggle {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    padding: get(\"link-padding-y\") cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    margin: get(\"link-margin\") 0;\n    border-radius: get(\"link-border-radius\");\n    font-weight: get(\"link-font-weight\");\n    line-height: get(\"link-line-height\");\n    color: color.get(get(\"link-color\"));\n    background-color: color.get(get(\"link-background-color\"));\n    transition-duration: get(\"link-transition-duration\");\n    transition-property: get(\"link-transition-properties\");\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: color.get(get(\"link-color-hover\"));\n      background-color: color.get(get(\"link-background-color-hover\"));\n    }\n  }\n  #{ $prefix }__selectable {\n    padding: 0;\n  }\n\n  // Combine all active selectors using sass:selector functions\n  $base-selectors: #{ $prefix }__link, #{ $prefix }__toggle;\n  $active-from-config: get(\"link-active-selectors\");\n  $traditional-active: sassSelector.append($base-selectors, $active-from-config);\n\n  $checked-active: sassSelector.parse(\"#{ $prefix }__selectable:has(> [type='checkbox']:checked), #{ $prefix }__selectable:has(> [type='radio']:checked)\");\n\n  #{ $traditional-active, $checked-active },\n  #{ $prefix }__link[aria-current=\"page\"] {\n    &,\n    &:hover {\n      color: color.get(get(\"link-color-active\"));\n      background-color: color.get(get(\"link-background-color-active\"));\n    }\n  }\n  #{ $prefix }__selectable [type=\"checkbox\"],\n  #{ $prefix }__selectable [type=\"radio\"],\n  #{ $prefix }__selectable-input {\n    position: absolute;\n    top: utils.fallback(get(\"selectable-input-top\"), $selectable-y);\n    left: cssvar.use-ulu(\"menu-stack-link-padding-x\");\n    font-size: get(\"selectable-input-font-size\");\n  }\n  #{ $prefix }__selectable label,\n  #{ $prefix }__selectable-label {\n    width: 100%;\n    padding: $selectable-y cssvar.use-ulu(\"menu-stack-link-padding-x\") $selectable-y get(\"selectable-input-width\");\n  }\n  #{ $prefix }__link-text {\n    display: block;\n    flex-grow: 1;\n  }\n  #{ $prefix }__link-icon {\n    margin-right: get(\"link-icon-margin\");\n    flex: 0 0 get(\"link-icon-width\");\n    font-size: get(\"link-icon-font-size\");\n  }\n  #{ $prefix }__collapsible {\n    margin: 0;\n    @if (get(\"toggle-icon-rotate\")) {\n      &[open] {\n        #{ $prefix }__toggle-icon {\n          transform: rotate(get(\"toggle-icon-rotate\"));\n        }\n      }\n    }\n  }\n  #{ $prefix }__toggle {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    cursor: pointer;\n    @include element.summary-remove-marker();  \n  }\n\n  // Modifiers\n\n  // Link buttons hang outside in margin so that text optically aligns\n  #{ $prefix }--hanging {\n    &:not(#{ $prefix }--columns, #{ $prefix }--columns-fluid) > #{ $prefix }__list > #{ $prefix }__item,\n    &[class*=\"#{ $prefix-name-only }--columns\"] > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list > #{ $prefix }__item {\n      > #{ $prefix }__link, \n      > #{ $prefix }__collapsible {\n        margin-left: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        margin-right: calc(cssvar.use-ulu(\"menu-stack-link-padding-x\") * -1);\n        width: calc(100% + (cssvar.use-ulu(\"menu-stack-link-padding-x\") * 2));\n      }\n    }\n  }\n\n  #{ $prefix }--compact {\n    $compact-y: get(\"compact-link-padding-y\");\n    $compact-x: get(\"compact-link-padding-x\");\n    \n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", $compact-x);\n\n    #{ $prefix }__selectable,\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      border-radius: get(\"compact-link-border-radius\");\n      margin: get(\"compact-link-margin\") 0;\n    }\n    #{ $prefix }__toggle,\n    #{ $prefix }__link {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n    }\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-top: $compact-y;\n      padding-bottom: $compact-y;\n      padding-right: get(\"compact-selectable-input-width\");\n    }\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"],\n    #{ $prefix }__selectable-input {\n      top: utils.fallback(get(\"compact-selectable-input-top\"), $compact-y);\n      font-size: get(\"compact-selectable-input-font-size\");\n    }\n  }\n\n  #{ $prefix }--hide-inputs {\n    #{ $prefix }__selectable-input,\n    #{ $prefix }__selectable [type=\"checkbox\"],\n    #{ $prefix }__selectable [type=\"radio\"] {\n      @include element.hidden-visually();\n    }\n\n    #{ $prefix }__selectable label,\n    #{ $prefix }__selectable-label {\n      padding-left: get(\"link-padding-x\");\n    }\n  }\n\n  #{ $prefix }--stacked {\n    @include cssvar.declare-ulu(\"menu-stack-link-padding-x\", get(\"stacked-link-padding-x\"));\n\n    #{ $prefix }__link,\n    #{ $prefix }__toggle {\n      flex-direction: column;\n      justify-content: center;\n      text-align: center;\n      border-radius: get(\"stacked-link-border-radius\");\n      padding-top: get(\"stacked-link-padding-y\");\n      padding-bottom: get(\"stacked-link-padding-y\");\n      margin: get(\"stacked-link-margin\") 0;\n      font-weight: get(\"stacked-link-font-weight\");\n    }\n    #{ $prefix }__link-icon {\n      margin-right: 0;\n      margin-bottom: get(\"stacked-link-icon-margin\");\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  #{ $prefix }--columns {\n    > #{ $prefix }__list {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(get(\"columns-min-width\"), 1fr));\n      gap: get(\"columns-gap\");\n    }\n  }\n  #{ $prefix }--columns-fluid {\n    > #{ $prefix }__list {\n      display: flex;\n      flex-wrap: wrap;\n      max-width: 100%;\n      gap: get(\"columns-gap\");\n      > #{ $prefix }__item {\n        flex: 0 0 0;\n        min-width: get(\"columns-min-width\");\n      }\n    }\n  }\n  // No indenting if we're using columns\n  [class*=\"#{ $prefix-name-only }--columns\"] {\n    > #{ $prefix }__list > #{ $prefix }__item > #{ $prefix }__list {\n      padding-left: 0;\n    }\n  }\n",
          "line": {
            "start": 181,
            "end": 438
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-menu-stack-styles();"
          }
        ],
        "todo": [
          "Colors stuff",
          "Selector prefix"
        ],
        "group": [
          "menu-stack"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_menu-stack.scss",
          "name": "_menu-stack.scss"
        }
      }
    ],
    "modal": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "modal",
        "path": "/sass/components/modal/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 41,
          "end": 87
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"backdrop-color\" :                true,\n  \"backdrop-blur\" :                 4px,\n  \"background-color\" :             white,\n  \"body-padding\" :                  1rem,\n  \"border-radius\" :                 true,\n  \"box-shadow\" :                    true,         \n  \"height\":                         340px,\n  \"height-no-header\":               100px,\n  \"width\":                          60rem,\n  \"min-width\":                      300px,\n  \"width-left-right\" :              30rem,\n  \"animation-duration\" :            300ms,\n  \"animation-duration-exit\" :       150ms,\n  \"animation-timing-function\" :     cubic-bezier(0, 0, .2, 1),\n  \"close-background-color\":         null,\n  \"close-background-color-hover\":   null,\n  \"close-border-color\":             null,\n  \"close-border-color-hover\":       null,\n  \"close-box-shadow\":               none,\n  \"close-color\":                    null,\n  \"close-color-hover\":              null,\n  \"close-margin\":                   0.5rem,\n  \"close-icon-vertical-offset\" : true,\n  \"header-background-color\":        black,\n  \"header-border-bottom\":           none,\n  \"header-color\":                   white,\n  \"header-padding\":                 1rem,\n  \"footer-padding\" :                (0.5rem 1rem),\n  \"footer-background-color\" :       #f6f6f6,\n  \"footer-border-top\" :             none,\n  \"footer-text-align\" :             right,\n  \"resizer-background-color\":       rgb(221, 221, 221),\n  \"resizer-background-color-hover\": rgb(192, 192, 192),\n  \"resizer-color\":                  rgb(99, 99, 99),\n  \"resizer-color-hover\":            black,\n  \"resizer-width\":                  1.25rem,\n  \"resizer-center-size\" :           1.65rem,\n  \"title-color\":                    white,\n  \"title-font-weight\":              bold,\n  \"title-font-family\" :             null,\n  \"title-icon-margin\" :             0.5em,\n  \"title-size\" :                    \"large\",\n  \"title-text-transform\" :          null,\n  \"breakpoint\" :                    true,\n  \"frame-aspect-ratio\" :            list.slash(16, 9),\n  \"frame-fill-min-height\" :         65vh,\n  \"sizes\" : (\n    \"small\" : 30rem,\n    \"large\" : 80rem\n  ),\n)",
          "scope": "default",
          "line": {
            "start": 89,
            "end": 140
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "CssValue",
            "name": "backdrop-blur",
            "default": "4px",
            "description": "Determines the blur of the backdrop."
          },
          {
            "type": "Color",
            "name": "backdrop-color",
            "default": "true",
            "description": "The unblurred background color outside the modal. If set to true, will use the element.scss property for backdrop-color."
          },
          {
            "type": "Color",
            "name": "background-color",
            "default": "white",
            "description": "The background color of the modal."
          },
          {
            "type": "Dimension",
            "name": "body-padding",
            "default": "1rem",
            "description": "The padding of the body content."
          },
          {
            "type": "CssValue",
            "name": "border-radius",
            "default": "true",
            "description": "The border radius of the modal. If set to true, will use the element.scss property for border-radius-large."
          },
          {
            "type": "CssValue",
            "name": "box-shadow",
            "default": "true",
            "description": "Determines the box-shadow of the modal. If set to true, will use the element.scss property for backdrop-color."
          },
          {
            "type": "Dimension",
            "name": "height",
            "default": "340px",
            "description": "The min-height of the modal."
          },
          {
            "type": "Dimension",
            "name": "height-no-header",
            "default": "100px",
            "description": "The min-height of the modal."
          },
          {
            "type": "Dimension",
            "name": "width",
            "default": "60rem",
            "description": "The width of the Modal"
          },
          {
            "type": "Dimension",
            "name": "min-width",
            "default": "300px",
            "description": "The min-width of the Modal (for resizing, etc)"
          },
          {
            "type": "Time",
            "name": "animation-duration",
            "default": "300ms",
            "description": "Animation duration for the modal opening."
          },
          {
            "type": "Time",
            "name": "animation-duration-exit",
            "default": "150ms",
            "description": "Animation duration for the modal closing."
          },
          {
            "type": "CssValue",
            "name": "animation-timing-function",
            "default": "cubic-bezier(0, 0, .2, 1)",
            "description": "The animation timing menu of the modal."
          },
          {
            "type": "Color",
            "name": "close-background-color",
            "default": "null",
            "description": "Background color for the modal close icon."
          },
          {
            "type": "Close",
            "name": "close-background-color-hover",
            "default": "null",
            "description": "Background color for the modal close icon when hovered or focused."
          },
          {
            "type": "Color",
            "name": "close-border-color",
            "default": "null",
            "description": "Border color of the modal__close element. Overrides button border color if using button styling. Fallback to close-background-color."
          },
          {
            "type": "Color",
            "name": "close-border-color-hover",
            "default": "null",
            "description": "Border color hover of the modal__close element. Overrides button border color if using button styling. Fallback to close-background-color-hover."
          },
          {
            "type": "Color",
            "name": "close-box-shadow",
            "default": "none",
            "description": "Box-shadow of the modal__close element. Overrides button border color if using button styling. Defaults to remove box-shadow styling."
          },
          {
            "type": "Color",
            "name": "close-color",
            "default": "null",
            "description": "Type color for the modal close icon."
          },
          {
            "type": "Color",
            "name": "close-color-hover",
            "default": "null",
            "description": "Type color for the modal close icon when hovered or focused."
          },
          {
            "type": "Dimension",
            "name": "close-margin",
            "default": "0.5rem",
            "description": "The margin for the modal close icon."
          },
          {
            "type": "Color",
            "name": "header-background-color",
            "default": "black",
            "description": "Background color for the header."
          },
          {
            "type": "CssValue",
            "name": "header-border-bottom",
            "default": "none",
            "description": "Bottom-border on the modal header."
          },
          {
            "type": "Color",
            "name": "header-color",
            "default": "white",
            "description": "Type color of the header."
          },
          {
            "type": "Dimension",
            "name": "header-padding",
            "default": "1rem",
            "description": "The padding of the modal header."
          },
          {
            "type": "Dimension",
            "name": "footer-padding",
            "default": "(0.5rem 1rem)",
            "description": "The padding of the modal footer."
          },
          {
            "type": "Color",
            "name": "footer-background-color",
            "default": "(0.5rem 1rem)",
            "description": "The background color of the footer"
          },
          {
            "type": "Color",
            "name": "footer-border-top",
            "default": "(0.5rem 1rem)",
            "description": "The border between body and footer"
          },
          {
            "type": "CssValue",
            "name": "footer-text-align",
            "default": "right",
            "description": "Text alignment for footer"
          },
          {
            "type": "Color",
            "name": "resizer-background-color",
            "default": "rgb(221, 221, 221)",
            "description": "The background color of the resizer."
          },
          {
            "type": "Color",
            "name": "resizer-background-color-hover",
            "default": "rgb(192, 192, 192)",
            "description": "The background color of the resizer when hovered or focused."
          },
          {
            "type": "Color",
            "name": "resizer-color",
            "default": "rgb(99, 99, 99)",
            "description": "The type color of the resizer."
          },
          {
            "type": "Color",
            "name": "resizer-color-hover",
            "default": "black",
            "description": "The type color of the resizer when hovered or focused."
          },
          {
            "type": "Dimension",
            "name": "resizer-width",
            "default": "1rem",
            "description": "The width of the resizer."
          },
          {
            "type": "Dimension",
            "name": "resizer-center-size",
            "default": "1.65rem",
            "description": "The width/height of the resizer (in bottom right corner) used when position center with resize enabled"
          },
          {
            "type": "Color",
            "name": "title-color",
            "default": "white",
            "description": "Type color of the title."
          },
          {
            "type": "CssValue",
            "name": "title-font-weight",
            "default": "bold",
            "description": "Font weight of the title."
          },
          {
            "type": "CssValue",
            "name": "title-font-family",
            "default": "null",
            "description": "Font family for title"
          },
          {
            "type": "Dimension",
            "name": "title-icon-margin",
            "default": "0.5em",
            "description": "The margin of the title icon"
          },
          {
            "type": "String",
            "name": "title-size",
            "default": "large",
            "description": "The font-size of the title. This uses typography.scss, so the value of this options should be a variable from typography.scss."
          },
          {
            "type": "CssValue",
            "name": "title-text-transform",
            "default": "null",
            "description": "Transform option for the title."
          },
          {
            "type": "Map",
            "name": "sizes",
            "default": "Map",
            "description": "Size options to enable unique stylings."
          },
          {
            "type": "String",
            "name": "breakpoint",
            "default": "true",
            "description": "Optional breakpoint for modals (used for adaptive things like fullscreen-mobile), if set to true will fallback to breakpoint default"
          },
          {
            "type": "String",
            "name": "frame-aspect-ratio",
            "default": "list.slash(16, 9)",
            "description": "Default aspect ratio for single embedded items in frame-ratio layout"
          },
          {
            "type": "String",
            "name": "frame-fill-min-height",
            "default": "65vh",
            "description": "Default minimum height for single embedded items in frame-fill layout"
          }
        ],
        "group": [
          "modal"
        ],
        "access": "public",
        "file": {
          "path": "_modal.scss",
          "name": "_modal.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "modal",
        "path": "/sass/components/modal/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 142,
          "end": 145
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 147,
            "end": 149
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-modal-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "modal"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_modal.scss",
          "name": "_modal.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "modal",
        "path": "/sass/components/modal/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 151,
          "end": 154
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  $value: utils.require-map-get($config, $name, \"component-modal [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
          "line": {
            "start": 156,
            "end": 159
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-modal-get(\"property\");"
          }
        ],
        "group": [
          "modal"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_modal.scss",
          "name": "_modal.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "modal",
        "path": "/sass/components/modal/#mixin-styles",
        "description": "Prints modal component styles\n",
        "commentRange": {
          "start": 161,
          "end": 163
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"modal\");\n  $breakpoint: get(\"breakpoint\");\n\n  // // Before it's moved\n  [data-ulu-modal-builder] {\n    display: none;\n  }\n  \n  #{ $prefix } {\n    // Required for click outside\n    position: fixed;\n    flex-direction: column;\n    // Important: If you use the margin layout system (ie. auto) on dialogs they \n    // can't animate out correctly (thinking it jumps from dialog display system \n    // to normal block and doesn't work. This ALSO affects the z-index (seems to move from top-layer to normal layer). Z-index is for close\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: layout.get(\"z-index-fixed\") + 1;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    width: get(\"width\");\n    min-width: get(\"min-width\"); // For resizing minimum width\n    min-height: get(\"height\");\n    max-height: 100vh;\n    max-height: 100dvh;\n    max-width: 100%;\n    overflow-y: hidden;\n    box-sizing: border-box;\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    background-color: color.get(get(\"background-color\"));\n    box-sizing: border-box;\n    animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      display: flex;\n      animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n    &::backdrop {\n      background: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n      animation: uluModalBackdropIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }__header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex: 0 0 auto;\n    padding: get(\"header-padding\");\n    border-bottom: get(\"header-border-bottom\");\n    background-color: color.get(get(\"header-background-color\"));\n    color: color.get(get(\"header-color\"));\n  }\n  #{ $prefix }__body {\n    flex: 1 1 auto;\n    min-height: 0; // to ensure the flex grow container can get smaller than it's content (and scroll) when needed\n    overflow: auto;\n    padding: get(\"body-padding\");\n  }\n  #{ $prefix }__footer {\n    flex: 0 0 auto;\n    padding: get(\"footer-padding\");\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top: get(\"footer-border-top\");\n    text-align: get(\"footer-text-align\");\n  }\n  #{ $prefix }__title {\n    display: flex;\n    align-items: baseline;\n    margin: 0;\n    color: color.get(get(\"title-color\"));\n    font-weight: get(\"title-font-weight\");\n    font-family: get(\"title-font-family\");\n    text-transform: get(\"title-text-transform\");\n    @if (get(\"title-size\")) {\n      @include typography.size(get(\"title-size\"), $only-font-size: true);\n    }\n  }\n  #{ $prefix }__title-icon {\n    margin-right: get(\"title-icon-margin\");\n  }\n  #{ $prefix }__close {\n    margin: 0 0 0 get(\"close-margin\");\n    flex: 0 0 auto;\n    background-color: color.get(get(\"close-background-color\"));\n    border-color: color.get(utils.fallback(get(\"close-border-color\"), get(\"close-background-color\")));\n    color: color.get(get(\"close-color\"));\n    box-shadow: get(\"close-box-shadow\");\n    &:hover,\n    &:focus {\n      background-color: color.get(get(\"close-background-color-hover\"));\n      color: color.get(get(\"close-color-hover\"));\n      border-color: color.get(utils.fallback(get(\"close-border-color-hover\"), get(\"close-background-color-hover\")));\n      // need border-color-hover use utils fallback\n    }\n  }\n\n  #{ $prefix }__resizer {\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    width: get(\"resizer-width\");\n    display: block;\n    cursor: col-resize;\n    background-color: color.get(get(\"resizer-background-color\"));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition-property: background-color, color;\n    transition-duration: 300ms;\n    transition-delay: 100ms; \n    color: color.get(get(\"resizer-color\"));\n    &:hover {\n      color: color.get(get(\"resizer-color-hover\"));\n      background-color: color.get(get(\"resizer-background-color-hover\"));\n    }\n    #{ $prefix }--left & {\n      left: auto;\n      right: 0;\n    }\n    #{ $prefix }--center & {\n      left: auto;\n      right: 0;\n      bottom: 0;\n      top: auto;\n      height: get(\"resizer-center-size\");\n      width: get(\"resizer-center-size\");\n      background-color: transparent;\n      cursor: nwse-resize;\n    }\n  }\n\n  // Modifiers\n  @each $name, $size-width in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      width: $size-width;\n    }\n  }\n\n  // Fullscreen and left and right defaults (width overridden below)\n  #{ $prefix }--fullscreen,\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    @include -fullscreen-common-properties();\n  }\n  // Left/Right specific\n  // - Note these properties are all important even though they seem redundant\n  //   they are tested and solve quirks with dialog positioning/animation\n  #{ $prefix }--right,\n  #{ $prefix }--left {\n    width: get(\"width-left-right\");\n    top: 0;\n    bottom: 0;\n    transform: none;\n  }\n  #{ $prefix }--top {\n    top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    transform: translateX(-50%);\n    animation: uluModalTopOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalTopIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--bottom {\n    top: auto;\n    bottom: 0;\n    transform: translateX(-50%);\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n    animation: uluModalBottomOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalBottomIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--right {\n    right: 0;\n    left: auto;\n    animation: uluModalRightOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalRightIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--left {\n    left: 0;\n    animation: uluModalLeftOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n    &[open] {\n      animation: uluModalLeftIn get(\"animation-duration\") get(\"animation-timing-function\");\n    }\n  }\n  #{ $prefix }--no-header {\n    min-height: get(\"height-no-header\");\n  }\n  #{ $prefix }--no-backdrop {\n    &::backdrop {\n      display: none;\n    }\n  }\n  #{ $prefix }--resize {\n    &#{ $prefix }--right  {\n      padding-left: get(\"resizer-width\");  \n    }\n    &#{ $prefix }--left  {\n      padding-right: get(\"resizer-width\");  \n    }\n  }\n  // Share body flush layout\n  #{ $prefix }--body-fills,\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__header {\n      border-bottom: none;\n    }\n    #{ $prefix }__body {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--no-min-height {\n    min-height: 0;\n  }\n\n  // Frame layouts for absolute positioned single content (e.g. iframes)\n  // Both modes use absolute positioning to escape wrappers (p, div, etc)\n  #{ $prefix }--frame-ratio,\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      position: relative;\n    }\n    #{ $prefix }__frame-content {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: none;\n    }\n  }\n\n  // Ratio-specific: disable minimum heights and flex-grow so it perfectly wraps\n  #{ $prefix }--frame-ratio {\n    min-height: 0;\n    #{ $prefix }__body {\n      flex: none; \n      // Default, can be overridden inline\n      aspect-ratio: utils.normalize-aspect-ratio(get(\"frame-aspect-ratio\")); \n    }\n  }\n\n  // Fill-specific: default height\n  #{ $prefix }--frame-fill {\n    #{ $prefix }__body {\n      // Default, can be overridden inline\n      min-height: get(\"frame-fill-min-height\"); \n    }\n  }\n\n  @if breakpoint.exists($breakpoint) {\n    #{ $prefix }--fullscreen-mobile {\n      @include breakpoint.max($breakpoint) {\n        @include -fullscreen-common-properties();\n        top: 50%;\n        left: 50%;\n        bottom: auto;\n        right: auto;\n        transform: translate(-50%, -50%);\n        animation: uluModalCenterOut get(\"animation-duration-exit\") get(\"animation-timing-function\");\n        &[open] {\n          animation: uluModalCenterIn get(\"animation-duration\") get(\"animation-timing-function\");\n        }\n        #{ $prefix }__resizer {\n          display: none;\n        }\n      }\n    }\n  }\n\n  // Will display as content when printing\n  // NOTE: This will not work with native dialog\n  // Printing works with modal printer by cloning mechanism\n  // .modal--print {\n  //   @media screen {\n  //     display: block !important;\n  //     position: static;\n  //     top: auto;\n  //     left: auto;\n  //     right: auto;\n  //     bottom: auto;\n  //     width: auto;\n  //     max-width: none;\n  //   }\n  // }\n\n  @keyframes uluModalBackdropIn {\n    0% {\n      background-color: rgba(0, 0, 0, 0);\n      backdrop-filter: blur(0);\n    }\n    100% {\n      background-color: color.get(get(\"backdrop-color\"));\n      backdrop-filter: blur(get(\"backdrop-blur\"));\n    }\n  }\n  @keyframes uluModalCenterIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -40%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, -50%);\n      display: flex;\n    }\n  }\n  @keyframes uluModalCenterOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, -50%);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 40%);\n    }\n  }\n  @keyframes uluModalTopIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, -15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalTopOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, -15%);\n    }\n  }\n  @keyframes uluModalBottomIn {\n    from { \n      opacity: 0; \n      transform: translate(-50%, 15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translate(-50%, 0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalBottomOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translate(-50%, 0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translate(-50%, 15%);\n    }\n  }\n  @keyframes uluModalLeftIn {\n    from { \n      opacity: 0; \n      transform: translateX(-15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalLeftOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(-15%);\n    }\n  }\n  @keyframes uluModalRightIn {\n    from { \n      opacity: 0; \n      transform: translateX(15%);\n      display: none;\n    }\n    to { \n      opacity: 1; \n      transform: translateX(0);\n      display: flex;\n    }\n  }\n  @keyframes uluModalRightOut {\n    from { \n      opacity: 1; \n      display: flex;\n      transform: translateX(0);\n    }\n    to { \n      opacity: 0; \n      display: none;\n      transform: translateX(15%);\n    }\n  }\n",
          "line": {
            "start": 165,
            "end": 593
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-modal-styles();"
          }
        ],
        "group": [
          "modal"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_modal.scss",
          "name": "_modal.scss"
        }
      }
    ],
    "nav-strip": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "nav-strip",
        "path": "/sass/components/nav-strip/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 16,
          "end": 33
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"activeSelector\" : \"&.is-active, &.has-active\",\n  \"color\" : \"type-tertiary\",\n  \"color-active\" : \"type\",\n  \"color-hover\" : \"type\",\n  \"font-weight\" : null,\n  \"margin-between\" : 2.25em,\n  \"padding-x\" : 0,\n  \"padding-y\" : 0.3em,\n  \"padding-y-ruled\" : null,\n  \"nowrap\" : true,\n  \"rule-color\" : \"rule-light\",\n  \"rule-offset\" : 0,\n  \"rule-size\" : 3px,\n  \"underline-color\" : \"selected\",\n  \"underline-color-hover\" : \"rule\",\n  \"underline-size\" : 3px,\n)",
          "scope": "default",
          "line": {
            "start": 35,
            "end": 52
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "String",
            "name": "activeSelector",
            "default": ".is-active",
            "description": "Selector that portrays active status."
          },
          {
            "type": "Color",
            "name": "color",
            "default": "\"type-tertiary\"",
            "description": "Type color for the nav-strip."
          },
          {
            "type": "Color",
            "name": "color-active",
            "default": "\"type\"",
            "description": "Type color for the nav-strip when active."
          },
          {
            "type": "Color",
            "name": "color-hover",
            "default": "\"type-hover\"",
            "description": "Type color for the nav-strip when hovered or focused."
          },
          {
            "type": "CssValue",
            "name": "font-weight",
            "default": "null",
            "description": "Font weight of nav-strip."
          },
          {
            "type": "Dimension",
            "name": "margin-between",
            "default": "2.25em",
            "description": "Margin between nav-strip items."
          },
          {
            "type": "Boolean",
            "name": "nowrap",
            "default": "true",
            "description": "Disables the word wrap."
          },
          {
            "type": "Dimension",
            "name": "padding-x",
            "default": "0",
            "description": "Horizontal padding for the nav-strip links."
          },
          {
            "type": "Dimension",
            "name": "padding-y",
            "default": "0.3em",
            "description": "Vertical padding for the nav-strip links."
          },
          {
            "type": "Dimension",
            "name": "padding-y-ruled",
            "default": "null",
            "description": "Vertical padding for the nav-strip links when using nav-strip--rule."
          },
          {
            "type": "Color",
            "name": "underline-color",
            "default": "\"selected\"",
            "description": "Underline color when link is active."
          },
          {
            "type": "Dimension",
            "name": "underline-size",
            "default": "3px",
            "description": "Size of the underline."
          },
          {
            "type": "Color",
            "name": "underline-color-hover",
            "default": "\"rule\"",
            "description": "Color of the underline when hovered or focused."
          },
          {
            "type": "String",
            "name": "rule-color",
            "default": "\"rule-light\"",
            "description": "Rule color. Uses rule.scss so the value of this options should be a variable from rule.scss."
          },
          {
            "type": "Dimension",
            "name": "rule-size",
            "default": "3px",
            "description": "Size of the nav-strip rule."
          },
          {
            "type": "Dimension",
            "name": "rule-offset",
            "default": "-3px",
            "description": "Offset the rule for the nav-strip."
          }
        ],
        "group": [
          "nav-strip"
        ],
        "access": "public",
        "file": {
          "path": "_nav-strip.scss",
          "name": "_nav-strip.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "nav-strip",
        "path": "/sass/components/nav-strip/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 55,
          "end": 58
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 60,
            "end": 62
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-nav-strip-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "nav-strip"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_nav-strip.scss",
          "name": "_nav-strip.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "nav-strip",
        "path": "/sass/components/nav-strip/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 64,
          "end": 67
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"card [config]\");\n",
          "line": {
            "start": 69,
            "end": 71
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-nav-strip-get(\"property\");"
          }
        ],
        "group": [
          "nav-strip"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_nav-strip.scss",
          "name": "_nav-strip.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "nav-strip",
        "path": "/sass/components/nav-strip/#mixin-styles",
        "description": "Prints component styles\n",
        "commentRange": {
          "start": 73,
          "end": 75
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"nav-strip\");\n  #{ $prefix } {\n    max-width: 100%; // So ul will overflow\n  }\n  // Original thought to not limit to direct child\n  // auto is for when we don't have control over markup\n  // The list descendants will be selected that way but the list is\n  // currently selecting any list/list-item\n  #{ $prefix }__list,\n  #{ $prefix }--auto ul {\n    display: flex;\n    overflow-x: auto;\n    line-height: typography.get(\"line-height-dense\");\n    gap: get(\"margin-between\");\n    @include layout.remove-scrollbar();\n  }\n  #{ $prefix }__item,\n  #{ $prefix }--auto li {\n    // layout flex since items inside may not be the same height\n    display: flex;\n    align-items: flex-end;\n  }\n  \n  #{ $prefix }__link,\n  #{ $prefix }--auto li > a,\n  #{ $prefix }--auto li > button {\n    display: block;\n    color: color.get(get(\"color\"));\n    padding: get(\"padding-y\") get(\"padding-x\");\n    border-top: get(\"underline-size\") solid transparent;\n    border-bottom: get(\"underline-size\") solid transparent;\n    font-weight: get(\"font-weight\");\n    @if (get(\"nowrap\")) {\n      white-space: nowrap;\n    }\n    &:hover,\n    &:focus {\n      border-bottom-color: color.get(get(\"underline-color-hover\"));\n      color: color.get(get(\"color-hover\"));\n    }\n    #{ get(\"activeSelector\") } {\n      border-bottom-color: color.get(get(\"underline-color\"));\n      color: color.get(get(\"color-active\"));\n    }\n  }\n  \n  // Modifiers\n  #{ $prefix }--right {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: flex-end;\n    }\n  }\n  #{ $prefix }--center {\n    #{ $prefix }__list,\n    &#{ $prefix }--auto ul {\n      justify-content: center;\n    }\n  }\n  #{ $prefix }--rule {\n    position: relative;\n    &::after {\n      content: \"\";\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    }\n    #{ $prefix }__link,\n    &#{ $prefix }--auto li > a,\n    &#{ $prefix }--auto li > button {\n      position: relative;\n      z-index: 2;\n      margin-bottom: get(\"rule-offset\");\n      padding-top: get(\"padding-y-ruled\");\n      padding-bottom: get(\"padding-y-ruled\");\n    }\n  }\n",
          "line": {
            "start": 77,
            "end": 157
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-nav-strip-styles();"
          }
        ],
        "group": [
          "nav-strip"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_nav-strip.scss",
          "name": "_nav-strip.scss"
        }
      }
    ],
    "overlay-section": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "overlay-section",
        "path": "/sass/components/overlay-section/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 14,
          "end": 22
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"content-background-color\" : white,\n  \"content-border\" : 1px solid rgb(227, 227, 227),\n  \"content-padding\" : 2.5rem,\n  \"content-width\" : 34rem,\n  \"min-height\" : 75vh,\n  \"padding\" : 6rem,\n  \"breakpoints\" : (\n    \"medium\" : (\n      \"direction\" : \"down\",\n      \"padding\" : 4rem,\n    ),\n    \"small\" : (\n      \"direction\" : \"down\",\n      \"padding\" : 2rem,\n      \"content-padding\" : 1.5rem\n    )\n  )\n)",
          "scope": "default",
          "line": {
            "start": 24,
            "end": 42
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Color",
            "name": "content-background-color",
            "default": "white",
            "description": "The background color of the content."
          },
          {
            "type": "CssValue",
            "name": "content-border",
            "default": "1px solid rgb(227, 227, 227)",
            "description": "The border of the content"
          },
          {
            "type": "Dimension",
            "name": "content-padding",
            "default": "2.5rem",
            "description": "The padding of the content."
          },
          {
            "type": "Dimension",
            "name": "content-width",
            "default": "34rem",
            "description": "The width of the content."
          },
          {
            "type": "Dimension",
            "name": "min-height",
            "default": "75vh",
            "description": "the min-height of the section."
          },
          {
            "type": "Dimension",
            "name": "padding",
            "default": "6rem",
            "description": "The padding of the container."
          },
          {
            "type": "Map",
            "name": "breakpoints",
            "default": "Map",
            "description": "The breakpoints of the section."
          }
        ],
        "group": [
          "overlay-section"
        ],
        "access": "public",
        "file": {
          "path": "_overlay-section.scss",
          "name": "_overlay-section.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "overlay-section",
        "path": "/sass/components/overlay-section/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 44,
          "end": 47
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 49,
            "end": 51
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-overlay-section-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "overlay-section"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_overlay-section.scss",
          "name": "_overlay-section.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "overlay-section",
        "path": "/sass/components/overlay-section/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 53,
          "end": 56
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"overlay-section [config]\");\n",
          "line": {
            "start": 58,
            "end": 60
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-overlay-section-get(\"property\");"
          }
        ],
        "group": [
          "overlay-section"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_overlay-section.scss",
          "name": "_overlay-section.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "overlay-section",
        "path": "/sass/components/overlay-section/#mixin-styles",
        "description": "Prints component styles\n",
        "commentRange": {
          "start": 62,
          "end": 64
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n\n  .overlay-section {\n    position: relative;\n    display: flex;\n    min-height: get(\"min-height\");\n    align-items: center;\n    justify-content: center;\n    padding: get(\"padding\");\n\n    @each $breakpoint, $props in get(\"breakpoints\") {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        padding: map.get($props, \"padding\");\n        min-height: map.get($props, \"min-height\");\n      }\n    }\n  }\n  .overlay-section__background {\n    @include layout.absolute-fill();\n    img, \n    video {\n      object-fit: cover;\n      height: 100%;\n      width: 100%;\n    }\n  }\n  .overlay-section__content {\n    position: relative;\n    z-index: 2;\n    background-color: color.get(get(\"content-background-color\"));\n    border: get(\"content-border\");\n    flex: 0 1 get(\"content-width\");\n    padding: get(\"content-padding\");\n    @each $breakpoint, $props in get(\"breakpoints\") {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        padding: map.get($props, \"content-padding\");\n      }\n    }\n  }\n  .overlay-section--top {\n    align-items: flex-start;\n  }\n  .overlay-section--bottom {\n    align-items: flex-end;\n  }\n  .overlay-section--left {\n    justify-content: flex-start;\n  }\n  .overlay-section--right {\n    justify-content: flex-end;\n  }\n",
          "line": {
            "start": 66,
            "end": 119
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-overlay-section-styles();"
          }
        ],
        "group": [
          "overlay-section"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_overlay-section.scss",
          "name": "_overlay-section.scss"
        }
      }
    ],
    "pager": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "pager",
        "path": "/sass/components/pager/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 15,
          "end": 41
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"background-color\":              \"link\",\n  \"background-color-hover\":        \"link-hover\",\n  \"border-color\":                  \"link\",\n  \"border-color-hover\":            \"link-hover\",\n  \"border-radius\":                 50%,\n  \"border-width\":                  1px,\n  \"color\":                         white,\n  \"color-hover\":                   white,\n  \"font-weight\":                   bold,\n  \"item-margin\":                   0.17rem,\n  \"margin-bottom\":                 2rem,\n  \"margin-top\":                    1rem,\n  \"width\":                         2.5rem,\n\n  \"active-background-color\":       #ccc,\n  \"active-border-color\":           #ccc,\n  \"active-color\":                  \"type\",\n  \"active-font-weight\":            bold,\n  \n  \"action-background-color\":       \"link\",\n  \"action-background-color-hover\": \"link-hover\",\n  \"action-border-color\":           transparent,\n  \"action-border-color-hover\":     \"link\",\n  \"action-color\":                  white,\n  \"action-color-hover\":            white,\n  \"action-margin\":                 0.8rem,\n  \"action-width\":                  2.5rem,\n)",
          "scope": "default",
          "line": {
            "start": 43,
            "end": 71
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "String",
            "name": "background-color",
            "default": "link",
            "description": "The background color of the pager. This uses color.scss, so the value of this options should be a color variable from color.scss."
          },
          {
            "type": "String",
            "name": "background-color-hover",
            "default": "link-hover",
            "description": "The background color of the pager when hovered or focused. This uses color.scss, so the value of this options should be a color variable from color.scss."
          },
          {
            "type": "String",
            "name": "border-color",
            "default": "link",
            "description": "The border color of the pager item. This uses color.scss, so the value of this options should be a color variable from color.scss."
          },
          {
            "type": "String",
            "name": "border-color-hover",
            "default": "link-hover",
            "description": "The border color of the pager item when hovered or focused. This uses color.scss, so the value of this options should be a color variable from color.scss."
          },
          {
            "type": "Dimension",
            "name": "border-radius",
            "default": "50%",
            "description": "The border radius of the pager item."
          },
          {
            "type": "Dimension",
            "name": "border-width",
            "default": "1px",
            "description": "The border width of the pager item."
          },
          {
            "type": "Color",
            "name": "color",
            "default": "white",
            "description": "The type color of the pager item."
          },
          {
            "type": "Color",
            "name": "color-hover",
            "default": "white",
            "description": "The type color of the pager item when covered and focused."
          },
          {
            "type": "CssValue",
            "name": "font-weight",
            "default": "bold",
            "description": "Font-weight of the pager."
          },
          {
            "type": "Dimension",
            "name": "item-margin",
            "default": "0.17rem",
            "description": "The item margin."
          },
          {
            "type": "Dimension",
            "name": "margin-bottom",
            "default": "2rem",
            "description": "The bottom margin of the pager."
          },
          {
            "type": "Dimension",
            "name": "margin-top",
            "default": "1rem",
            "description": "The top margin of the pager."
          },
          {
            "type": "Dimension",
            "name": "width",
            "default": "2.5rem",
            "description": "The width of the pager items."
          },
          {
            "type": "Color",
            "name": "active-background-color",
            "default": "#ccc",
            "description": "The background color of the pager when active."
          },
          {
            "type": "Color",
            "name": "active-border-color",
            "default": "#ccc",
            "description": "The border color of the pager when active."
          },
          {
            "type": "Color",
            "name": "active-color",
            "default": "type",
            "description": "The type color when active. This uses color.scss, so the value of this options should be a color variable from color.scss."
          },
          {
            "type": "CssValue",
            "name": "active-font-weight",
            "default": "bold",
            "description": "The font weight of the pager when focused or hovered."
          },
          {
            "type": "String",
            "name": "action-background-color",
            "default": "link",
            "description": "The background color of the actions options of the pager. This uses color.scss, so the value of this options should be a color variable from color.scss."
          },
          {
            "type": "String",
            "name": "action-background-color-hover",
            "default": "link-hover",
            "description": "The background color of the actions options of the pager when focused or hovered. This uses color.scss, so the value of this options should be a color variable from color.scss."
          },
          {
            "type": "Color",
            "name": "action-border-color",
            "default": "transparent",
            "description": "The border color of the action options of the pager."
          },
          {
            "type": "String",
            "name": "action-border-color-hover",
            "default": "link",
            "description": "The border color of the action options of the pager when focused or hovered. This uses color.scss, so the value of this options should be a color variable from color.scss."
          },
          {
            "type": "Color",
            "name": "action-color",
            "default": "white",
            "description": "The type color of the actions options of the pager."
          },
          {
            "type": "Color",
            "name": "action-color-hover",
            "default": "white",
            "description": "The type color of the actions options of the pager when focused or hovered."
          },
          {
            "type": "Dimension",
            "name": "action-margin",
            "default": "0.8rem",
            "description": "The margin of the action options of the pager."
          },
          {
            "type": "Dimension",
            "name": "action-width",
            "default": "2.5rem",
            "description": "The width of the action options of the pager."
          }
        ],
        "group": [
          "pager"
        ],
        "access": "public",
        "file": {
          "path": "_pager.scss",
          "name": "_pager.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "pager",
        "path": "/sass/components/pager/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 73,
          "end": 76
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 78,
            "end": 80
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-pager-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "pager"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_pager.scss",
          "name": "_pager.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "pager",
        "path": "/sass/components/pager/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 82,
          "end": 85
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"card [config]\");\n",
          "line": {
            "start": 87,
            "end": 90
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-pager-get(\"property\");"
          }
        ],
        "group": [
          "pager"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_pager.scss",
          "name": "_pager.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "pager",
        "path": "/sass/components/pager/#mixin-styles",
        "description": "Prints component styles\n",
        "commentRange": {
          "start": 92,
          "end": 94
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  .pager {\n    font-weight: get(\"font-weight\");\n    margin-top: get(\"margin-top\");\n    margin-bottom: get(\"margin-bottom\");\n  }\n  .pager__items {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .pager__item {\n    margin: get(\"item-margin\");\n    a {\n      \n      display: block;\n      text-align: center;\n      width: get(\"width\");\n      height: get(\"width\");\n      line-height: get(\"width\");\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      border-radius: get(\"border-radius\");\n      border: get(\"border-width\") solid color.get(get(\"border-color\"));\n      background-color: color.get(get(\"background-color\"));\n      color: color.get(get(\"color\"));\n      &:hover {\n        color: color.get(get(\"color-hover\"));\n        border-color: color.get(get(\"border-color-hover\"));\n        background-color: color.get(get(\"background-color-hover\"));\n      }\n    }\n    &.is-active,\n    &--current {\n      a, \n      a:hover,\n      span {\n        font-weight: get(\"font-weight\");\n        color: color.get(get(\"active-color\"));\n        background-color: color.get(get(\"active-background-color\"));\n        border-color: color.get(get(\"active-border-color\"));\n      }\n    }\n  }\n  .pager__item--first,\n  .pager__item--previous,\n  .pager__item--next,\n  .pager__item--last {\n    a {\n      width: get(\"action-width\");\n      height: get(\"action-width\");\n      line-height: get(\"action-width\");\n      background-color: color.get(get(\"action-background-color\"));\n      color: color.get(get(\"action-color\"));\n      font-size: 1.2rem;\n      line-height: 2.8rem;\n      font-weight: bold;\n      &:hover {\n        border-color: color.get(get(\"action-border-color-hover\"));\n        background-color: color.get(get(\"action-background-color-hover\"));\n        color: color.get(get(\"action-color-hover\"));\n      }\n    }\n  }\n  .pager__item--previous {\n    margin-right: get(\"action-margin\")\n  }\n  .pager__item--next {\n    margin-left: get(\"action-margin\")\n  }\n",
          "line": {
            "start": 96,
            "end": 168
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-pager-styles();"
          }
        ],
        "group": [
          "pager"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_pager.scss",
          "name": "_pager.scss"
        }
      }
    ],
    "panel": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "panel",
        "path": "/sass/components/panel/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 28,
          "end": 35
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"background-color\" : rgb(255, 255, 255),\n  \"border\" : null,\n  \"border-radius\" : true,\n  \"box-shadow\" : true,\n  \"margin-bottom\" : 1.5em,\n  \"overflow\" : null,\n)",
          "scope": "default",
          "line": {
            "start": 37,
            "end": 44
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Color",
            "name": "background-color",
            "default": "rgb(255, 255, 255)",
            "description": "The background color of the panel"
          },
          {
            "type": "Color",
            "name": "border",
            "default": "null",
            "description": "Set border to panel"
          },
          {
            "type": "Dimension",
            "name": "border-radius",
            "default": "element.$config.border-radius",
            "description": "The border radius of the panel"
          },
          {
            "type": "CssValue",
            "name": "box-shadow",
            "default": "element.$config.box-shadow",
            "description": "The box-shadow of the panel"
          },
          {
            "type": "Dimension",
            "name": "margin-bottom",
            "default": "1.5rem",
            "description": "The bottom margin of the panel"
          },
          {
            "type": "CssValue",
            "name": "overflow",
            "default": "null",
            "description": "Value for overflow, not included by default as it interferes with position sticky, but could be useful for cropping if that's needed (can be set on rows too)"
          }
        ],
        "group": [
          "panel"
        ],
        "access": "public",
        "file": {
          "path": "_panel.scss",
          "name": "_panel.scss"
        }
      },
      {
        "id": "variable-styles",
        "title": "$styles",
        "groupName": "panel",
        "path": "/sass/components/panel/#variable-styles",
        "description": "Styles Map (for unique variations/modifiers)\n- Use this map to define distinct visual styles for the panel\n- This map is two levels the first level is the name of the modifier (see default below). \n  This will become the modifier for the pane; so (\"transparent\" : (...)) = .panel--transparent.\n  The second level is that modifier row modifiers (ie. panel__row--header) (see row options below)\n- Keyword \"default\" means without modifier for both parent and row configs\n  - For example \"default\" as panel container modifier name will mean\n    styles for this without any modifiers\n  - In a panels row config (second level) \"default\" will refer to the non-modified row (ie .panel__row)\n- Order matters, default should be first\n- Row Options\n  - Each row can have the following options:\n      overflow: Set overflow property if needed,\n      aspect-ratio,\n      height,\n      min-height,\n      padding,\n      margin: Can be used to create gap between container and row\n      background-color,\n      font-weight,\n      font-family,\n      color,\n      box-shadow,\n      grow: Default the panel will grow to fill the containers height, passing false disables this\n      border-top: If a string is passed it will resolved as an element rule style\n      border-bottom: If a string is passed it will resolved as an element rule style\n",
        "commentRange": {
          "start": 46,
          "end": 72
        },
        "context": {
          "type": "variable",
          "name": "styles",
          "value": "(\n  \"default\" : (\n    \"default\" : (\n      \"padding\": 1em,\n    ),\n    \"header\" : (\n      \"padding\" : (0.75em 1em),\n      \"background-color\" : #e7e7e7,\n      \"border-bottom\" : \"default\",\n      \"font-weight\" : bold,\n      \"grow\" : false,\n      \"breakpoints\" : (\n        \"small\" : (\n          \"direction\" : \"max\",\n          \"padding\" : (0.25em 0.5em)\n        )\n      )\n    ),\n    \"footer\" : (\n      \"padding\" : (0.5em 1em),\n      \"background-color\" : #f4f4f4,\n      \"border-top\" : \"default\",\n      \"grow\" : false\n    ),\n    \"separator-top\" : (\n      \"border-top\" : \"light\",\n    ),\n    \"separator-bottom\" : (\n      \"border-bottom\" : \"light\",\n    )\n  ),\n  \"transparent\" : (\n    \"default\" : (\n      \"padding\" : (1em 0),\n      \"margin\" : (0 1em),\n    ),\n    \"header\" : (\n      \"padding\" : (1em 0),\n      \"margin\" : (0 1em),\n      \"background-color\" : transparent,\n      \"grow\" : false\n    ),\n    \"footer\" : (\n      \"padding\" : (1em 0),\n      \"margin\" : (0 1em),\n      \"background-color\" : transparent,\n      \"grow\" : false\n    )\n  ),\n  \"compact\" : (\n    \"default\" : (\n      \"padding\" : (0.25em 0.5em)\n    ),\n    \"header\" : (\n      \"padding\" : (0.25em 0.5em)\n    ),\n    \"body\" : (\n      \"padding\" : (0.5em 1em)\n    )\n  )\n)",
          "scope": "default",
          "line": {
            "start": 74,
            "end": 134
          }
        },
        "type": "Map",
        "group": [
          "panel"
        ],
        "access": "public",
        "file": {
          "path": "_panel.scss",
          "name": "_panel.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "panel",
        "path": "/sass/components/panel/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 136,
          "end": 139
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 140,
            "end": 142
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-panel-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "panel"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_panel.scss",
          "name": "_panel.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "panel",
        "path": "/sass/components/panel/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 144,
          "end": 147
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  $value: utils.require-map-get($config, $name, \"panel [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
          "line": {
            "start": 148,
            "end": 151
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-panel-get(\"property\");"
          }
        ],
        "group": [
          "panel"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_panel.scss",
          "name": "_panel.scss"
        }
      },
      {
        "id": "mixin-set-styles",
        "title": "set-styles()",
        "groupName": "panel",
        "path": "/sass/components/panel/#mixin-set-styles",
        "description": "Set style variations\n- See $styles for more information on map properties/structure\n",
        "commentRange": {
          "start": 153,
          "end": 156
        },
        "context": {
          "type": "mixin",
          "name": "set-styles",
          "code": "\n  $styles: utils.map-merge($styles, $changes, $merge-mode) !global;\n",
          "line": {
            "start": 157,
            "end": 159
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes (options for style include all config properties)"
          },
          {
            "type": "String",
            "name": "merge-mode",
            "description": "Merge mode see utils.map-merge() [null|\"deep\"|\"overwrite\"]"
          }
        ],
        "group": [
          "panel"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "styles"
          },
          {
            "type": "variable",
            "name": "styles"
          }
        ],
        "file": {
          "path": "_panel.scss",
          "name": "_panel.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "panel",
        "path": "/sass/components/panel/#mixin-styles",
        "description": "Output component styles\n",
        "commentRange": {
          "start": 161,
          "end": 163
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"panel\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    overflow: get(\"overflow\");\n    background-color: get(\"background-color\");\n    box-shadow: get(\"box-shadow\");\n    border: get(\"border\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__row {\n    &:first-child {\n      border-top-left-radius: get(\"border-radius\");\n      border-top-right-radius: get(\"border-radius\");\n    }\n    &:last-child {\n      border-bottom-left-radius: get(\"border-radius\");\n      border-bottom-right-radius: get(\"border-radius\");\n    }\n  }\n\n  @each $modifier, $rows in $styles {\n    @if ($modifier == \"default\") {\n      @each $row-name, $props in $rows {\n        @if ($row-name == \"default\") {\n          #{ $prefix }__row {\n            @include create-row-style($props);\n          }\n        } @else {\n          #{ $prefix }__row--#{ $row-name } {\n            @include create-row-style($props);\n          }\n        }\n      }\n    } @else {\n      #{ $prefix }--#{ $modifier } {\n        @each $row-name, $props in $rows {\n          @if ($row-name == \"default\") {\n            #{ $prefix }__row {\n              @include create-row-style($props);\n            }\n          } @else {\n            #{ $prefix }__row--#{ $row-name } {\n              @include create-row-style($props);\n            }\n          }\n        }\n      }\n    }\n  }\n",
          "line": {
            "start": 164,
            "end": 216
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-panel-styles();"
          }
        ],
        "group": [
          "panel"
        ],
        "access": "public",
        "require": [
          {
            "type": "mixin",
            "name": "create-row-style"
          },
          {
            "type": "mixin",
            "name": "create-row-style"
          },
          {
            "type": "mixin",
            "name": "create-row-style"
          },
          {
            "type": "mixin",
            "name": "create-row-style"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "variable",
            "name": "styles"
          }
        ],
        "file": {
          "path": "_panel.scss",
          "name": "_panel.scss"
        }
      },
      {
        "id": "mixin-create-row-style",
        "title": "create-row-style()",
        "groupName": "panel",
        "path": "/sass/components/panel/#mixin-create-row-style",
        "description": "Create row styles\n",
        "commentRange": {
          "start": 218,
          "end": 219
        },
        "context": {
          "type": "mixin",
          "name": "create-row-style",
          "code": "\n  overflow: map.get($props, \"overflow\");\n  aspect-ratio: map.get($props, \"aspect-ratio\");\n  height: map.get($props, \"height\");\n  min-height: map.get($props, \"min-height\");\n  padding: map.get($props, \"padding\");\n  margin: map.get($props, \"margin\");\n  background-color: color.get(map.get($props, \"background-color\"));\n  font-weight: map.get($props, \"font-weight\");\n  font-family: map.get($props, \"font-family\");\n  color: color.get(map.get($props, \"color\"));\n  box-shadow: map.get($props, \"box-shadow\");\n  flex-grow: utils.when(map.get($props, \"grow\") == false, 0, 1); // Default is grow\n  border-top: element.get-optional-rule-style(map.get($props, \"border-top\"));\n  border-bottom: element.get-optional-rule-style(map.get($props, \"border-bottom\"));\n  \n\n  // Allow passing breakpoint maps\n  $breakpoints: map.get($props, \"breakpoints\");\n  $b-options: ( \"directionRequired\" : true );\n\n  @if ($breakpoints and list.length($breakpoints)) {\n    @include breakpoint.from-each($breakpoints, $b-options) using ($b-props) {\n      @include create-row-style($b-props);\n    }\n  }\n",
          "line": {
            "start": 220,
            "end": 246
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "props",
            "description": "Row Options"
          }
        ],
        "group": [
          "panel"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_panel.scss",
          "name": "_panel.scss"
        },
        "usedBy": [
          {
            "description": "Output component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"panel\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    overflow: get(\"overflow\");\n    background-color: get(\"background-color\");\n    box-shadow: get(\"box-shadow\");\n    border: get(\"border\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__row {\n    &:first-child {\n      border-top-left-radius: get(\"border-radius\");\n      border-top-right-radius: get(\"border-radius\");\n    }\n    &:last-child {\n      border-bottom-left-radius: get(\"border-radius\");\n      border-bottom-right-radius: get(\"border-radius\");\n    }\n  }\n\n  @each $modifier, $rows in $styles {\n    @if ($modifier == \"default\") {\n      @each $row-name, $props in $rows {\n        @if ($row-name == \"default\") {\n          #{ $prefix }__row {\n            @include create-row-style($props);\n          }\n        } @else {\n          #{ $prefix }__row--#{ $row-name } {\n            @include create-row-style($props);\n          }\n        }\n      }\n    } @else {\n      #{ $prefix }--#{ $modifier } {\n        @each $row-name, $props in $rows {\n          @if ($row-name == \"default\") {\n            #{ $prefix }__row {\n              @include create-row-style($props);\n            }\n          } @else {\n            #{ $prefix }__row--#{ $row-name } {\n              @include create-row-style($props);\n            }\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 164,
                "end": 216
              }
            }
          },
          {
            "description": "Output component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"panel\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    overflow: get(\"overflow\");\n    background-color: get(\"background-color\");\n    box-shadow: get(\"box-shadow\");\n    border: get(\"border\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__row {\n    &:first-child {\n      border-top-left-radius: get(\"border-radius\");\n      border-top-right-radius: get(\"border-radius\");\n    }\n    &:last-child {\n      border-bottom-left-radius: get(\"border-radius\");\n      border-bottom-right-radius: get(\"border-radius\");\n    }\n  }\n\n  @each $modifier, $rows in $styles {\n    @if ($modifier == \"default\") {\n      @each $row-name, $props in $rows {\n        @if ($row-name == \"default\") {\n          #{ $prefix }__row {\n            @include create-row-style($props);\n          }\n        } @else {\n          #{ $prefix }__row--#{ $row-name } {\n            @include create-row-style($props);\n          }\n        }\n      }\n    } @else {\n      #{ $prefix }--#{ $modifier } {\n        @each $row-name, $props in $rows {\n          @if ($row-name == \"default\") {\n            #{ $prefix }__row {\n              @include create-row-style($props);\n            }\n          } @else {\n            #{ $prefix }__row--#{ $row-name } {\n              @include create-row-style($props);\n            }\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 164,
                "end": 216
              }
            }
          },
          {
            "description": "Output component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"panel\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    overflow: get(\"overflow\");\n    background-color: get(\"background-color\");\n    box-shadow: get(\"box-shadow\");\n    border: get(\"border\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__row {\n    &:first-child {\n      border-top-left-radius: get(\"border-radius\");\n      border-top-right-radius: get(\"border-radius\");\n    }\n    &:last-child {\n      border-bottom-left-radius: get(\"border-radius\");\n      border-bottom-right-radius: get(\"border-radius\");\n    }\n  }\n\n  @each $modifier, $rows in $styles {\n    @if ($modifier == \"default\") {\n      @each $row-name, $props in $rows {\n        @if ($row-name == \"default\") {\n          #{ $prefix }__row {\n            @include create-row-style($props);\n          }\n        } @else {\n          #{ $prefix }__row--#{ $row-name } {\n            @include create-row-style($props);\n          }\n        }\n      }\n    } @else {\n      #{ $prefix }--#{ $modifier } {\n        @each $row-name, $props in $rows {\n          @if ($row-name == \"default\") {\n            #{ $prefix }__row {\n              @include create-row-style($props);\n            }\n          } @else {\n            #{ $prefix }__row--#{ $row-name } {\n              @include create-row-style($props);\n            }\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 164,
                "end": 216
              }
            }
          },
          {
            "description": "Output component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"panel\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    overflow: get(\"overflow\");\n    background-color: get(\"background-color\");\n    box-shadow: get(\"box-shadow\");\n    border: get(\"border\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__row {\n    &:first-child {\n      border-top-left-radius: get(\"border-radius\");\n      border-top-right-radius: get(\"border-radius\");\n    }\n    &:last-child {\n      border-bottom-left-radius: get(\"border-radius\");\n      border-bottom-right-radius: get(\"border-radius\");\n    }\n  }\n\n  @each $modifier, $rows in $styles {\n    @if ($modifier == \"default\") {\n      @each $row-name, $props in $rows {\n        @if ($row-name == \"default\") {\n          #{ $prefix }__row {\n            @include create-row-style($props);\n          }\n        } @else {\n          #{ $prefix }__row--#{ $row-name } {\n            @include create-row-style($props);\n          }\n        }\n      }\n    } @else {\n      #{ $prefix }--#{ $modifier } {\n        @each $row-name, $props in $rows {\n          @if ($row-name == \"default\") {\n            #{ $prefix }__row {\n              @include create-row-style($props);\n            }\n          } @else {\n            #{ $prefix }__row--#{ $row-name } {\n              @include create-row-style($props);\n            }\n          }\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 164,
                "end": 216
              }
            }
          }
        ]
      }
    ],
    "placeholder-block": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "placeholder-block",
        "path": "/sass/components/placeholder-block/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 31,
          "end": 46
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"background-color\" : rgba(0,0,0,0.15),\n  \"color\" : true,\n  \"expanded-height\" : 15rem,\n  \"margin-bottom\" : true,\n  \"padding\" : 2em,\n  \"padding-compact\" : (0.5em 1em),\n\n  \"border-color\" : rgba(0,0,0,0.3),\n  \"border-radius\" : true,\n  \"border-style\" : dashed,\n  \"border-width\" : 2px,\n  \"border-width-compact\" : 1px,\n  \"icon-color\" : rgba(0, 0, 0, 0.5),\n  \"icon-font-size\" : 3em,\n  \"icon-margin\" : 0.25em,\n)",
          "scope": "default",
          "line": {
            "start": 48,
            "end": 65
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Color",
            "name": "background-color",
            "default": "rgba(0,0,0,0.15)",
            "description": "The background color of the placeholder."
          },
          {
            "type": "Color",
            "name": "color",
            "default": "true",
            "description": "The type color of the placeholder. If set to true, will use the \"type-tertiary\" variable from color.scss."
          },
          {
            "type": "Dimension",
            "name": "margin-bottom",
            "default": "true",
            "description": "The bottom margin of the placeholder. If set to true, will use the \"margin\" variable from element.scss."
          },
          {
            "type": "Dimension",
            "name": "padding",
            "default": "2em",
            "description": "The padding of the placeholder."
          },
          {
            "type": "Dimension",
            "name": "padding-compact",
            "default": "(0.5em 1em)",
            "description": "The padding of the placeholder when using the compact option."
          },
          {
            "type": "Dimension",
            "name": "expanded-height",
            "default": "15rem",
            "description": "The height of the placeholder when using the expanded option."
          },
          {
            "type": "Color",
            "name": "border-color",
            "default": "rgba(0,0,0,0.3)",
            "description": "The border color."
          },
          {
            "type": "Dimension",
            "name": "border-radius",
            "default": "true",
            "description": "The border radius of the placeholder. If set to true, will use the \"border-radius-large\" variable from element.scss."
          },
          {
            "type": "CssValue",
            "name": "border-style",
            "default": "dashed",
            "description": "The border style of the placeholder border."
          },
          {
            "type": "Dimension",
            "name": "border-width",
            "default": "2px",
            "description": "The border width of the placeholder."
          },
          {
            "type": "Dimension",
            "name": "border-width-compact",
            "default": "1px",
            "description": "The border width of the placeholder when using the compact option."
          },
          {
            "type": "Dimension",
            "name": "icon-font-size",
            "default": "3em",
            "description": "The font-size of the placeholder icon."
          },
          {
            "type": "Dimension",
            "name": "icon-margin",
            "default": "0.25em",
            "description": "The margin of the placeholder icon."
          },
          {
            "type": "Color",
            "name": "icon-color",
            "default": "rgba(0, 0, 0, 0.5)",
            "description": "The icon type color."
          }
        ],
        "group": [
          "placeholder-block"
        ],
        "access": "public",
        "file": {
          "path": "_placeholder-block.scss",
          "name": "_placeholder-block.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "placeholder-block",
        "path": "/sass/components/placeholder-block/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 68,
          "end": 71
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 73,
            "end": 75
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-placeholder-block-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "placeholder-block"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_placeholder-block.scss",
          "name": "_placeholder-block.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "placeholder-block",
        "path": "/sass/components/placeholder-block/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 77,
          "end": 80
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  $value: utils.require-map-get($config, $name, \"placeholder [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
          "line": {
            "start": 82,
            "end": 85
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-placeholder-block-get(\"property\");"
          }
        ],
        "group": [
          "placeholder-block"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_placeholder-block.scss",
          "name": "_placeholder-block.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "placeholder-block",
        "path": "/sass/components/placeholder-block/#mixin-styles",
        "description": "Prints component styles\n",
        "commentRange": {
          "start": 87,
          "end": 89
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"placeholder-block\");\n\n  #{ $prefix } {\n    background-color: color.get(get(\"background-color\"));\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    align-items: center;\n    text-align: center;\n    padding: get(\"padding\");\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") get(\"border-style\") color.get(get(\"border-color\"));\n    margin-bottom: get(\"margin-bottom\");\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n    display: block;\n    margin: 0 auto get(\"icon-margin\") auto;\n    font-size: get(\"icon-font-size\");\n  }\n  #{ $prefix }--compact {\n    padding: get(\"padding-compact\");\n    display: block;\n    border-width: get(\"border-width-compact\");\n  }\n  #{ $prefix }--expanded {\n    min-height: get(\"expanded-height\");\n  }\n",
          "line": {
            "start": 91,
            "end": 121
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-placeholder-block-styles();"
          }
        ],
        "group": [
          "placeholder-block"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_placeholder-block.scss",
          "name": "_placeholder-block.scss"
        }
      }
    ],
    "popover": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "popover",
        "path": "/sass/components/popover/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 31,
          "end": 62
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"arrow-size\"                   : 16px,\n  \"arrow-box-shadow\"             : true,\n  \"arrow-box-shadow-extent\"      : null,\n  \"background-color\"             : white,\n  \"border-radius\"                : 6px,\n  \"color\"                        : inherit,\n  \"max-width\"                    : 90vw,\n  \"max-height\"                   : 25rem,\n  \"padding\"                      : 1rem,\n  \"padding-large\"                : 2rem,\n  \"type-size\"                    : null,\n  \"z-index\"                      : true,\n  \"box-shadow\"                   : true,\n  \"header-background-color\"      : #ccc,\n  \"header-color\"                 : null,\n  \"header-media-background-color\": black,\n  \"header-padding-y\"             : 0.25rem,\n  \"footer-border-top\"            : 1px solid #dfdfdf,  \n  \"footer-background-color\"      : #ccc,\n  \"footer-color\"                 : null,\n  \"footer-padding-y\"             : 0.25rem,\n  \"footer-padding-y-large\"       : 0.5rem,\n  \"tooltip-background-color\"     : white,\n  \"tooltip-color\"                : null,\n  \"tooltip-max-width\"            : 20rem,\n  \"tooltip-padding\"              : 0.5rem,\n  \"tooltip-width\"                : auto,\n  \"width\"                        : 15rem,\n  \"width-large\"                  : 30rem,\n  \"width-large-x\"                : 50rem\n  )",
          "scope": "default",
          "line": {
            "start": 64,
            "end": 95
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Dimension",
            "name": "arrow-size",
            "default": "16px",
            "description": "Size of the dropdown arrow."
          },
          {
            "type": "Boolean",
            "name": "arrow-box-shadow",
            "default": "true",
            "description": "When true the arrow will get the popover's box shadow. Note if the box shadow is not a list (for example custom property), the mask won't be calculated from the box-shadow (use arrow-box-shadow-extent to specify manually)"
          },
          {
            "type": "Number",
            "name": "arrow-box-shadow-extent",
            "default": "null",
            "description": "If set will determine the amount of overlap added to the arrow mask, else it's calculated automatically by the box-shadow option (can be used if box-shadow is custom property)"
          },
          {
            "type": "Color",
            "name": "background-color",
            "default": "white",
            "description": "Background color of the popover."
          },
          {
            "type": "Dimension",
            "name": "border-radius",
            "default": "6px",
            "description": "Border radius of the popover."
          },
          {
            "type": "Color",
            "name": "color",
            "default": "inherit",
            "description": "Text color of the popover."
          },
          {
            "type": "Dimension",
            "name": "max-width",
            "default": "90vw",
            "description": "Max width of the popover."
          },
          {
            "type": "Dimension",
            "name": "max-height",
            "default": "25rem",
            "description": "Max height of the popover."
          },
          {
            "type": "Dimension",
            "name": "padding",
            "default": "1rem",
            "description": "Padding of the popover."
          },
          {
            "type": "Dimension",
            "name": "padding-large",
            "default": "2rem",
            "description": "Padding of the popover if using \"--large\" or \"--large-x\" styling."
          },
          {
            "type": "Dimension",
            "name": "type-size",
            "default": "null",
            "description": "Font size of the popover."
          },
          {
            "type": "Number",
            "name": "z-index",
            "default": "true",
            "description": "z-index of the popover."
          },
          {
            "type": "CssValue",
            "name": "box-shadow",
            "default": "true",
            "description": "Box shadow of the popover."
          },
          {
            "type": "Color",
            "name": "header-background-color",
            "default": "#ccc",
            "description": "Background color of the popover header"
          },
          {
            "type": "Color",
            "name": "header-color",
            "default": "null",
            "description": "Text color for the header."
          },
          {
            "type": "Color",
            "name": "header-media-background-color",
            "default": "black",
            "description": "background color for header media."
          },
          {
            "type": "Dimension",
            "name": "header-padding-y",
            "default": "0.25rem",
            "description": "Vertical padding of the header."
          },
          {
            "type": "Color",
            "name": "footer-background-color",
            "default": "#ccc",
            "description": "Background color of the footer."
          },
          {
            "type": "Color",
            "name": "footer-border-top",
            "default": "1px solid #dfdfdf",
            "description": "Optional border used to separate the content from footer"
          },
          {
            "type": "Color",
            "name": "footer-color",
            "default": "null",
            "description": "Text color of the footer."
          },
          {
            "type": "Dimension",
            "name": "footer-padding-y",
            "default": "0.25rem",
            "description": "Vertical padding of the footer."
          },
          {
            "type": "Dimension",
            "name": "footer-padding-y-large",
            "default": "0.5rem",
            "description": "Vertical padding of the footer if using \"--large\" or \"--large-x\" styling."
          },
          {
            "type": "Color",
            "name": "tooltip-background-color",
            "default": "white",
            "description": "Background color of the tooltip."
          },
          {
            "type": "Color",
            "name": "tooltip-color",
            "default": "null",
            "description": "Font color of the tooltip."
          },
          {
            "type": "Dimension",
            "name": "tooltip-max-width",
            "default": "20rem",
            "description": "Max width of the tooltip."
          },
          {
            "type": "Dimension",
            "name": "tooltip-padding",
            "default": "0.5rem",
            "description": "Padding of the tooltip."
          },
          {
            "type": "Dimension",
            "name": "tooltip-width",
            "default": "auto",
            "description": "Width of the tooltip."
          },
          {
            "type": "Dimension",
            "name": "width",
            "default": "15rem",
            "description": "Width of the popover."
          },
          {
            "type": "Dimension",
            "name": "width-large",
            "default": "30rem",
            "description": "Width of the popover if using \"--large\"."
          },
          {
            "type": "Dimension",
            "name": "width-large-x",
            "default": "50rem",
            "description": "Width of the popover if using \"--large-x\"."
          }
        ],
        "group": [
          "popover"
        ],
        "access": "public",
        "file": {
          "path": "_popover.scss",
          "name": "_popover.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "popover",
        "path": "/sass/components/popover/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 97,
          "end": 100
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 102,
            "end": 104
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-popover-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "popover"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_popover.scss",
          "name": "_popover.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "popover",
        "path": "/sass/components/popover/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 106,
          "end": 109
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  $value: utils.require-map-get($config, $name, \"component-popover [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
          "line": {
            "start": 111,
            "end": 114
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-popover-get(\"property\");"
          }
        ],
        "group": [
          "popover"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_popover.scss",
          "name": "_popover.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "popover",
        "path": "/sass/components/popover/#mixin-styles",
        "description": "Prints component styles\n",
        "commentRange": {
          "start": 116,
          "end": 118
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"popover\");\n\n  @if (get(\"arrow-size\")) {\n    @include -arrow-styles();\n  }\n  // Default position is on the right of the container (Popper handles positioning)\n  #{ $prefix } {\n    display: none;\n    position: absolute;\n    z-index: get(\"z-index\") + 1;\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    width: cssvar.use-ulu(\"popover-width\", get(\"width\"));\n    max-width: min(cssvar.use-ulu(\"popover-max-width\", 100vw), get(\"max-width\"));\n    box-shadow: get(\"box-shadow\");\n    border-radius: get(\"border-radius\");\n    text-align: left;\n    @if (get(\"type-size\")) {\n      @include typography.size(get(\"type-size\"));\n    }\n    &.is-active {\n      display: block;\n    }\n  }\n  #{ $prefix }__inner,\n  #{ $prefix }__header,\n  #{ $prefix }__footer {\n    display: block;\n    border-radius: get(\"border-radius\");\n    position: relative;\n    z-index: 2; // Above arrow\n    flex: 0;\n  }\n  #{ $prefix }__inner {\n    overflow-y: auto;\n    max-height: get(\"max-height\");\n    padding: get(\"padding\");\n    flex: 1; // When used with footer\n  }\n  // Image, video above content\n  #{ $prefix }__header {\n    overflow: hidden;\n    padding: get(\"header-padding-y\") get(\"padding\");\n    color: color.get(get(\"header-color\"));\n    background-color: color.get(get(\"header-background-color\"));\n  }\n  #{ $prefix }__header--media {\n    padding: 0;\n    background-color: color.get(get(\"header-media-background-color\"));\n  }\n  #{ $prefix }__footer {\n    border-top: get(\"footer-border-top\");\n    padding: get(\"footer-padding-y\") get(\"padding\");\n    color: color.get(get(\"footer-color\"));\n    background-color: color.get(get(\"footer-background-color\"));\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  #{ $prefix }__header:has(+ #{ $prefix }__inner),\n  #{ $prefix }__header:has(+ #{ $prefix }__footer),\n  #{ $prefix }__inner:has(+ #{ $prefix }__footer) {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  // Modifiers\n  #{ $prefix }--tooltip {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"tooltip-width\"));\n    @include cssvar.declare-ulu(\"popover-max-width\", get(\"tooltip-max-width\"));\n    color: color.get(get(\"tooltip-color\"));\n    background-color: color.get(get(\"tooltip-background-color\"));\n    pointer-events: none;\n    #{ $prefix }__inner {\n      padding: get(\"tooltip-padding\");\n      min-height: 0;\n    }\n  }\n  // For fixed strategy\n  #{ $prefix }--fixed {\n    position: fixed;\n  }\n  // Allow popover to grow/shrink to content's size\n  #{ $prefix }--fit {\n    @include cssvar.declare-ulu(\"popover-width\", max-content);\n  }\n  \n  #{ $prefix }--large {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large\"));\n  }\n  #{ $prefix }--large-x {\n    @include cssvar.declare-ulu(\"popover-width\", get(\"width-large-x\"));\n  }\n  #{ $prefix }--large,\n  #{ $prefix }--large-x {\n    #{ $prefix }__inner {\n      padding: get(\"padding-large\");\n    }\n    #{ $prefix }__footer {\n      padding: get(\"footer-padding-y-large\") get(\"padding-large\");\n    }\n  }\n  // If you want to do something custom (and have it touch the edges)\n  #{ $prefix }--no-padding {\n    #{ $prefix }__inner {\n      padding: 0;\n    }\n  }\n  #{ $prefix }--prints {\n    @media print {\n      display: block;\n      position: static;\n      width: auto;\n      box-shadow: none;\n      max-width: none;\n      #{ $prefix }__arrow  {\n        display: none;\n      }\n    }\n  }\n",
          "line": {
            "start": 120,
            "end": 240
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-popover-styles();"
          }
        ],
        "group": [
          "popover"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_popover.scss",
          "name": "_popover.scss"
        }
      }
    ],
    "progress-bar": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "progress-bar",
        "path": "/sass/components/progress-bar/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 28,
          "end": 50
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"margin\" : (0 0 0.5em 0),\n  \"header-gap\" : 0.25em,\n  \"line-height\" : true,\n  \"value-color\" : \"type-tertiary\",\n  \"value-margin\" : 0.5em,\n  \"value-font-weight\" : true,\n  \"value-margin-deficit\" : 0.3em,\n  \"value-color-deficit\" : \"danger\",\n  \"bar-height\" : 12px,\n  \"bar-color\" : \"accent\",\n  \"bar-color-deficit\" : \"danger\",\n  \"icon-color\" : \"type-tertiary\",\n  \"icon-color-deficit\" : \"danger\",\n  \"track-color\" : \"placeholder-background-alt\",\n  \"track-margin\" : (0.1em 0),\n  \"rounded-border-radius\" : 50px,\n  \"animation-duration\" : 200ms,\n  \"animation-timing\" : ease,\n  \"animation-initial-duration\" : 500ms,\n  \"animation-initial-timing\" : ease-in,\n  \"animation-indeterminate-duration\" : 2.5s\n)",
          "scope": "default",
          "line": {
            "start": 52,
            "end": 74
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Dimension",
            "name": "header-gap",
            "default": "0.25em",
            "description": "Margin/gap for the icon/value"
          },
          {
            "type": "List",
            "name": "margin",
            "default": "(0 0 0.5em 0)",
            "description": "Margin for the progress bar."
          },
          {
            "type": "Boolean",
            "name": "line-height",
            "default": "true",
            "description": "Line height for the progress bar. If true, falls back to typography's `line-height-dense`."
          },
          {
            "type": "Color",
            "name": "value-color",
            "default": "\"type-tertiary\"",
            "description": "Color of the value text."
          },
          {
            "type": "Dimension",
            "name": "value-margin",
            "default": "0.5em",
            "description": "Margin for the value text."
          },
          {
            "type": "Boolean",
            "name": "value-font-weight",
            "default": "true",
            "description": "Font weight for the value text. If true, falls back to typography's `font-weight-light`."
          },
          {
            "type": "Dimension",
            "name": "value-margin-deficit",
            "default": "0.3em",
            "description": "Margin for the deficit value text."
          },
          {
            "type": "Color",
            "name": "value-color-deficit",
            "default": "\"danger\"",
            "description": "Color of the deficit value text."
          },
          {
            "type": "Dimension",
            "name": "bar-height",
            "default": "12px",
            "description": "Height of the progress bar."
          },
          {
            "type": "Color",
            "name": "bar-color",
            "default": "rgb(80, 80, 171)",
            "description": "Color of the progress bar."
          },
          {
            "type": "Color",
            "name": "bar-color-deficit",
            "default": "\"danger\"",
            "description": "Color of the deficit portion of the progress bar."
          },
          {
            "type": "Color",
            "name": "icon-color",
            "default": "\"type-tertiary\"",
            "description": "Color of the icon."
          },
          {
            "type": "Color",
            "name": "icon-color-deficit",
            "default": "\"danger\"",
            "description": "Color of the icon in a deficit state."
          },
          {
            "type": "Color",
            "name": "track-color",
            "default": "#ccc",
            "description": "Color of the progress bar track."
          },
          {
            "type": "List",
            "name": "track-margin",
            "default": "(0.1em 0)",
            "description": "Margin for the progress bar track."
          },
          {
            "type": "CssValue",
            "name": "rounded-border-radius",
            "default": "100vmax",
            "description": "Border radius for the rounded modifier."
          },
          {
            "type": "Time",
            "name": "animation-duration",
            "default": "200ms",
            "description": "Duration of the width transition animation."
          },
          {
            "type": "CssValue",
            "name": "animation-timing",
            "default": "ease",
            "description": "Timing function for the width transition animation."
          },
          {
            "type": "Time",
            "name": "animation-initial-duration",
            "default": "500ms",
            "description": "Duration of the initial fill animation."
          },
          {
            "type": "CssValue",
            "name": "animation-initial-timing",
            "default": "ease-in",
            "description": "Timing function for the initial fill animation."
          },
          {
            "type": "Time",
            "name": "animation-indeterminate-duration",
            "default": "2.5s",
            "description": "Duration of the indeterminate loading animation."
          }
        ],
        "group": [
          "progress-bar"
        ],
        "access": "public",
        "file": {
          "path": "_progress-bar.scss",
          "name": "_progress-bar.scss"
        }
      },
      {
        "id": "variable-styles",
        "title": "$styles",
        "groupName": "progress-bar",
        "path": "/sass/components/progress-bar/#variable-styles",
        "description": "",
        "commentRange": {
          "start": 76,
          "end": 79
        },
        "context": {
          "type": "variable",
          "name": "styles",
          "value": "(\n  \"success\" : (\n    \"bar-color\" : \"success\",\n    \"icon-color\" : \"success\"\n  ),\n  \"warning\" : (\n    \"bar-color\" : \"warning\",\n    \"icon-color\" : \"warning\"\n  ),\n  \"danger\" : (\n    \"bar-color\" : \"danger\",\n    \"icon-color\" : \"danger\"\n  ),\n  \"small\" : (\n    \"bar-height\" : 8px\n  ),\n  \"loader\" : (\n    \"bar-height\" : 4px,\n    \"track-color\" : transparent,\n  )\n)",
          "scope": "default",
          "line": {
            "start": 80,
            "end": 100
          }
        },
        "type": "Map\nThis is the map of styles (variations in progress bar types)\n- Each style becomes the modifier and accepts (\"bar-color\", \"bar-height\", \"track-color\")\n- Use this to match whatever progress system(s) your creating",
        "group": [
          "progress-bar"
        ],
        "access": "public",
        "file": {
          "path": "_progress-bar.scss",
          "name": "_progress-bar.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "progress-bar",
        "path": "/sass/components/progress-bar/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 102,
          "end": 105
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 107,
            "end": 109
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-progress-bar-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "progress-bar"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_progress-bar.scss",
          "name": "_progress-bar.scss"
        }
      },
      {
        "id": "mixin-set-styles",
        "title": "set-styles()",
        "groupName": "progress-bar",
        "path": "/sass/components/progress-bar/#mixin-set-styles",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 111,
          "end": 114
        },
        "context": {
          "type": "mixin",
          "name": "set-styles",
          "code": "\n  $styles: map.merge($styles, $changes) !global;\n",
          "line": {
            "start": 116,
            "end": 118
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-progress-bar-set-styles(( \"small\" : ( \"bar-height\" : 8px ) ));"
          }
        ],
        "group": [
          "progress-bar"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "styles"
          },
          {
            "type": "variable",
            "name": "styles"
          }
        ],
        "file": {
          "path": "_progress-bar.scss",
          "name": "_progress-bar.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "progress-bar",
        "path": "/sass/components/progress-bar/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 120,
          "end": 123
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  $value: utils.require-map-get($config, $name, \"progress-bar [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
          "line": {
            "start": 125,
            "end": 128
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-progress-bar-get(\"property\");"
          }
        ],
        "group": [
          "progress-bar"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_progress-bar.scss",
          "name": "_progress-bar.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "progress-bar",
        "path": "/sass/components/progress-bar/#mixin-styles",
        "description": "Prints component styles\n",
        "commentRange": {
          "start": 130,
          "end": 133
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"progress-bar\");\n  \n  #{ $prefix } {\n    line-height: get(\"line-height\");\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__header {\n    display: flex;\n    align-items: flex-end;\n  }\n  #{ $prefix }__value {\n    font-weight: get(\"value-font-weight\");\n    color: color.get(get(\"value-color\"));\n  }\n  #{ $prefix }__icon {\n    color: color.get(get(\"icon-color\"));\n  }\n  #{ $prefix }__icon,\n  #{ $prefix }__header #{ $prefix }__value {\n    margin-left: auto;\n    padding-left: get(\"header-gap\");\n  }\n  \n  #{ $prefix }__track {\n    position: relative; // For indeterminate animation\n    margin: get(\"track-margin\");\n    display: flex;\n    width: 100%;\n    height: get(\"bar-height\");\n    overflow: hidden;\n    background-color: color.get(get(\"track-color\"));\n\n    // Remove margins if no children (values/header)\n    &:first-child {\n      margin-top: 0;\n    }\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n  #{ $prefix }__bar {\n    display: flex;\n    height: 100%;\n    // This is the animation when the component is living in the page\n    transition: width get(\"animation-duration\") get(\"animation-timing\"); \n    // This is the initial animation of the bar within itself (ie. filling up)\n    &:before {\n      content: '';\n      display: block;\n      width: 100%;\n      background-color: color.get(get(\"bar-color\"));\n      transform-origin: left center;\n      animation: ulu-progress-bar get(\"animation-initial-duration\") forwards get(\"animation-initial-timing\");\n    }\n  }\n  #{ $prefix }--deficit {\n    #{ $prefix }__icon {\n      color: color.get(get(\"icon-color-deficit\"));\n    }\n  }\n  #{ $prefix }__bar--deficit {\n    align-items: flex-end;\n    margin-left: auto;\n    background-color: color.get(get(\"bar-color-deficit\"));\n  }\n  #{ $prefix }__values {\n    display: flex;\n  }\n  #{ $prefix }__values #{ $prefix }__value:not(:last-child) {\n    margin-right: get(\"value-margin\");\n  }\n  #{ $prefix }__value--deficit {\n    margin-left: auto;\n    margin-right: get(\"value-margin-deficit\");\n    color: color.get(get(\"value-color-deficit\"));\n    & + #{ $prefix }__value--total {\n      margin-left: 0;\n    }\n  }\n  #{ $prefix }__value--total {\n    margin-left: auto;\n    margin-right: 0;\n  }\n  \n  @each $name, $props in $styles {\n    #{ $prefix }--#{ $name } {\n      margin: map.get($props, \"margin\");\n      #{ $prefix }__track {\n        height: map.get($props, \"bar-height\");\n        margin: map.get($props, \"track-margin\");\n      }\n      #{ $prefix }__bar:before {\n        background-color: color.get(map.get($props, \"bar-color\"));\n      }\n      #{ $prefix }__track {\n        background-color: color.get(map.get($props, \"track-color\"));\n      }\n      #{ $prefix }__icon {\n        color: color.get(map.get($props, \"icon-color\"));\n      }\n    }\n  }\n\n  #{ $prefix }--rounded { \n    #{ $prefix }__track {\n      border-radius: get(\"rounded-border-radius\");\n    }\n  }\n  // For Site Loading (Async Content, not charting/visualization)\n  #{ $prefix }--indeterminate {\n    #{ $prefix }__bar {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30%;\n      animation: ulu-progress-bar-indeterminate get(\"animation-indeterminate-duration\") linear infinite;\n    }\n    // &#{ $prefix }--loaded {\n    //   #{ $prefix }__bar {\n    //     display: none;\n    //   }\n    // }\n  }\n\n  @keyframes ulu-progress-bar {\n    from {\n      transform: scaleX(0);\n    }\n    to {\n      transform: scaleX(1);\n    }\n  }\n\n  @keyframes ulu-progress-bar-indeterminate {\n    0% {\n      left: -100%;\n    }\n    50% {\n      left: 100%;\n    }\n    100% {\n      left: -100%;\n    }\n  }\n",
          "line": {
            "start": 135,
            "end": 280
          }
        },
        "demo": {
          "link": "progress-bar",
          "content": null
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-progress-bar-styles();"
          }
        ],
        "group": [
          "progress-bar"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "variable",
            "name": "styles"
          }
        ],
        "file": {
          "path": "_progress-bar.scss",
          "name": "_progress-bar.scss"
        }
      }
    ],
    "progress-circle": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "progress-circle",
        "path": "/sass/components/progress-circle/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 12,
          "end": 29
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"size\": 100px,\n  \"viewbox-size\": 32,\n  \"stroke-width\": 10,\n  \"color-track\": \"placeholder-background-alt\",\n  \"color-progress\": \"accent\",\n  \"color-mask\": white,\n  \"color-mask-pie\": rgba(255, 255, 255, 0.4),\n  \"value-color\": \"type\",\n  \"value-color-outside\": \"type-tertiary\",\n  \"value-margin-outside\" : (0.1em 0.35em),\n  \"transition-duration\" : 300ms,\n  \"animation-duration\" : 1s,\n  \"animation-delay\" : 2s,\n  \"animation-timing\" : ease-in,\n  \"status-colors\": (\n    \"danger\": \"danger\",\n    \"warning\": \"warning\",\n    \"success\": \"success\",\n  ),\n  \"sizes\": (\n    \"small\" : (\n      \"size\": 40px,\n      \"stroke-width\": 13,\n    )\n  )\n)",
          "scope": "default",
          "line": {
            "start": 31,
            "end": 57
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Dimension",
            "name": "size",
            "default": "100px",
            "description": "The width and height of the chart."
          },
          {
            "type": "Number",
            "name": "viewbox-size",
            "default": "32",
            "description": "The size of the SVG viewbox. Used to calculate mask radius."
          },
          {
            "type": "Number",
            "name": "stroke-width",
            "default": "10",
            "description": "The width of the progress circle's stroke."
          },
          {
            "type": "Color",
            "name": "color-track",
            "default": "\"placeholder-background-alt\"",
            "description": "The color of the inactive track. Can be a theme color name or a CSS variable."
          },
          {
            "type": "Color",
            "name": "color-progress",
            "default": "\"indicator\"",
            "description": "The color of the progress stroke in a neutral state. Can be a theme color name or a CSS variable."
          },
          {
            "type": "Color",
            "name": "color-mask",
            "default": "white",
            "description": "The color of the center mask that creates the donut hole. Can be a theme color name or a CSS variable."
          },
          {
            "type": "Color",
            "name": "color-mask-pie",
            "default": "rgba(255, 255, 255, 0.5)",
            "description": "The mask color when using the pie style modifier."
          },
          {
            "type": "Color",
            "name": "value-color",
            "default": "\"type\"",
            "description": "The theme color name for the percentage text inside the circle."
          },
          {
            "type": "Color",
            "name": "value-color-outside",
            "default": "\"type-tertiary\"",
            "description": "The theme color name for the percentage text when displayed outside the circle."
          },
          {
            "type": "Dimension | List",
            "name": "value-margin-outside",
            "default": "(0.1em 0.35em)",
            "description": "The margin for the outside value text."
          },
          {
            "type": "Time",
            "name": "transition-duration",
            "default": "300ms",
            "description": "The duration for the stroke transition animation (when the component is updating already in the page)"
          },
          {
            "type": "Time",
            "name": "animation-duration",
            "default": "1s",
            "description": "The duration for the stroke animation (relies on template having a custom build animation per pie based on dash array). This is used for initial animations"
          },
          {
            "type": "Time",
            "name": "animation-delay",
            "default": "2s",
            "description": "The delay for the animation"
          },
          {
            "type": "Time",
            "name": "animation-timing",
            "default": "ease-in",
            "description": "Timing function for animation"
          },
          {
            "type": "Map",
            "name": "status-colors",
            "description": "A map of status names to their corresponding colors (e.g., \"low\": \"warning\")."
          },
          {
            "type": "Map",
            "name": "sizes",
            "description": "A map of size variations. Each key is a modifier name (e.g., \"small\") and the value is a map with `size` and `stroke-width` properties."
          }
        ],
        "group": [
          "progress-circle"
        ],
        "access": "public",
        "file": {
          "path": "_progress-circle.scss",
          "name": "_progress-circle.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "progress-circle",
        "path": "/sass/components/progress-circle/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 59,
          "end": 60
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 61,
            "end": 63
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "group": [
          "progress-circle"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_progress-circle.scss",
          "name": "_progress-circle.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "progress-circle",
        "path": "/sass/components/progress-circle/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 65,
          "end": 66
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"progress-circle [config]\");\n",
          "line": {
            "start": 67,
            "end": 69
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "group": [
          "progress-circle"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_progress-circle.scss",
          "name": "_progress-circle.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "progress-circle",
        "path": "/sass/components/progress-circle/#mixin-styles",
        "description": "Prints component styles\n",
        "commentRange": {
          "start": 71,
          "end": 72
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"progress-circle\");\n\n  #{ $prefix } {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    --ulu-progress-circle-stroke-width: #{ get(\"stroke-width\") };\n  }\n  #{ $prefix }__chart {\n    position: relative;\n    line-height: 1;\n  }\n  #{ $prefix }__chart-value {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    color: color.get(get(\"value-color\"));\n    text-shadow: none;\n  }\n  #{ $prefix }__chart-svg {\n    width: get(\"size\");\n    height: get(\"size\");\n    transform: rotate(-90deg);\n    border-radius: 50%;\n  }\n  #{ $prefix }__chart-track {\n    fill: transparent;\n    stroke: color.get(get(\"color-track\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n  }\n  #{ $prefix }__chart-pie {\n    fill: transparent;\n    stroke: color.get(get(\"color-progress\"));\n    stroke-width: var(--ulu-progress-circle-stroke-width);\n    stroke-dasharray: 0 100;\n    will-change: stroke-dasharray;\n    // If value is changing\n    transition: stroke get(\"transition-duration\"); \n    // For in template composed initial animation\n    animation-duration: get(\"animation-duration\"); \n    animation-delay: get(\"animation-delay\"); \n    animation-timing-function: get(\"animation-timing\");\n  }\n  #{ $prefix }__chart-mask {\n    fill: color.get(get(\"color-mask\"));\n    r: calc( (get(\"viewbox-size\") / 2) - (var(--ulu-progress-circle-stroke-width) / 2) );\n  }\n  #{ $prefix }__value {\n    color: color.get(get(\"value-color-outside\"));\n    margin: get(\"value-margin-outside\");\n    font-weight: normal;\n    line-height: 1;\n  }\n\n  #{ $prefix }--outside {\n    flex-direction: row;\n    justify-content: center;\n    flex-wrap: wrap;\n  }\n  #{ $prefix }--outside-below {\n    display: block;\n  }\n  #{ $prefix }--pie {\n    // Note do not adjust the custom property for this since we want the mask to still be sized correctly\n    #{ $prefix }__chart-pie {\n      stroke-width: get(\"viewbox-size\"); // As large as the svg (so it fills the circle)\n    }\n    #{ $prefix }__chart-track {\n      fill: color.get(get(\"color-track\"));\n    }\n    #{ $prefix }__chart-mask {\n      fill: color.get(get(\"color-mask-pie\"));\n    }\n  }\n  #{ $prefix }--no-mask {\n    #{ $prefix }__chart-mask {\n      display: none;\n    }\n  }\n\n\n  @each $name, $props in get(\"sizes\") {\n    #{ $prefix }--#{ $name } {\n      --ulu-progress-circle-stroke-width: #{map.get($props, \"stroke-width\")};\n      #{ $prefix }__chart-svg {\n        width: map.get($props, \"size\");\n        height: map.get($props, \"size\");\n      }\n    }\n  }\n  @each $name, $color in get(\"status-colors\") {\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__chart-pie {\n        stroke: color.get($color);\n      }\n    }\n  }\n\n  \n",
          "line": {
            "start": 73,
            "end": 175
          }
        },
        "demo": {
          "link": "progress-circle",
          "content": null
        },
        "group": [
          "progress-circle"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_progress-circle.scss",
          "name": "_progress-circle.scss"
        }
      }
    ],
    "pull-quote": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "pull-quote",
        "path": "/sass/components/pull-quote/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 22,
          "end": 35
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"body-line-height\" : true,\n  \"image-margin-bottom\" : 1rem,\n  \"image-margin-top\" : 2.5rem,\n  \"name-margin-bottom\" : 1rem,\n  \"padding-y\" : 2em,\n  \"title-font-style\" : italic,\n\n  \"quote-mark-character\" : \"\\201c\",\n  \"quote-mark-color\" : null,\n  \"quote-mark-font-family\" : \"Georgia\",\n  \"quote-mark-font-size\" : 3.75em,\n  \"quote-mark-enabled\" : true,\n  \"quote-mark-line-height\" : 0.35,\n)",
          "scope": "default",
          "line": {
            "start": 37,
            "end": 51
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Number",
            "name": "body-line-height",
            "default": "true"
          },
          {
            "type": "Dimension",
            "name": "image-margin-bottom",
            "default": "1rem"
          },
          {
            "type": "Dimension",
            "name": "image-margin-top",
            "default": "2.5rem"
          },
          {
            "type": "Dimension",
            "name": "name-margin-bottom",
            "default": "1rem"
          },
          {
            "type": "Dimension",
            "name": "padding-y",
            "default": "2em"
          },
          {
            "type": "CssValue",
            "name": "title-font-style",
            "default": "italic"
          },
          {
            "type": "String",
            "name": "quote-mark-character",
            "default": "\"\\201c\""
          },
          {
            "type": "Color",
            "name": "quote-mark-color",
            "default": "null"
          },
          {
            "type": "String",
            "name": "quote-mark-font-family",
            "default": "\"Georgia\""
          },
          {
            "type": "Dimension",
            "name": "quote-mark-font-size",
            "default": "3.75em"
          },
          {
            "type": "Boolean",
            "name": "quote-mark-enabled",
            "default": "true"
          },
          {
            "type": "Number",
            "name": "quote-mark-line-height",
            "default": "0.35"
          }
        ],
        "group": [
          "pull-quote"
        ],
        "access": "public",
        "file": {
          "path": "_pull-quote.scss",
          "name": "_pull-quote.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "pull-quote",
        "path": "/sass/components/pull-quote/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 53,
          "end": 56
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 58,
            "end": 60
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-pull-quote-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "pull-quote"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_pull-quote.scss",
          "name": "_pull-quote.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "pull-quote",
        "path": "/sass/components/pull-quote/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 62,
          "end": 65
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  $value: utils.require-map-get($config, $name, \"pull-quote [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
          "line": {
            "start": 67,
            "end": 70
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-pull-quote-get(\"property\");"
          }
        ],
        "group": [
          "pull-quote"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_pull-quote.scss",
          "name": "_pull-quote.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "pull-quote",
        "path": "/sass/components/pull-quote/#mixin-styles",
        "description": "Prints component styles\n",
        "commentRange": {
          "start": 72,
          "end": 74
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"pull-quote\");\n\n  #{ $prefix } {\n    padding: get(\"padding-y\") 0;\n    text-align: center;\n  }\n  #{ $prefix }__body {\n    line-height: get(\"body-line-height\");\n    @if (get(\"quote-mark-enabled\")) {\n      &::before {\n        display: block;\n        position: relative;\n        // content: open-quote;\n        content: get(\"quote-mark-character\");\n        font-family: get(\"quote-mark-font-family\");\n        color: color.get(get(\"quote-mark-color\"));\n        font-size: get(\"quote-mark-font-size\");\n        margin: 0 auto;\n        line-height: get(\"quote-mark-line-height\");\n      }\n    }\n  }\n  #{ $prefix }__author-name {\n    display: block;\n    margin-top: get(\"name-margin-bottom\");\n  }\n  #{ $prefix }__author-title {\n    display: block;\n    font-style: get(\"title-font-style\");\n  }\n  #{ $prefix }__author-image {\n    margin: get(\"image-margin-top\") auto get(\"image-margin-bottom\") auto;\n    width: min-content;\n  }\n",
          "line": {
            "start": 76,
            "end": 111
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-pull-quote-styles();"
          }
        ],
        "group": [
          "pull-quote"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_pull-quote.scss",
          "name": "_pull-quote.scss"
        }
      }
    ],
    "rail": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "rail",
        "path": "/sass/components/rail/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 28,
          "end": 33
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"gap\" : 1em,\n  \"margin-bottom\" : 1.5em,\n  \"separator\" : true,\n  \"gap-modifiers\": (\n    \"small\" : 0.5em,\n    \"none\" : 0,\n    \"large\" : 2em\n  ),\n  \"rule-size\" : 1px,\n  \"rule-color\" : \"rule\",\n  \"rule-margin\" : 1em\n)",
          "scope": "default",
          "line": {
            "start": 35,
            "end": 47
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Dimension",
            "name": "gap",
            "default": "1em",
            "description": "The default space between items in the rail"
          },
          {
            "type": "Map",
            "name": "gap-modifiers",
            "default": "(\"small\" : 0.5em, \"large\" : 2em )",
            "description": "Alternate gaps (use child modifiers .rail__item--gap-[name], these apply gap changes between the item and the item before it"
          },
          {
            "type": "Dimension",
            "name": "margin-bottom",
            "default": "1em",
            "description": "The default space after rail"
          },
          {
            "type": "CssValue",
            "name": "separator",
            "default": "true",
            "description": "Pass border property for separator, defaults to element rule style light"
          }
        ],
        "group": [
          "rail"
        ],
        "access": "public",
        "file": {
          "path": "_rail.scss",
          "name": "_rail.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "rail",
        "path": "/sass/components/rail/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 49,
          "end": 52
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 54,
            "end": 56
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-rail-set(( \"gap\" : 1.5em ));"
          }
        ],
        "group": [
          "rail"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_rail.scss",
          "name": "_rail.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "rail",
        "path": "/sass/components/rail/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 58,
          "end": 61
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  $value: utils.require-map-get($config, $name, \"rail [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
          "line": {
            "start": 63,
            "end": 66
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-rail-get(\"gap\");"
          }
        ],
        "group": [
          "rail"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_rail.scss",
          "name": "_rail.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "rail",
        "path": "/sass/components/rail/#mixin-styles",
        "description": "Prints component styles\n",
        "commentRange": {
          "start": 68,
          "end": 70
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"rail\"); \n  $gap: get(\"gap\");\n\n  #{ $prefix } {\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n    gap: $gap;\n    margin-bottom: get(\"margin-bottom\");\n    max-width: 100%;\n  }\n  #{ $prefix }--rule {\n    border-bottom: get(\"rule-size\") solid color.get(get(\"rule-color\"));\n    padding-bottom: get(\"rule-margin\");\n  }\n\n  // Modifiers\n  // - Note: Originally had mods for each type of flexbox layout\n  //   simplified to just agnostic naming and only what is currently needed\n  //   can update this in the future to add more alignment options if \n  //   use cases come up\n\n  #{ $prefix }--justified { \n    justify-content: space-between;\n  }\n  #{ $prefix }--baseline {\n    align-items: baseline;\n  }\n  #{ $prefix }--nowrap {\n    flex-wrap: nowrap;\n    overflow-x: auto;\n  }\n\n  // Item level modifiers\n  #{ $prefix }__item--pull {\n    margin-inline-start: auto;\n  }\n  #{ $prefix }__item--separator {\n    border-inline-start: get(\"separator\");\n    padding-inline-start: $gap;\n  }\n\n  @each $name, $value in get(\"gap-modifiers\") {\n\n    $calc-gap: $value - $gap;\n    \n    #{ $prefix }__item--gap-#{ $name } {\n      margin-inline-start: $calc-gap;\n\n      &#{ $prefix }__item--separator {\n        padding-inline-start: $value;\n      }\n    }\n  }\n",
          "line": {
            "start": 72,
            "end": 127
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-rail-styles();"
          }
        ],
        "group": [
          "rail"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_rail.scss",
          "name": "_rail.scss"
        }
      }
    ],
    "ratio-box": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "ratio-box",
        "path": "/sass/components/ratio-box/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 13,
          "end": 16
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"size\" : list.slash(4, 3),\n  \"sizes\" : (\n    \"16x9\" : list.slash(16, 9),\n    \"9x16\" : list.slash(9, 16),\n    \"3x4\" : list.slash(3, 4)\n  )\n)",
          "scope": "default",
          "line": {
            "start": 18,
            "end": 25
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "String|Number",
            "name": "size",
            "default": "\"4/3\"",
            "description": "Default aspect ratio (can be string like \"16/9\" or legacy percentage value)"
          },
          {
            "type": "Map",
            "name": "sizes",
            "default": "Map",
            "description": "Other ratios to add (apply with modifier class)"
          }
        ],
        "group": [
          "ratio-box"
        ],
        "access": "public",
        "file": {
          "path": "_ratio-box.scss",
          "name": "_ratio-box.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "ratio-box",
        "path": "/sass/components/ratio-box/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 27,
          "end": 30
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 32,
            "end": 34
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-ratio-box-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "ratio-box"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_ratio-box.scss",
          "name": "_ratio-box.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "ratio-box",
        "path": "/sass/components/ratio-box/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 36,
          "end": 39
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"ratio-box [config]\");\n",
          "line": {
            "start": 41,
            "end": 43
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-ratio-box-get(\"property\");"
          }
        ],
        "group": [
          "ratio-box"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_ratio-box.scss",
          "name": "_ratio-box.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "ratio-box",
        "path": "/sass/components/ratio-box/#mixin-styles",
        "description": "Prints component styles\n",
        "commentRange": {
          "start": 45,
          "end": 47
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  .ratio-box {\n    position: relative;\n    aspect-ratio: utils.normalize-aspect-ratio(get(\"size\"));\n  }\n  .ratio-box__content {\n    @include layout.absolute-fill(true);\n  }\n  @each $name, $size in get(\"sizes\") {\n    .ratio-box--#{ $name } {\n      aspect-ratio: utils.normalize-aspect-ratio($size);\n    }\n  }\n",
          "line": {
            "start": 49,
            "end": 62
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-ratio-box-styles();"
          }
        ],
        "group": [
          "ratio-box"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_ratio-box.scss",
          "name": "_ratio-box.scss"
        }
      }
    ],
    "rule": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "rule",
        "path": "/sass/components/rule/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 10,
          "end": 14
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"short-border-width\" : 4px,\n  \"short-modifiers\" : false,\n  \"short-width\" : 2.75rem,\n)",
          "scope": "default",
          "line": {
            "start": 16,
            "end": 20
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Dimension",
            "name": "short-border-width",
            "default": "4px",
            "description": "Short rule width of border"
          },
          {
            "type": "Object",
            "name": "short-modifiers",
            "default": "false",
            "description": "Objects to adjust the styles of different short rule styles."
          },
          {
            "type": "Dimension",
            "name": "short-width",
            "default": "2.75rem",
            "description": "Short rule width (like an inline rule, normally used above headings), Setting this to false will disable output"
          }
        ],
        "group": [
          "rule"
        ],
        "access": "public",
        "file": {
          "path": "_rule.scss",
          "name": "_rule.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "rule",
        "path": "/sass/components/rule/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 22,
          "end": 25
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 27,
            "end": 29
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-rule-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "rule"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_rule.scss",
          "name": "_rule.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "rule",
        "path": "/sass/components/rule/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 31,
          "end": 34
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"rule [config]\");\n",
          "line": {
            "start": 36,
            "end": 38
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-rule-get(\"property\");"
          }
        ],
        "group": [
          "rule"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_rule.scss",
          "name": "_rule.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "rule",
        "path": "/sass/components/rule/#mixin-styles",
        "description": "Output styles\n",
        "commentRange": {
          "start": 40,
          "end": 42
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n\n  $class: selector.class(\"rule\");\n  \n  #{ $class } {\n    @include element.rule();\n  }\n  #{ $class }--content-on-top {\n    position: relative;\n    > * {\n      background-color: white; // User woud need to specific per context needed or something\n      position: absolute;\n      top: 50%;\n      left: 50%;\n      transform: translate(-50%, -50%);\n      max-width: 100%;\n      padding: 0.5em;\n      margin: 0;\n    }\n  }\n\n  // Output user's styles presets\n  @each $name, $value in element.$rule-styles {\n    #{ $class }--#{ $name } {\n      @include element.rule-style($name);\n    }\n  }\n  // Output user's margin presets\n  @each $name, $value in element.$rule-margins {\n    #{ $class }--margin-#{ $name } {\n      @include element.rule-margin($name);\n    }\n  }\n\n  // Meant to be user by itself without content\n  $short-width: get(\"short-width\");\n  @if ($short-width) {\n    #{ $class }--short {\n      width: $short-width;\n      max-width: 100%;\n      border-bottom-width: get(\"short-border-width\");\n      display: inline-block;\n    }\n    @if get(\"short-modifiers\") {\n      @each $mod, $opts in get(\"short-modifiers\") {\n        #{ $class }--short {\n          width: map.get($opts, \"width\");\n          border-bottom-width: map.get($opts, \"border-width\");\n        }\n      }\n    }\n  }\n",
          "line": {
            "start": 44,
            "end": 96
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-rule-styles();"
          }
        ],
        "group": [
          "rule"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_rule.scss",
          "name": "_rule.scss"
        }
      }
    ],
    "rule-inline": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "rule-inline",
        "path": "/sass/components/rule-inline/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 12,
          "end": 17
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"margin\": 1em,\n  \"min-height\": 1em,\n  \"color\" : \"rule\",\n  \"width\" : 1px\n)",
          "scope": "default",
          "line": {
            "start": 19,
            "end": 24
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Dimension",
            "name": "min-height",
            "default": "1em",
            "description": "Min height for rule."
          },
          {
            "type": "Dimension",
            "name": "margin",
            "default": "1em",
            "description": "Top and bottom margin for rule."
          },
          {
            "type": "Color",
            "name": "color",
            "default": "\"rule\"",
            "description": "Color for rule"
          },
          {
            "type": "Color",
            "name": "width",
            "default": "1px",
            "description": "Width for rule"
          }
        ],
        "group": [
          "rule-inline"
        ],
        "access": "public",
        "file": {
          "path": "_rule-inline.scss",
          "name": "_rule-inline.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "rule-inline",
        "path": "/sass/components/rule-inline/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 26,
          "end": 29
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 31,
            "end": 33
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-rule-inline-rule-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "rule-inline"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_rule-inline.scss",
          "name": "_rule-inline.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "rule-inline",
        "path": "/sass/components/rule-inline/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 35,
          "end": 38
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"rule-inline [config]\");\n",
          "line": {
            "start": 40,
            "end": 42
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-rule-inline-rule-get(\"property\");"
          }
        ],
        "group": [
          "rule-inline"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_rule-inline.scss",
          "name": "_rule-inline.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "rule-inline",
        "path": "/sass/components/rule-inline/#mixin-styles",
        "description": "Prints adaptive spacing component styles\n",
        "commentRange": {
          "start": 44,
          "end": 46
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"rule-inline\");\n\n  #{ $prefix } {\n    display: inline-block;\n    border-right: get(\"width\") solid color.get(get(\"color\"));\n    min-height: get(\"min-height\");\n    vertical-align: middle;\n    margin: 0 get(\"margin\");\n    flex-grow: 0;\n    align-self: stretch;\n  }\n",
          "line": {
            "start": 48,
            "end": 60
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-rule-inline-styles();"
          }
        ],
        "group": [
          "rule-inline"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_rule-inline.scss",
          "name": "_rule-inline.scss"
        }
      }
    ],
    "scroll-slider": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "scroll-slider",
        "path": "/sass/components/scroll-slider/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 15,
          "end": 36
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"background-color\" : false,\n  \"container\" : \"container\",\n  \"containers\" : (\"container\",),\n  \"margin-bottom\" : 3rem,\n  \"margin-top\" : 1rem,\n  \"padding-bottom\" : 0,\n  \"padding-top\" : 0,\n  \"prefix\": \"scroll-slider\",\n  \"button-border\" : 2px solid white,\n  \"button-border-color-hover\" : white,\n  \"button-border-radius\" : 50%,\n  \"button-box-shadow\" : element.get(\"box-shadow\"),\n  \"button-color\" : color.get(\"type\"),\n  \"button-color-hover\" : color.get(\"link\"),\n  \"button-font-size\" : 1.35rem,\n  \"button-icon-offset-x\" : false,\n  \"button-icon-offset-y\" : false,\n  \"button-indent\" : 1.5rem,\n  \"button-indent-small\" : 0.5rem,\n  \"button-size\" : 3rem,\n)",
          "scope": "default",
          "line": {
            "start": 38,
            "end": 59
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Color",
            "name": "background-color",
            "default": "false"
          },
          {
            "type": "String",
            "name": "container",
            "default": "\"container\""
          },
          {
            "type": "List",
            "name": "containers",
            "default": "(\"container\",)"
          },
          {
            "type": "Dimension",
            "name": "margin-bottom",
            "default": "3rem"
          },
          {
            "type": "Dimension",
            "name": "margin-top",
            "default": "1rem"
          },
          {
            "type": "Dimension",
            "name": "padding-bottom",
            "default": "0"
          },
          {
            "type": "Dimension",
            "name": "padding-top",
            "default": "0"
          },
          {
            "type": "String",
            "name": "prefix",
            "default": "\"scroll-slide\""
          },
          {
            "type": "CssValue",
            "name": "button-border",
            "default": "2px solid white"
          },
          {
            "type": "Color",
            "name": "button-border-color-hover",
            "default": "white"
          },
          {
            "type": "Dimension",
            "name": "button-border-radius",
            "default": "50%"
          },
          {
            "type": "CssValue",
            "name": "button-box-shadow",
            "default": "element.get(\"box-shadow\")"
          },
          {
            "type": "Color",
            "name": "button-color",
            "default": "color.get(\"type\")"
          },
          {
            "type": "Color",
            "name": "button-color-hover",
            "default": "color.get(\"link\")"
          },
          {
            "type": "Dimension",
            "name": "button-font-size",
            "default": "1.35rem"
          },
          {
            "type": "Dimension",
            "name": "button-indent",
            "default": "1.5rem"
          },
          {
            "type": "Dimension",
            "name": "button-indent-small",
            "default": "0.5rem"
          },
          {
            "type": "Dimension",
            "name": "button-size",
            "default": "3rem"
          },
          {
            "type": "Dimension",
            "name": "button-icon-offset-x",
            "default": "false"
          },
          {
            "type": "Dimension",
            "name": "button-icon-offset-y",
            "default": "false"
          }
        ],
        "group": [
          "scroll-slider"
        ],
        "access": "public",
        "file": {
          "path": "_scroll-slider.scss",
          "name": "_scroll-slider.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "scroll-slider",
        "path": "/sass/components/scroll-slider/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 61,
          "end": 64
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 66,
            "end": 68
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-scroll-slider-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "scroll-slider"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_scroll-slider.scss",
          "name": "_scroll-slider.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "scroll-slider",
        "path": "/sass/components/scroll-slider/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 70,
          "end": 73
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"scroll-slider [config]\");\n",
          "line": {
            "start": 75,
            "end": 77
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-scroll-slider-get(\"property\");"
          }
        ],
        "group": [
          "scroll-slider"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_scroll-slider.scss",
          "name": "_scroll-slider.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "scroll-slider",
        "path": "/sass/components/scroll-slider/#mixin-styles",
        "description": "Output component stylesheet\n",
        "commentRange": {
          "start": 79,
          "end": 81
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(get(\"prefix\"));\n  \n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin-top\") 0 get(\"margin-bottom\") 0;\n  }\n  #{ $prefix }--cards {\n    #{ $prefix }__slide {\n      margin-right: 1.35rem;\n      > .card {\n        width: 100%;\n        max-width: none;\n        height: calc(100% - 2rem);\n        margin: 1rem 0 1rem 0;// For shadows\n      }\n    }\n    #{ $prefix }__slide--empty {\n      margin-right: 0;\n    }\n  }\n  #{ $prefix }__track {\n    display: flex;\n    overflow-x: auto;\n    scroll-behavior: smooth;\n    scroll-snap-type: x mandatory;\n    // scroll-padding-left: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    // switch below to a modifier (like #{ $prefix }--in-container, #{ $prefix }--in-container-large-x) Default is container\n    \n    // scroll-padding-right: 1rem;\n    // Hide scrollbars\n    -ms-overflow-style: none; /* for Internet Explorer, Edge */\n    scrollbar-width: none; /* for Firefox */\n    &::-webkit-scrollbar {\n      display: none; /* for Chrome, Safari, and Opera */\n    }\n    @include layout.match-container-margin(\"scroll-padding-left\", get(\"container\"));\n    // padding: 1rem;\n    // Add space to end of list\n    // &::after {\n    //   content: \"\\00a0\";\n    //   display: block;\n    //   width: 1rem;\n    //   height: 100%;\n    //   flex: 0 0 1rem;\n    // }\n  }\n  #{ $prefix }__slide {\n    \n    flex: 0 0 450px;\n    max-width: 90vw;\n    scroll-snap-align: start;\n\n    $containerBreakpoint: layout.get-container(\"container\", $breakpoint: \"small\", $required: false);\n    // Only if this container has this breakpoint\n    @if ($containerBreakpoint) {\n      @include breakpoint.max(\"small\") {\n        $pad: layout.get-container-padding-x(\"container\", \"small\");\n        max-width: none;\n        flex-basis: calc(100vw - ($pad * 2) - var(--ulu-scrollbar-width));\n      }\n    }\n  }\n  #{ $prefix }__slide--empty {\n    scroll-snap-align: none;\n    // flex-basis: calc(((100vw - vars.$site-max-width) / 2) + vars.$site-margin);\n    @include layout.match-container-margin(\"flex-basis\", get(\"container\"));\n    & {\n      margin-right: 0;\n    }\n    // @include ulu.breakpoint-max(\"small\") {\n    //   &:last-child {\n    //     display: none;\n    //   }\n    // }\n  }\n  #{ $prefix }__controls {\n    list-style: none !important;\n    padding: 0;\n  }\n  .OverflowScroller__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n  }\n  @if get(\"button-icon-offset-y\") {\n    .OverflowScroller__control-icon {\n      margin-top: get(\"button-icon-offset-y\");\n    }\n  }\n  .OverflowScroller__control-button--previous {\n    left: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-left: get(\"button-icon-offset-x\");\n        \n      }\n    }\n  }\n  .OverflowScroller__control-button--next {\n    right: get(\"button-indent\");\n    @if get(\"button-icon-offset-x\")  {\n      .OverflowScroller__control-icon {\n        margin-right: get(\"button-icon-offset-x\");\n      }\n    }\n  }\n  @include breakpoint.max(\"small\") {\n    .OverflowScroller__control-button--previous {\n      left: get(\"button-indent-small\");\n    }\n    .OverflowScroller__control-button--next {\n      right: get(\"button-indent-small\");\n    }\n  }\n",
          "line": {
            "start": 83,
            "end": 200
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-scroll-slider-styles();"
          }
        ],
        "group": [
          "scroll-slider"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_scroll-slider.scss",
          "name": "_scroll-slider.scss"
        }
      }
    ],
    "skeleton": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "skeleton",
        "path": "/sass/components/skeleton/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 25,
          "end": 35
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"animation\" : UluPulse 2s cubic-bezier(0.4,0,0.6,1) infinite,\n  \"color\" : \"type-disabled\",\n  \"background-color\" : #e2e2e2,\n  \"background-color-alt\" : #bababa,\n  \"border-radius\": true,\n  \"inline-margin\" : 0.35em,\n  \"media-ratio\" : list.slash(4, 3),\n  \"media-font-size\" : 2rem,\n  \"text-border-radius\" : 3em,\n  \"widths\": (\n    \"small-xxx\" : 10%,\n    \"small-xx\" : 20%,\n    \"small-x\" : 30%,\n    \"small\" : 40%,\n    \"large\" : 70%,\n    \"large-x\" : 85%,\n    \"large-xx\" : 100%\n  ),\n)",
          "scope": "default",
          "line": {
            "start": 37,
            "end": 56
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "CssValue",
            "name": "animation",
            "default": "pulse 2s cubic-bezier(0.4,0,0.6,1) infinite",
            "description": "The animation applied to skeleton elements."
          },
          {
            "type": "Color",
            "name": "color",
            "default": "type-disabled",
            "description": "The base color for skeleton elements."
          },
          {
            "type": "Color",
            "name": "background-color",
            "default": "#cbcbcb",
            "description": "The primary background color for skeleton elements."
          },
          {
            "type": "Color",
            "name": "background-color-alt",
            "default": "#aeaeae",
            "description": "An alternative background color for skeleton elements, used for variations."
          },
          {
            "type": "Dimension",
            "name": "border-radius",
            "default": "true",
            "description": "The border-radius for skeleton blocks and text. If set to true, uses the element.scss property for \"border-radius\"."
          },
          {
            "type": "Dimension",
            "name": "inline-margin",
            "default": "0.35em",
            "description": "The margin between inline skeleton text elements."
          },
          {
            "type": "Number",
            "name": "media-ratio",
            "default": "(4/3)",
            "description": "The aspect ratio for skeleton media blocks (width/height)."
          },
          {
            "type": "Dimension",
            "name": "text-border-radius",
            "default": "3em",
            "description": "The border-radius for skeleton text lines."
          },
          {
            "type": "Map",
            "name": "widths",
            "default": "Map",
            "description": "A map defining various width percentages for skeleton text lines (or used to size blocks/etc)"
          }
        ],
        "group": [
          "skeleton"
        ],
        "access": "public",
        "file": {
          "path": "_skeleton.scss",
          "name": "_skeleton.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "skeleton",
        "path": "/sass/components/skeleton/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 58,
          "end": 61
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 63,
            "end": 65
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-skeleton-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "skeleton"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_skeleton.scss",
          "name": "_skeleton.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "skeleton",
        "path": "/sass/components/skeleton/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 67,
          "end": 70
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  $value: utils.require-map-get($config, $name, \"skeleton [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
          "line": {
            "start": 72,
            "end": 75
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-skeleton-get(\"property\");"
          }
        ],
        "group": [
          "skeleton"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_skeleton.scss",
          "name": "_skeleton.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "skeleton",
        "path": "/sass/components/skeleton/#mixin-styles",
        "description": "Prints component styles\n",
        "commentRange": {
          "start": 77,
          "end": 80
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"skeleton\");\n\n  #{ $prefix } {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n  }\n  #{ $prefix }--background {\n    background-color: color.get(get(\"background-color\")) !important;\n  }\n  #{ $prefix }--block,\n  #{ $prefix }--text,\n  #{ $prefix }--media {\n    animation: get(\"animation\");\n    color: color.get(get(\"color\"));\n    background-color: color.get(get(\"background-color\")) !important;\n    border-radius: get(\"border-radius\");\n  }\n  #{ $prefix }--media {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    aspect-ratio: get(\"media-ratio\");\n    font-size: get(\"media-font-size\");\n  }\n  #{ $prefix }--text {\n    height: 1em;\n    width: 60%;\n    border-radius: get(\"text-border-radius\");\n  }\n  #{ $prefix }--inline {\n    display: inline-block;\n  }\n  #{ $prefix }--inline + #{ $prefix }--inline {\n    margin-left: get(\"inline-margin\");\n  }\n  #{ $prefix }--background-alt {\n    background-color: color.get(get(\"background-color-alt\")) !important;\n  }\n  @each $name, $value in get(\"widths\") {\n    #{ $prefix }--width-#{ $name } {\n      width: $value;\n    }\n  }\n",
          "line": {
            "start": 82,
            "end": 126
          }
        },
        "demo": {
          "link": "skeleton",
          "content": null
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-skeleton-styles();"
          }
        ],
        "group": [
          "skeleton"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_skeleton.scss",
          "name": "_skeleton.scss"
        }
      }
    ],
    "skip-link": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "skip-link",
        "path": "/sass/components/skip-link/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 31,
          "end": 32
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"padding\" : (1em 2em),\n  \"background-color\" : white,\n  \"box-shadow\" : true,\n  \"border-radius\" : true,\n  \"z-index\" : true\n)",
          "scope": "default",
          "line": {
            "start": 34,
            "end": 40
          }
        },
        "type": "Map",
        "group": [
          "skip-link"
        ],
        "access": "public",
        "file": {
          "path": "_skip-link.scss",
          "name": "_skip-link.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "skip-link",
        "path": "/sass/components/skip-link/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 42,
          "end": 45
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 47,
            "end": 49
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-skip-link-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "skip-link"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_skip-link.scss",
          "name": "_skip-link.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "skip-link",
        "path": "/sass/components/skip-link/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 51,
          "end": 54
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  $value: utils.require-map-get($config, $name, \"button-verbose [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
          "line": {
            "start": 56,
            "end": 59
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-skip-link-get(\"property\");"
          }
        ],
        "group": [
          "skip-link"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_skip-link.scss",
          "name": "_skip-link.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "skip-link",
        "path": "/sass/components/skip-link/#mixin-styles",
        "description": "Output component stylesheet\n- Note: This needs to be paired with the display helper class \"hidden-visually-focusable\"\n- Note: Remember to add an id to the content you want to skip to. Often this will go to the content after the nav menu.\n",
        "commentRange": {
          "start": 61,
          "end": 74
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"skip-link\");\n\n  #{ $prefix } {\n    display: block;\n    position: fixed;\n    z-index: get(\"z-index\");\n    top: 0;\n    left: 50%;\n    transform: translateX(-50%);\n    padding: get(\"padding\");\n    background-color: color.get(get(\"background-color\"));\n    font-weight: bold;\n    box-shadow: get(\"box-shadow\");\n    border-bottom-left-radius: get(\"border-radius\");\n    border-bottom-right-radius: get(\"border-radius\");\n  }\n",
          "line": {
            "start": 76,
            "end": 93
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-skip-link-styles();"
          },
          {
            "type": "html",
            "code": "<a \n  class=\"skip-link hidden-visually-focusable\" \n  href=\"#main-content\"\n>\n  Skip to main content\n</a>\n...\n<main id=\"main-content\">...</main>"
          }
        ],
        "group": [
          "skip-link"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_skip-link.scss",
          "name": "_skip-link.scss"
        }
      }
    ],
    "slider": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "slider",
        "path": "/sass/components/slider/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 12,
          "end": 31
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"background-color\" : transparent,\n  \"margin\" : (1rem 0 3rem 0),\n  \"padding-bottom\" : 0,\n  \"padding-top\" : 0,\n  \"button-offset-x\" : null,\n  \"button-offset-y\" : null,\n  \"button-margin\" : 2rem,\n  \"button-width\": 2.5rem,\n  \"nav-background-color\" : transparent,\n  \"nav-background-color-hover\" : \"control-background-hover\",\n  \"nav-background-color-selected\" : \"control-background-active\",\n  \"nav-border-color\" : \"control-background\",\n  \"nav-border-color-hover\" : \"control-background-hover\",\n  \"nav-border-color-selected\" : \"control-background-active\",\n  \"nav-border-radius\" : 50%,\n  \"nav-gap\" : 0.2rem,\n  \"nav-border-width\" : 2px,\n  \"nav-size\" :  1rem,\n  \"nav-margin\" : (0.5rem 0),\n  \n  )",
          "scope": "default",
          "line": {
            "start": 33,
            "end": 54
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Color",
            "name": "background-color",
            "default": "transparent",
            "description": "Background color for the entire slider section."
          },
          {
            "type": "Dimension",
            "name": "margin",
            "default": "(1rem 0 3rem 0)",
            "description": "Margin for slider container"
          },
          {
            "type": "Dimension",
            "name": "padding-top",
            "default": "0",
            "description": "Top padding for individual slides."
          },
          {
            "type": "Dimension",
            "name": "button-offset-x",
            "default": "null",
            "description": "Offsets the control button in from their respective sides."
          },
          {
            "type": "Dimension",
            "name": "button-offset-y",
            "default": "null",
            "description": "Offsets the control button y"
          },
          {
            "type": "Dimension",
            "name": "button-margin",
            "default": "0.75rem",
            "description": "The margin between the controls and the slide content when using .slider__slide-gap-for-controls"
          },
          {
            "type": "Color",
            "name": "nav-margin",
            "default": "(0.5rem 0)",
            "description": "Margin for nav (dots)"
          },
          {
            "type": "Color",
            "name": "nav-background-color",
            "default": "transparent",
            "description": "The color of the dot when unselected."
          },
          {
            "type": "Color",
            "name": "nav-background-color-hover",
            "default": "color.get(\"link\")",
            "description": "The color of the dot when hovered."
          },
          {
            "type": "Color",
            "name": "nav-background-color-selected",
            "default": "color.get(\"link\")",
            "description": "The color of the dot when selected."
          },
          {
            "type": "Dimension",
            "name": "nav-border-radius",
            "default": "50%",
            "description": "The border-radius of the dot."
          },
          {
            "type": "Color",
            "name": "nav-border-color",
            "default": "color.get(\"link\")",
            "description": "The border color of the dot."
          },
          {
            "type": "Color",
            "name": "nav-border-color-hover",
            "default": "color.get(\"link\")",
            "description": "The border color of the dot when hovered."
          },
          {
            "type": "Color",
            "name": "nav-border-color-selected",
            "default": "color.get(\"link\")",
            "description": "The border color of the dot when selected."
          },
          {
            "type": "Dimension",
            "name": "nav-border-width",
            "default": "2px",
            "description": "The border width of the dot."
          },
          {
            "type": "Dimension",
            "name": "nav-size",
            "default": "1rem",
            "description": "The height and width of the dot."
          },
          {
            "type": "Dimension",
            "name": "nav-gap",
            "default": "0.2rem",
            "description": "Gap between nav items"
          },
          {
            "type": "Dimension",
            "name": "button-width",
            "default": "1rem",
            "description": "The width of the button."
          }
        ],
        "group": [
          "slider"
        ],
        "access": "public",
        "file": {
          "path": "_slider.scss",
          "name": "_slider.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "slider",
        "path": "/sass/components/slider/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 56,
          "end": 59
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 61,
            "end": 63
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-slider-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "slider"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_slider.scss",
          "name": "_slider.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "slider",
        "path": "/sass/components/slider/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 65,
          "end": 68
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, 'slider [config]');\n",
          "line": {
            "start": 70,
            "end": 72
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-slider-get(\"property\");"
          }
        ],
        "group": [
          "slider"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_slider.scss",
          "name": "_slider.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "slider",
        "path": "/sass/components/slider/#mixin-styles",
        "description": "Output component stylesheet\n",
        "commentRange": {
          "start": 74,
          "end": 76
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"slider\");\n  $prefix-plugin: selector.class(\"Slider\");\n  $slide-padding-x: get(\"button-width\") + get(\"button-margin\");\n  #{ $prefix } {\n    position: relative; // for controls\n    background-color: color.get(get(\"background-color\"));\n    margin: get(\"margin\");\n  }\n  #{ $prefix }__track,\n  #{ $prefix-plugin }__controls,\n  #{ $prefix-plugin }__nav {\n    list-style: none !important;\n    padding-left: 0;\n  }\n  #{ $prefix-plugin }__control-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    z-index: 10;\n    margin-top: get(\"button-offset-y\");\n  }\n  #{ $prefix-plugin }__nav {\n    display: flex;\n    justify-content: center;\n    margin: get(\"nav-margin\");\n    gap: get(\"nav-gap\");\n  }\n  #{ $prefix-plugin }__nav-button {\n    display: block;\n    width: get(\"nav-size\");\n    height: get(\"nav-size\");\n    background-color: color.get(get(\"nav-background-color\"));\n    border: get(\"nav-border-width\") solid color.get(get(\"nav-border-color\"));\n    border-radius: get(\"nav-border-radius\");\n    &:hover {\n      background-color: color.get(get(\"nav-background-color-hover\"));\n      border-color: color.get(get(\"nav-border-color-hover\"));\n    }\n  }\n  #{ $prefix-plugin }__nav-button--active,\n  #{ $prefix-plugin }__nav-button--active:hover {\n    background-color: color.get(get(\"nav-background-color-selected\"));\n    border-color: color.get(get(\"nav-border-color-selected\"));\n  }\n  #{ $prefix-plugin }__control-button,\n  #{ $prefix-plugin }__nav-button {\n    transition-property: color, background-color, border-color;\n    transition-duration: 300ms;\n  }\n  #{ $prefix }__title {\n    margin-top: -1.5rem !important;\n    margin-bottom: 1rem !important;\n    padding-bottom: 1rem;\n    text-align: center;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.075);\n  }\n  #{ $prefix }__track {\n    // @daniel test this\n    #{ $prefix }--vertical-center & {\n      align-items: center;\n    }\n  }\n  // Options inner container to limit the controls to the just the track aria\n  // in order to exclude the dots/nav from the positioning of the controls\n  #{ $prefix }__control-context {\n    position: relative;\n  }\n  #{ $prefix }__slide {\n    margin: 0;\n  }\n  #{ $prefix }--slide-control-margins {\n    #{ $prefix }__slide {\n      padding: get(\"padding-top\") $slide-padding-x get(\"padding-bottom\") $slide-padding-x;\n    }\n  }\n  #{ $prefix }__slide-gap-for-controls {\n    $padding:  get(\"button-width\") + get(\"button-margin\");\n    padding-left: $padding;\n    padding-right: $padding;\n  }\n  #{ $prefix-plugin }__control-button--previous {\n    left: 0;\n    margin-left: get(\"button-offset-x\");\n  }\n  #{ $prefix-plugin }__control-button--next {\n    right: 0;\n    margin-right: get(\"button-offset-x\");\n  }\n  #{ $prefix }--inset-controls {\n    #{ $prefix }__slide-gap-for-controls {\n      $padding: get(\"button-width\") + get(\"button-margin\") + get(\"button-offset-x\");\n      padding-left: $padding;\n      padding-right: $padding;\n    }\n    #{ $prefix-plugin }__control-button--previous {\n      left: 0;\n      margin-left: get(\"button-offset-x\");\n    }\n    #{ $prefix-plugin }__control-button--next {\n      right: 0;\n      margin-right: get(\"button-offset-x\");\n    }\n  }\n",
          "line": {
            "start": 78,
            "end": 182
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-slider-styles();"
          }
        ],
        "group": [
          "slider"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_slider.scss",
          "name": "_slider.scss"
        }
      }
    ],
    "spoke-spinner": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "spoke-spinner",
        "path": "/sass/components/spoke-spinner/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 13,
          "end": 14
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"size\" : 48px,\n  \"spoke-width\" : 3px,\n  \"spoke-height\" : 12px,\n  \"color\" : \"accent\",\n  \"border-radius\" : 2px,\n  \"duration\" :  1.2s\n)",
          "scope": "default",
          "line": {
            "start": 16,
            "end": 23
          }
        },
        "type": "Map",
        "group": [
          "spoke-spinner"
        ],
        "access": "public",
        "file": {
          "path": "_spoke-spinner.scss",
          "name": "_spoke-spinner.scss"
        }
      },
      {
        "id": "variable-styles",
        "title": "$styles",
        "groupName": "spoke-spinner",
        "path": "/sass/components/spoke-spinner/#variable-styles",
        "description": "Map of other sizes (use as modifiers), same properties as config/defaults\n",
        "commentRange": {
          "start": 25,
          "end": 25
        },
        "context": {
          "type": "variable",
          "name": "styles",
          "value": "()",
          "scope": "default",
          "line": {
            "start": 26,
            "end": 26
          }
        },
        "group": [
          "spoke-spinner"
        ],
        "access": "public",
        "file": {
          "path": "_spoke-spinner.scss",
          "name": "_spoke-spinner.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "spoke-spinner",
        "path": "/sass/components/spoke-spinner/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 28,
          "end": 31
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 33,
            "end": 35
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-spoke-spinner-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "spoke-spinner"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_spoke-spinner.scss",
          "name": "_spoke-spinner.scss"
        }
      },
      {
        "id": "mixin-set-styles",
        "title": "set-styles()",
        "groupName": "spoke-spinner",
        "path": "/sass/components/spoke-spinner/#mixin-set-styles",
        "description": "Set tag styles \n",
        "commentRange": {
          "start": 37,
          "end": 39
        },
        "context": {
          "type": "mixin",
          "name": "set-styles",
          "code": "\n  $styles: utils.map-merge($styles, $changes, $merge-mode) !global;\n",
          "line": {
            "start": 41,
            "end": 43
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          },
          {
            "type": "String",
            "name": "merge-mode",
            "description": "Merge mode see utils.map-merge() [null|\"deep\"|\"overwrite\"]"
          }
        ],
        "group": [
          "spoke-spinner"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "styles"
          },
          {
            "type": "variable",
            "name": "styles"
          }
        ],
        "file": {
          "path": "_spoke-spinner.scss",
          "name": "_spoke-spinner.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "spoke-spinner",
        "path": "/sass/components/spoke-spinner/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 45,
          "end": 48
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"spoke-spinner [config]\");\n",
          "line": {
            "start": 50,
            "end": 52
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-spoke-spinner-get(\"property\");"
          }
        ],
        "group": [
          "spoke-spinner"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_spoke-spinner.scss",
          "name": "_spoke-spinner.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "spoke-spinner",
        "path": "/sass/components/spoke-spinner/#mixin-styles",
        "description": "Output component stylesheet\n",
        "commentRange": {
          "start": 54,
          "end": 73
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"spoke-spinner\");\n\n\n  $size: get(\"size\");\n  $sizeHalf: math.div($size, 2);\n\n  $spoke-width: get(\"spoke-width\");\n  $spoke-widthHalf: math.div($spoke-width, 2);\n\n  #{ $prefix } {\n    position: relative;\n    vertical-align: middle; // When used as inline-block\n  }\n  #{ $prefix }__spinner {\n    display: inline-block;\n    position: relative;\n    width: $size;\n    height: $size;\n  }\n  #{ $prefix }__spinner div {\n    transform-origin: $sizeHalf $sizeHalf;\n    animation: UluFadeOut get(\"duration\") linear infinite;\n  }\n  #{ $prefix }__spinner div::after {\n    content: \" \";\n    display: block;\n    position: absolute;\n    top: 0;\n    left: $sizeHalf - $spoke-widthHalf;\n    width: $spoke-width;\n    height: get(\"spoke-height\");\n    border-radius: get(\"border-radius\");\n    background: color.get(get(\"color\"));\n  }\n  #{ $prefix }__spinner div:nth-child(1) {\n    transform: rotate(0deg);\n    animation-delay: -1.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(2) {\n    transform: rotate(30deg);\n    animation-delay: -1s;\n  }\n  #{ $prefix }__spinner div:nth-child(3) {\n    transform: rotate(60deg);\n    animation-delay: -0.9s;\n  }\n  #{ $prefix }__spinner div:nth-child(4) {\n    transform: rotate(90deg);\n    animation-delay: -0.8s;\n  }\n  #{ $prefix }__spinner div:nth-child(5) {\n    transform: rotate(120deg);\n    animation-delay: -0.7s;\n  }\n  #{ $prefix }__spinner div:nth-child(6) {\n    transform: rotate(150deg);\n    animation-delay: -0.6s;\n  }\n  #{ $prefix }__spinner div:nth-child(7) {\n    transform: rotate(180deg);\n    animation-delay: -0.5s;\n  }\n  #{ $prefix }__spinner div:nth-child(8) {\n    transform: rotate(210deg);\n    animation-delay: -0.4s;\n  }\n  #{ $prefix }__spinner div:nth-child(9) {\n    transform: rotate(240deg);\n    animation-delay: -0.3s;\n  }\n  #{ $prefix }__spinner div:nth-child(10) {\n    transform: rotate(270deg);\n    animation-delay: -0.2s;\n  }\n  #{ $prefix }__spinner div:nth-child(11) {\n    transform: rotate(300deg);\n    animation-delay: -0.1s;\n  }\n  #{ $prefix }__spinner div:nth-child(12) {\n    transform: rotate(330deg);\n    animation-delay: 0s;\n  }\n\n  // Map of config props needed for a new style, omitting props like color that aren't required\n  $required: (\n    \"size\" : get(\"size\"),\n    \"spoke-width\" : get(\"spoke-width\"),\n    \"spoke-height\" : get(\"spoke-height\"),\n  );\n\n  @each $name, $style in $styles {\n    $merged: map.merge($required, $style);\n\n    $size: map.get($merged, \"size\");\n    $sizeHalf: math.div($size, 2);\n\n    $spoke-width: map.get($merged, \"spoke-width\");\n    $spoke-widthHalf: math.div($spoke-width, 2);\n\n    #{ $prefix }--#{ $name } {\n      #{ $prefix }__spinner {\n        width: $size;\n        height: $size;\n      }\n      #{ $prefix }__spinner div {\n        transform-origin: $sizeHalf $sizeHalf;\n        animation-duration: map.get($merged, \"duration\");\n      }\n      #{ $prefix }__spinner div::after {\n        left: $sizeHalf - $spoke-widthHalf;\n        width: $spoke-width;\n        height: map.get($merged, \"spoke-height\");\n        border-radius: map.get($merged, \"border-radius\");\n        background: color.get(map.get($merged, \"color\"));\n      }\n    }\n  }\n",
          "line": {
            "start": 75,
            "end": 193
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-spoke-spinner-styles();"
          },
          {
            "type": "html",
            "code": "<div class=\"spoke-spinner\">\n  <div class=\"spoke-spinner__spinner\">\n    <div></div>\n    <div></div>\n    <div></div>\n    <div></div>\n    <div></div>\n    <div></div>\n    <div></div>\n    <div></div>\n    <div></div>\n    <div></div>\n    <div></div>\n    <div></div>\n  </div>\n</div>",
            "description": "Example markup"
          }
        ],
        "group": [
          "spoke-spinner"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "variable",
            "name": "styles"
          }
        ],
        "file": {
          "path": "_spoke-spinner.scss",
          "name": "_spoke-spinner.scss"
        }
      }
    ],
    "sticky-list": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "sticky-list",
        "path": "/sass/components/sticky-list/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 26,
          "end": 41
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"margin\" : true,\n  \"mask-offset-bottom\" : 55vh,\n  \"mask-offset-top\" : 5rem,\n  \"sticky-top\" : 45vh,\n  \"breakpoint\" : \"medium\",\n  \"type-size\" : \"large\",\n  \"title-width\" : 40%,\n  \"title-min-width\" : 8em,\n  \"title-text-align\" : right,\n  \"item-padding-x\" : 0,\n  \"gap\" : 2rem,\n  \"background-color\" : white,\n  \"background-contexts\" : (\n    (\n      \"selector\" : \".background-dark\",\n      \"background-color\" : black,\n      \"item-padding-x\" : 1em\n    ),\n  )\n)",
          "scope": "private",
          "line": {
            "start": 43,
            "end": 63
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Color",
            "name": "background-color",
            "default": "transparent",
            "description": "Background color for the entire slider section."
          },
          {
            "type": "Number",
            "name": "margin",
            "default": "true",
            "description": "Margin on ends of component (defaults to element margin)"
          },
          {
            "type": "Number",
            "name": "mask-offset-bottom",
            "default": "55vh",
            "description": "The offset for the mask (on bottom)"
          },
          {
            "type": "Number",
            "name": "mask-offset-top",
            "default": "5rem",
            "description": "The offset for the mask (on top)"
          },
          {
            "type": "Number",
            "name": "sticky-top",
            "default": "45vh",
            "description": "When to stick"
          },
          {
            "type": "String",
            "name": "breakpoint",
            "default": "\"medium\"",
            "description": "The upward breakpoint that this is allowed to be sticky"
          },
          {
            "type": "String",
            "name": "type-size",
            "default": "\"medium\"",
            "description": "The typography size to use for title"
          },
          {
            "type": "Number",
            "name": "title-width",
            "default": "40%",
            "description": "The width of the title when this is displayed in columns"
          },
          {
            "type": "Number",
            "name": "title-min-width",
            "default": "8em",
            "description": "The min width for title when displayed in columns"
          },
          {
            "type": "CssValue",
            "name": "title-text-align",
            "default": "right",
            "description": "Text alignment for title when displayed in columns"
          },
          {
            "type": "Number",
            "name": "item-padding-x",
            "default": "0",
            "description": "Optional padding on the left/right for items"
          },
          {
            "type": "Number",
            "name": "gap",
            "default": "2rem",
            "description": "The gap between title and items when displayed in columns"
          },
          {
            "type": "Color",
            "name": "background-color",
            "default": "white",
            "description": "The background color used for the mask"
          },
          {
            "type": "List",
            "name": "background-contexts",
            "description": "Adjust the background mask color by contextual selectors. Pass List of Maps with (\"selector\" [parent/contextual selector], \"background-color\", \"item-padding-x\" [optional])"
          }
        ],
        "group": [
          "sticky-list"
        ],
        "access": "public",
        "file": {
          "path": "_sticky-list.scss",
          "name": "_sticky-list.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "sticky-list",
        "path": "/sass/components/sticky-list/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 65,
          "end": 68
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 70,
            "end": 72
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-sticky-list-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "sticky-list"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_sticky-list.scss",
          "name": "_sticky-list.scss"
        }
      },
      {
        "id": "mixin-set-sizes",
        "title": "set-sizes()",
        "groupName": "sticky-list",
        "path": "/sass/components/sticky-list/#mixin-set-sizes",
        "description": "Set sizes map\n",
        "commentRange": {
          "start": 74,
          "end": 76
        },
        "context": {
          "type": "mixin",
          "name": "set-sizes",
          "code": "\n  $sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;\n",
          "line": {
            "start": 78,
            "end": 80
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          },
          {
            "type": "String",
            "name": "merge-mode",
            "description": "Merge mode see utils.map-merge() [null|\"deep\"|\"overwrite\"]"
          }
        ],
        "group": [
          "sticky-list"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "sizes"
          },
          {
            "type": "variable",
            "name": "sizes"
          }
        ],
        "file": {
          "path": "_sticky-list.scss",
          "name": "_sticky-list.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "sticky-list",
        "path": "/sass/components/sticky-list/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 82,
          "end": 85
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  $value: utils.require-map-get($config, $name, \"sticky-list [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
          "line": {
            "start": 87,
            "end": 90
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-sticky-list-get(\"property\");"
          }
        ],
        "group": [
          "sticky-list"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_sticky-list.scss",
          "name": "_sticky-list.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "sticky-list",
        "path": "/sass/components/sticky-list/#mixin-styles",
        "description": "Prints component styles\n",
        "commentRange": {
          "start": 92,
          "end": 116
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"sticky-list\");\n  $mask-offset-top: get(\"mask-offset-top\");\n  $mask-offset-bottom: get(\"mask-offset-bottom\");\n  $type-size: get(\"type-size\");\n  $sticky-top: get(\"sticky-top\");\n\n  #{ $prefix } {\n    padding: get(\"margin\") 0;\n  }\n  @include breakpoint.min(get(\"breakpoint\")) {\n    #{ $prefix } {\n      display: flex;\n      align-items: flex-start;\n      gap: get(\"gap\");\n      position: relative;\n      @if ($type-size and typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      } @else if ($type-size) {\n        @warn \"Unable to find '#{$type-size}' typography size for title\";\n      }\n    }\n    #{ $prefix }__title,\n    #{ $prefix } > :not(ul) {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      flex-basis: get(\"title-width\");\n      min-width: get(\"title-min-width\");\n      padding-top: $mask-offset-top;\n      padding-bottom: $mask-offset-bottom;\n      text-align: get(\"title-text-align\");\n    }\n    #{ $prefix }__list,\n    #{ $prefix } > ul {\n      list-style: none;\n      margin: 0;\n      display: flex;\n      flex-direction: column;\n      justify-content: space-between;\n      align-self: stretch;\n    }\n    #{ $prefix }__item,\n    #{ $prefix } > ul > li {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      margin: 0 !important; // If in editor (to complicated for :not())\n      padding: $mask-offset-top get(\"item-padding-x\") $mask-offset-bottom get(\"item-padding-x\");\n      @include set-background(get(\"background-color\"));\n    }\n    #{ $prefix }__item:first-child,\n    #{ $prefix } > ul > li:first-child {\n      margin-top: 0;\n    }\n    #{ $prefix }__item:last-child,\n    #{ $prefix } > ul > li:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Print out any contextual background styles\n  @each $props in get(\"background-contexts\") {\n    $selector: map.get($props, \"selector\");\n    $item-padding-x: map.get($props, \"item-padding-x\");\n    @include breakpoint.min(get(\"breakpoint\")) {\n      #{ $selector } {\n        #{ $prefix }__item,\n        #{ $prefix } > ul > li {\n          @if ($item-padding-x) {\n            padding-left: $item-padding-x;\n            padding-right: $item-padding-x;\n          }\n          @include set-background(map.get($props, \"background-color\"));\n        }\n      }\n    }\n  }\n",
          "line": {
            "start": 118,
            "end": 196
          }
        },
        "demo": {
          "link": "sticky-list",
          "content": null
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-sticky-list-styles();"
          },
          {
            "type": "html",
            "code": "<div class=\"sticky-list\">\n  <strong class=\"sticky-list__title\">Example:</strong>\n  <ul class=\"sticky-list__list\">\n    <li class=\"sticky-list__item\">\n      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras nec nisl magna\n    </li>\n    <li class=\"sticky-list__item\">\n      Aenean sollicitudin mauris lectus, blandit suscipit lectus fringilla sed\n    </li>\n    <li class=\"sticky-list__item\">\n      Suspendisse sollicitudin, justo sed efficitur tempor, risus\n    </li>\n    <li class=\"sticky-list__item\">\n      Suspendisse sollicitudin, justo sed efficitur tempor, risus\n    </li>\n    <li class=\"sticky-list__item\">\n      Suspendisse sollicitudin, justo sed efficitur tempor, risus\n    </li>\n  </ul>\n</div>",
            "description": "",
            "modifier": "preview"
          }
        ],
        "group": [
          "sticky-list"
        ],
        "access": "public",
        "require": [
          {
            "type": "mixin",
            "name": "set-background"
          },
          {
            "type": "mixin",
            "name": "set-background"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_sticky-list.scss",
          "name": "_sticky-list.scss"
        }
      },
      {
        "id": "mixin-set-background",
        "title": "set-background()",
        "groupName": "sticky-list",
        "path": "/sass/components/sticky-list/#mixin-set-background",
        "description": "Outputs background color mask CSS (gradient from transparent to original color)\n",
        "commentRange": {
          "start": 198,
          "end": 199
        },
        "context": {
          "type": "mixin",
          "name": "set-background",
          "code": "\n  $color: color.get($color);\n  $color-transparent: sassColor.change($color, $alpha: 0);\n  background-color: $color;\n  background: linear-gradient(180deg, $color-transparent 0%, $color get(\"mask-offset-top\"));\n",
          "line": {
            "start": 201,
            "end": 206
          }
        },
        "parameter": [
          {
            "type": "Color",
            "name": "color",
            "description": "The color to create the CSS for"
          }
        ],
        "group": [
          "sticky-list"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_sticky-list.scss",
          "name": "_sticky-list.scss"
        },
        "usedBy": [
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"sticky-list\");\n  $mask-offset-top: get(\"mask-offset-top\");\n  $mask-offset-bottom: get(\"mask-offset-bottom\");\n  $type-size: get(\"type-size\");\n  $sticky-top: get(\"sticky-top\");\n\n  #{ $prefix } {\n    padding: get(\"margin\") 0;\n  }\n  @include breakpoint.min(get(\"breakpoint\")) {\n    #{ $prefix } {\n      display: flex;\n      align-items: flex-start;\n      gap: get(\"gap\");\n      position: relative;\n      @if ($type-size and typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      } @else if ($type-size) {\n        @warn \"Unable to find '#{$type-size}' typography size for title\";\n      }\n    }\n    #{ $prefix }__title,\n    #{ $prefix } > :not(ul) {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      flex-basis: get(\"title-width\");\n      min-width: get(\"title-min-width\");\n      padding-top: $mask-offset-top;\n      padding-bottom: $mask-offset-bottom;\n      text-align: get(\"title-text-align\");\n    }\n    #{ $prefix }__list,\n    #{ $prefix } > ul {\n      list-style: none;\n      margin: 0;\n      display: flex;\n      flex-direction: column;\n      justify-content: space-between;\n      align-self: stretch;\n    }\n    #{ $prefix }__item,\n    #{ $prefix } > ul > li {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      margin: 0 !important; // If in editor (to complicated for :not())\n      padding: $mask-offset-top get(\"item-padding-x\") $mask-offset-bottom get(\"item-padding-x\");\n      @include set-background(get(\"background-color\"));\n    }\n    #{ $prefix }__item:first-child,\n    #{ $prefix } > ul > li:first-child {\n      margin-top: 0;\n    }\n    #{ $prefix }__item:last-child,\n    #{ $prefix } > ul > li:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Print out any contextual background styles\n  @each $props in get(\"background-contexts\") {\n    $selector: map.get($props, \"selector\");\n    $item-padding-x: map.get($props, \"item-padding-x\");\n    @include breakpoint.min(get(\"breakpoint\")) {\n      #{ $selector } {\n        #{ $prefix }__item,\n        #{ $prefix } > ul > li {\n          @if ($item-padding-x) {\n            padding-left: $item-padding-x;\n            padding-right: $item-padding-x;\n          }\n          @include set-background(map.get($props, \"background-color\"));\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 118,
                "end": 196
              }
            }
          },
          {
            "description": "Prints component styles\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"sticky-list\");\n  $mask-offset-top: get(\"mask-offset-top\");\n  $mask-offset-bottom: get(\"mask-offset-bottom\");\n  $type-size: get(\"type-size\");\n  $sticky-top: get(\"sticky-top\");\n\n  #{ $prefix } {\n    padding: get(\"margin\") 0;\n  }\n  @include breakpoint.min(get(\"breakpoint\")) {\n    #{ $prefix } {\n      display: flex;\n      align-items: flex-start;\n      gap: get(\"gap\");\n      position: relative;\n      @if ($type-size and typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      } @else if ($type-size) {\n        @warn \"Unable to find '#{$type-size}' typography size for title\";\n      }\n    }\n    #{ $prefix }__title,\n    #{ $prefix } > :not(ul) {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      flex-basis: get(\"title-width\");\n      min-width: get(\"title-min-width\");\n      padding-top: $mask-offset-top;\n      padding-bottom: $mask-offset-bottom;\n      text-align: get(\"title-text-align\");\n    }\n    #{ $prefix }__list,\n    #{ $prefix } > ul {\n      list-style: none;\n      margin: 0;\n      display: flex;\n      flex-direction: column;\n      justify-content: space-between;\n      align-self: stretch;\n    }\n    #{ $prefix }__item,\n    #{ $prefix } > ul > li {\n      display: block;\n      position: sticky;\n      top: $sticky-top;\n      margin: 0 !important; // If in editor (to complicated for :not())\n      padding: $mask-offset-top get(\"item-padding-x\") $mask-offset-bottom get(\"item-padding-x\");\n      @include set-background(get(\"background-color\"));\n    }\n    #{ $prefix }__item:first-child,\n    #{ $prefix } > ul > li:first-child {\n      margin-top: 0;\n    }\n    #{ $prefix }__item:last-child,\n    #{ $prefix } > ul > li:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Print out any contextual background styles\n  @each $props in get(\"background-contexts\") {\n    $selector: map.get($props, \"selector\");\n    $item-padding-x: map.get($props, \"item-padding-x\");\n    @include breakpoint.min(get(\"breakpoint\")) {\n      #{ $selector } {\n        #{ $prefix }__item,\n        #{ $prefix } > ul > li {\n          @if ($item-padding-x) {\n            padding-left: $item-padding-x;\n            padding-right: $item-padding-x;\n          }\n          @include set-background(map.get($props, \"background-color\"));\n        }\n      }\n    }\n  }\n",
              "line": {
                "start": 118,
                "end": 196
              }
            }
          }
        ]
      }
    ],
    "table-scroller": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "table-scroller",
        "path": "/sass/components/table-scroller/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 14,
          "end": 16
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"margin\" : (1em, 0),\n  // \"example\":            \"background\",\n)",
          "scope": "default",
          "line": {
            "start": 18,
            "end": 21
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "List|Number",
            "name": "margin",
            "default": "(1em, 0)",
            "description": "Optional margin for this component"
          }
        ],
        "group": [
          "table-scroller"
        ],
        "access": "public",
        "file": {
          "path": "_table-scroller.scss",
          "name": "_table-scroller.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "table-scroller",
        "path": "/sass/components/table-scroller/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 23,
          "end": 26
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 28,
            "end": 30
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-table-scroller-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "table-scroller"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_table-scroller.scss",
          "name": "_table-scroller.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "table-scroller",
        "path": "/sass/components/table-scroller/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 32,
          "end": 35
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"table-scroller [config]\");\n",
          "line": {
            "start": 37,
            "end": 39
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-table-scroller-get(\"property\");"
          }
        ],
        "group": [
          "table-scroller"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_table-scroller.scss",
          "name": "_table-scroller.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "table-scroller",
        "path": "/sass/components/table-scroller/#mixin-styles",
        "description": "Prints component styles\n",
        "commentRange": {
          "start": 41,
          "end": 44
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"table-scroller\");\n  \n  #{ $prefix } {\n    width: 100%;\n    overflow-x: auto;\n    margin: get(\"margin\");\n    > table {\n      min-width: 100%;\n      max-width: none;\n    }\n  }\n  #{ $prefix }--nowrap {\n    > table > thead th {\n      white-space: nowrap;\n    }\n  }\n",
          "line": {
            "start": 46,
            "end": 63
          }
        },
        "demo": {
          "link": "table-scroller",
          "content": null
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-table-scroller-styles();"
          }
        ],
        "group": [
          "table-scroller"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_table-scroller.scss",
          "name": "_table-scroller.scss"
        }
      }
    ],
    "tabs": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "tabs",
        "path": "/sass/components/tabs/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 33,
          "end": 63
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"margin\" : (2rem 0),\n  \"print-margin\" : 1.5em,\n  \"tablist-divider\" : true,\n  \"tablist-divider-width\" : 1px,\n  \"indicator-size\" : 3px,\n  \"indicator-color\" : \"selected\",\n  \"indicator-transition-duration\" : 200ms,\n  \"indicator-transition-timing\" : ease-out,\n  \"indicator-scale-start\" : 0,\n  \"tab-color\" : \"type-tertiary\",\n  \"tab-color-hover\" : \"type\",\n  \"tab-color-focus\": null,\n  \"tab-background-color-focus\": \"selected-background\",\n  \"tab-hide-native-focus\": true,\n  \"tab-color-selected\" : \"type\",\n  \"tab-background-color-selected\" : null,\n  \"tab-font-weight\" : true,\n  \"tab-padding\" : (0.75em),\n  \"tab-gap\" : 1em,\n  \"tabpanel-background-color\" : #f6f6f6,\n  \"tabpanel-padding\" : (2rem),\n  \"vertical-tablist-width\" : minmax(15rem, 30%),\n  \"vertical-tab-padding\" : (0.25em 0.75em),\n  \"vertical-divider-width\" : 0px,\n  \"vertical-tab-gap\" : 0.75em,\n  \"vertical-indicator-left\" : true,\n  \"vertical-breakpoint\" : true,\n  \"horizontal-tab-wrap\" : false,\n  \"full-width-tablist-background-color\" : null,\n  \"full-width-tabpanel-background-color\" : transparent,\n)",
          "scope": "default",
          "line": {
            "start": 65,
            "end": 96
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Dimension",
            "name": "margin",
            "default": "(2rem, 0)",
            "description": "The margin for the tabs container"
          },
          {
            "type": "Dimension",
            "name": "print-margin",
            "default": "1.5em",
            "description": "Margin between tabs when stacked for print"
          },
          {
            "type": "CssValue",
            "name": "tablist-divider",
            "default": "true",
            "description": "The border separating the tabs from the panels. By default (true) will use element rule light style"
          },
          {
            "type": "Dimension",
            "name": "tablist-divider-width",
            "default": "1px",
            "description": "The width of the divider"
          },
          {
            "type": "Color",
            "name": "tabpanel-background-color",
            "default": "rgb(245, 245, 245)",
            "description": "The tabpanel background color."
          },
          {
            "type": "Dimension",
            "name": "tabpanel-padding",
            "default": "(2rem,)",
            "description": "Padding for the tabpanel"
          },
          {
            "type": "Dimension",
            "name": "indicator-size",
            "default": "0.25em",
            "description": "The size of the tab's active border/indicator"
          },
          {
            "type": "Color",
            "name": "indicator-color",
            "default": "currentColor",
            "description": "The color of the indicator"
          },
          {
            "type": "Color",
            "name": "indicator-transition-duration",
            "default": "200ms",
            "description": "The transition duration for indicator"
          },
          {
            "type": "Color",
            "name": "indicator-scale-start",
            "default": "0",
            "description": "The starting scale for the indicator (set to 1 to disable expanding on click)"
          },
          {
            "type": "Color",
            "name": "tab-color",
            "default": "link",
            "description": "The type color for the tabs. This uses color.scss, so the value of this options should be a variable from color.scss."
          },
          {
            "type": "Color",
            "name": "tab-color-hover",
            "default": "link-hover",
            "description": "The type color for the tabs when hovered. This uses color.scss, so the value of this options should be a variable from color.scss."
          },
          {
            "type": "Color|null",
            "name": "tab-color-focus",
            "default": "null",
            "description": "The type color for a tab when it has keyboard focus."
          },
          {
            "type": "Color",
            "name": "tab-background-color-focus",
            "default": "#eeeeee",
            "description": "The background color for a tab when it has keyboard focus."
          },
          {
            "type": "Boolean",
            "name": "tab-hide-native-focus",
            "default": "true",
            "description": "Hides the default browser outline on focused tabs."
          },
          {
            "type": "Color",
            "name": "tab-color-selected",
            "default": "selected",
            "description": "The tab type color when selected. This uses color.scss, so the value of this options should be a variable from color.scss."
          },
          {
            "type": "Color",
            "name": "tab-background-color-selected",
            "default": "null",
            "description": "The tab background color when selected"
          },
          {
            "type": "CssValue",
            "name": "tab-font-weight",
            "default": "true",
            "description": "The font weight for the tab, defaults to typography \"font-weight-semibold\""
          },
          {
            "type": "Dimension",
            "name": "tab-padding",
            "default": "0.75em 0.1em 0.75em 0.1em",
            "description": "Padding for the tab"
          },
          {
            "type": "Dimension",
            "name": "tab-gap",
            "default": "1em",
            "description": "Gap between tabs"
          },
          {
            "type": "Dimension",
            "name": "vertical-tablist-width",
            "default": "minmax(15rem, 30%),",
            "description": "The width of the tablist column when tabs are layout is vertical"
          },
          {
            "type": "Dimension",
            "name": "vertical-tab-padding",
            "default": "(0.25em 0.75em)",
            "description": "Tab padding when vertical"
          },
          {
            "type": "Dimension",
            "name": "vertical-divider-width",
            "default": "0px",
            "description": "Divider between tabs and panels when vertical"
          },
          {
            "type": "Dimension",
            "name": "vertical-tab-gap",
            "default": "0.75em",
            "description": "The gap between tabs when vertical"
          },
          {
            "type": "Boolean",
            "name": "vertical-indicator-left",
            "default": "true",
            "description": "The indicator for selected tab should be on the left when vertical (false will be on right/inside)"
          },
          {
            "type": "Boolean",
            "name": "vertical-breakpoint",
            "default": "true",
            "description": "Set the breakpoint when the vertical tabs should switch to horizontal (defaults to breakpoint 'default')"
          },
          {
            "type": "Boolean",
            "name": "horizontal-tab-wrap",
            "default": "false",
            "description": "Set to true to allow line wrapping when the tabs are in horizontal orientation, vertical is always allowed to wrap"
          },
          {
            "type": "Color",
            "name": "full-width-tablist-background-color",
            "default": "null",
            "description": "Optional background color for full-width tabs tablist"
          },
          {
            "type": "Color",
            "name": "full-width-tabpanel-background-color",
            "default": "transparent",
            "description": "Optional background color for full-width tabs tabpanel"
          }
        ],
        "group": [
          "tabs"
        ],
        "access": "public",
        "file": {
          "path": "_tabs.scss",
          "name": "_tabs.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "tabs",
        "path": "/sass/components/tabs/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 98,
          "end": 101
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 103,
            "end": 105
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-tabs-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "tabs"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_tabs.scss",
          "name": "_tabs.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "tabs",
        "path": "/sass/components/tabs/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 107,
          "end": 110
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  $value: utils.require-map-get($config, $name, \"component-tabs [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
          "line": {
            "start": 112,
            "end": 115
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-tabs-get(\"property\");"
          }
        ],
        "group": [
          "tabs"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_tabs.scss",
          "name": "_tabs.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "tabs",
        "path": "/sass/components/tabs/#mixin-styles",
        "description": "Output component stylesheet\n",
        "commentRange": {
          "start": 117,
          "end": 119
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  @include utils.file-header(\"component\", \"tabs\");\n\n  $prefix: selector.class(\"tabs\");\n  $tabpanel-spacing: utils.get-spacing(get(\"tabpanel-padding\"));\n\n  #{ $prefix } {\n    margin: get(\"margin\");\n    [role=\"tablist\"] {\n      position: relative;\n      z-index: 2;\n      display: flex; \n      gap: get(\"tab-gap\");\n      overflow-x: auto;\n      border-bottom: get(\"tablist-divider\");\n      border-bottom-width: get(\"tablist-divider-width\");\n      @include layout.remove-scrollbar();\n    }\n    [role=\"tab\"] {\n      display: block;\n      position: relative; \n      cursor: pointer;\n      text-align: center;\n      padding: get(\"tab-padding\");\n      color: color.get(get(\"tab-color\"));\n      font-weight: get(\"tab-font-weight\");\n      @if (not get(\"horizontal-tab-wrap\")) {\n        white-space: nowrap;\n      }\n      // Indicator\n      &::after {\n        content: \"\";\n        position: absolute;\n        background-color: color.get(get(\"indicator-color\"));\n        opacity: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        height: get(\"indicator-size\");\n        transition-property: opacity, background-color, transform;\n        transition-duration: get(\"indicator-transition-duration\");\n        transition-timing-function: get(\"indicator-transition-timing\");\n        transform: scaleX(get(\"indicator-scale-start\"));\n        transform-origin: center;\n      }\n      &:hover {\n        color: color.get(get(\"tab-color-hover\"));\n      }\n      // Add focus so as user clicks item it starts the active state styling\n      &:focus,\n      &[aria-selected=\"true\"] {\n        @if get(\"tab-hide-native-focus\") {\n          outline: none;\n        }\n        &::after {\n          opacity: 1;\n          transform: scaleX(1);\n        }\n      }\n      // Add new focus-specific colors\n      // Using :focus-visible so it only applies to keyboard focus\n      &:focus-visible,\n      &[aria-selected=\"true\"]:focus-visible {\n        color: color.get(get(\"tab-color-focus\"));\n        background-color: color.get(get(\"tab-background-color-focus\"));\n      }\n      &[aria-selected=\"true\"] {\n        color: color.get(get(\"tab-color-selected\"));\n        background-color: color.get(get(\"tab-background-color-selected\"));\n      }\n    }\n    [role=\"tabpanel\"] {\n      position: relative;\n      z-index: 1;\n      padding: get(\"tabpanel-padding\");\n      overflow: hidden;\n      background-color: color.get(get(\"tabpanel-background-color\"));\n    }\n  }\n  // For images, etc that should fill tabpanel\n  #{ $prefix }__tabpanel-content-fill {\n    margin-left: -(map.get($tabpanel-spacing, \"left\"));\n    margin-right: -(map.get($tabpanel-spacing, \"right\"));\n    width: calc(100% + #{ map.get($tabpanel-spacing, \"left\") + map.get($tabpanel-spacing, \"right\") });\n    max-width: none;\n    &:first-child {\n      margin-top: -(map.get($tabpanel-spacing, \"top\"));\n    }\n    &:last-child {\n      margin-bottom: -(map.get($tabpanel-spacing, \"bottom\"));\n    }\n  }\n\n  @include breakpoint.min(get(\"vertical-breakpoint\")) {\n    #{ $prefix }--vertical {\n      display: grid;\n      grid-template-columns: get(\"vertical-tablist-width\") auto; \n      [role=\"tablist\"] {\n        flex-direction: column;\n        gap: get(\"vertical-tab-gap\");\n        border-right: get(\"tablist-divider\");\n        border-right-width: get(\"vertical-divider-width\");\n        border-bottom: none;\n        grid-column: 1;\n      }\n      [role=\"tab\"] {\n        padding: get(\"vertical-tab-padding\");\n        white-space: normal;\n        text-align: left;\n        &::after {\n          left: utils.when(get(\"vertical-indicator-left\"), 0, auto);\n          right: utils.when(not get(\"vertical-indicator-left\"), 0, auto);\n          bottom: 0;\n          top: 0;\n          width: get(\"indicator-size\");\n          height: auto;\n        }\n      }\n      [role=\"tabpanel\"] {\n        grid-column: 2; // needed for equalHeights in vertical\n      }\n    }\n  }\n\n  #{ $prefix }--transparent {\n    [role=\"tablist\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n    [role=\"tabpanel\"] {\n      background-color: transparent;\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n\n  #{ $prefix }--full-width {\n    > [role=\"tablist\"] {\n      justify-content: safe center;\n      background-color: color.get(get(\"full-width-tablist-background-color\"));\n    }\n    >[role=\"tabpanel\"] {\n      background-color: color.get(get(\"full-width-tabpanel-background-color\"));\n      padding: 0;\n    }\n  }\n\n  // Display all tabs during print\n  #{ $prefix }--print {\n    @media print {\n      [role=\"tablist\"] {\n        display: none;\n      }\n      [role=\"tabpanel\"] {\n        display: block;\n        + [role=\"tabpanel\"] {\n          margin-top: get(\"print-margin\");\n        }\n      }\n    }\n  }\n",
          "line": {
            "start": 121,
            "end": 283
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-tabs-styles();"
          }
        ],
        "group": [
          "tabs"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_tabs.scss",
          "name": "_tabs.scss"
        }
      }
    ],
    "tag": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "tag",
        "path": "/sass/components/tag/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 24,
          "end": 42
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"font-weight\" : normal,\n  \"font-family\" : true,\n  \"box-shadow\" : none,\n  \"padding\" : (0.4em 0.75em),\n  \"vertical-align\" : baseline,\n  \"margin-between\" : 0.5em,\n  \"margin-between-tags\" : 0,\n  \"line-height\" : 1,\n  \"type-size\" : \"small\",\n  \"background-color\" : #eaeaea,\n  \"border-radius\" : 1.25em,\n  \"border-color\" : transparent,\n  \"border-width\" : 1px,\n  \"color\": \"type-tertiary\",\n  \"counter-size\" : 1.75em,\n  \"counter-border-radius\" : 20px,\n  \"counter-padding-sides\" : 0.26em\n)",
          "scope": "default",
          "line": {
            "start": 44,
            "end": 62
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "CssValue",
            "name": "font-weight",
            "default": "normal",
            "description": "Font weight for the tag text."
          },
          {
            "type": "String",
            "name": "font-family",
            "default": "true",
            "description": "Font family for the tag text."
          },
          {
            "type": "CssValue",
            "name": "box-shadow",
            "default": "none",
            "description": "Box shadow for the tag."
          },
          {
            "type": "Dimension",
            "name": "padding",
            "default": "(0.4em 0.75em)",
            "description": "Inner padding for the tag."
          },
          {
            "type": "CssValue",
            "name": "vertical-align",
            "default": "baseline",
            "description": "Vertical alignment of tag text."
          },
          {
            "type": "Dimension",
            "name": "margin-between",
            "default": "0.5em",
            "description": "Margin between tag and other elements."
          },
          {
            "type": "Dimension",
            "name": "margin-between-tags",
            "default": "0",
            "description": "Margin between tag and other tags."
          },
          {
            "type": "Number",
            "name": "line-height",
            "default": "1",
            "description": "Line height for the tag text."
          },
          {
            "type": "String",
            "name": "type-size",
            "default": "\"small\"",
            "description": "Font size for the tag text."
          },
          {
            "type": "Color",
            "name": "background-color",
            "default": "#eaeaea",
            "description": "Background color of the tag."
          },
          {
            "type": "Dimension",
            "name": "border-radius",
            "default": "1.25em",
            "description": "Border radius of the tag."
          },
          {
            "type": "Color",
            "name": "border-color",
            "default": "transparent",
            "description": "Border color for the tag."
          },
          {
            "type": "Dimension",
            "name": "border-width",
            "default": "1px",
            "description": "Border width of the tag."
          },
          {
            "type": "String",
            "name": "color",
            "default": "\"type-tertiary\"",
            "description": "Color of the tag text."
          },
          {
            "type": "String",
            "name": "counter-size",
            "default": "1.5em",
            "description": "Size when used as a counter (for numbers), will be this size by default and expand horizontally as needed (ie. circle/rounded rectangle or square/rectangle if without border radius)"
          },
          {
            "type": "String",
            "name": "counter-border-radius",
            "default": "20px",
            "description": "May need to be adjusted or can be set to 0 for square/rectangle"
          },
          {
            "type": "String",
            "name": "counter-padding-sides",
            "default": "0.26em",
            "description": "Counter left/right padding (this is the space/margin on the inside when the number can't fit in the circle/square"
          }
        ],
        "group": [
          "tag"
        ],
        "access": "public",
        "file": {
          "path": "_tag.scss",
          "name": "_tag.scss"
        }
      },
      {
        "id": "variable-styles",
        "title": "$styles",
        "groupName": "tag",
        "path": "/sass/components/tag/#variable-styles",
        "description": "Style Map (alternate tag styles)\n",
        "commentRange": {
          "start": 64,
          "end": 64
        },
        "context": {
          "type": "variable",
          "name": "styles",
          "value": "(\n  \"success\" : (\n    \"color\" : rgb(37, 73, 37),\n    \"background-color\" : rgb(190, 220, 190),\n  ),\n  \"danger\" : (\n    \"color\" : rgb(78, 24, 24),\n    \"background-color\" : rgb(235, 179, 179),\n  ),\n  \"outline\" : (\n    \"background-color\" : transparent,\n    \"border-color\" : #ccc\n  )\n)",
          "scope": "default",
          "line": {
            "start": 66,
            "end": 79
          }
        },
        "group": [
          "tag"
        ],
        "access": "public",
        "file": {
          "path": "_tag.scss",
          "name": "_tag.scss"
        }
      },
      {
        "id": "variable-sizes",
        "title": "$sizes",
        "groupName": "tag",
        "path": "/sass/components/tag/#variable-sizes",
        "description": "Map of alternate sizes\n",
        "commentRange": {
          "start": 81,
          "end": 81
        },
        "context": {
          "type": "variable",
          "name": "sizes",
          "value": "(\n  \"small\" : (\n    \"padding\" : (0.25em 0.5em),\n    \"type-size\" : \"small-x\"\n  )\n)",
          "scope": "default",
          "line": {
            "start": 82,
            "end": 87
          }
        },
        "group": [
          "tag"
        ],
        "access": "public",
        "file": {
          "path": "_tag.scss",
          "name": "_tag.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "tag",
        "path": "/sass/components/tag/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 89,
          "end": 92
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 94,
            "end": 96
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-tag-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "tag"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_tag.scss",
          "name": "_tag.scss"
        }
      },
      {
        "id": "mixin-set-styles",
        "title": "set-styles()",
        "groupName": "tag",
        "path": "/sass/components/tag/#mixin-set-styles",
        "description": "Set tag styles \n",
        "commentRange": {
          "start": 98,
          "end": 100
        },
        "context": {
          "type": "mixin",
          "name": "set-styles",
          "code": "\n  $styles: utils.map-merge($styles, $changes, $merge-mode) !global;\n",
          "line": {
            "start": 102,
            "end": 104
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          },
          {
            "type": "String",
            "name": "merge-mode",
            "description": "Merge mode see utils.map-merge() [null|\"deep\"|\"overwrite\"]"
          }
        ],
        "group": [
          "tag"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "styles"
          },
          {
            "type": "variable",
            "name": "styles"
          }
        ],
        "file": {
          "path": "_tag.scss",
          "name": "_tag.scss"
        }
      },
      {
        "id": "mixin-set-sizes",
        "title": "set-sizes()",
        "groupName": "tag",
        "path": "/sass/components/tag/#mixin-set-sizes",
        "description": "Set tag sizes \n",
        "commentRange": {
          "start": 106,
          "end": 108
        },
        "context": {
          "type": "mixin",
          "name": "set-sizes",
          "code": "\n  $sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;\n",
          "line": {
            "start": 110,
            "end": 112
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          },
          {
            "type": "String",
            "name": "merge-mode",
            "description": "Merge mode see utils.map-merge() [null|\"deep\"|\"overwrite\"]"
          }
        ],
        "group": [
          "tag"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "sizes"
          },
          {
            "type": "variable",
            "name": "sizes"
          }
        ],
        "file": {
          "path": "_tag.scss",
          "name": "_tag.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "tag",
        "path": "/sass/components/tag/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 114,
          "end": 117
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  $value: utils.require-map-get($config, $name, \"tag [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
          "line": {
            "start": 119,
            "end": 122
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-tag-get(\"property\");"
          }
        ],
        "group": [
          "tag"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_tag.scss",
          "name": "_tag.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "tag",
        "path": "/sass/components/tag/#mixin-styles",
        "description": "Output component stylesheet\n",
        "commentRange": {
          "start": 124,
          "end": 126
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"tag\");\n\n  #{ $prefix } {\n    border-radius: get(\"border-radius\"); \n    display: inline-block;\n    padding: get(\"padding\");\n    font-weight: get(\"font-weight\");\n    vertical-align: get(\"vertical-align\");\n    font-style: normal;\n    text-overflow: ellipsis;\n    text-align: center;\n    white-space: nowrap;\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    color: color.get(get(\"color\"));\n    font-family: get(\"font-family\");\n    line-height: get(\"line-height\");\n    @if (typography.has-size(get(\"type-size\"))) {\n      @include typography.size(get(\"type-size\"), $only-font-size: true);\n    }\n    &:not(:last-child) {\n      margin-right: get(\"margin-between\");\n    }\n    &:not(:first-child) {\n      margin-left: get(\"margin-between\");\n    }\n    & + & {\n      margin-left: get(\"margin-between-tags\");\n    }\n  }\n\n  \n\n  @each $name, $size in $sizes {\n    $type-size: map.get($size, \"type-size\");\n\n    #{ $prefix }--#{ $name } {\n      padding: map.get($size, \"padding\");  \n      line-height: map.get($size, \"line-height\");\n      @if (typography.has-size($type-size)) {\n        @include typography.size($type-size, $only-font-size: true);\n      }\n    }\n  }\n\n  // Order Reason: Needs to inherit from sizes but not styles\n  #{ $prefix }--counter {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: get(\"counter-size\");\n    height: get(\"counter-size\");\n    border-radius: get(\"counter-border-radius\");\n    padding: 0 get(\"counter-padding-sides\");\n  }\n\n  @each $name, $style in $styles {\n    #{ $prefix }--#{ $name } {\n      background-color: color.get(map.get($style, \"background-color\")); \n      color: color.get(map.get($style, \"color\")); \n      border: map.get($style, \"border\"); \n      border-radius: map.get($style, \"border-radius\"); \n      border-color: color.get(map.get($style, \"border-color\")); \n      border-width: map.get($style, \"border-width\"); \n      box-shadow: map.get($style, \"box-shadow\"); \n    }\n  }\n\n\n",
          "line": {
            "start": 128,
            "end": 198
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-tag-styles();"
          }
        ],
        "group": [
          "tag"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "variable",
            "name": "sizes"
          },
          {
            "type": "variable",
            "name": "styles"
          }
        ],
        "file": {
          "path": "_tag.scss",
          "name": "_tag.scss"
        }
      }
    ],
    "tagged": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "tagged",
        "path": "/sass/components/tagged/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 11,
          "end": 15
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"position-x\": 0,\n  \"position-y\": 0,\n  \"transform\":  translate(50%, -50%)\n)",
          "scope": "default",
          "line": {
            "start": 17,
            "end": 21
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Dimension",
            "name": "position-x",
            "default": "-0.75em",
            "description": "Horizontal absolute position of the tag."
          },
          {
            "type": "Dimension",
            "name": "position-y",
            "default": "-0.75em",
            "description": "Vertical absolute position of the tag."
          },
          {
            "type": "CssValue",
            "name": "icon-opacity",
            "default": "null",
            "description": "Adds a transform styling to the tag."
          }
        ],
        "group": [
          "tagged"
        ],
        "access": "public",
        "file": {
          "path": "_tagged.scss",
          "name": "_tagged.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "tagged",
        "path": "/sass/components/tagged/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 23,
          "end": 26
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 28,
            "end": 30
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-tagged-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "tagged"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_tagged.scss",
          "name": "_tagged.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "tagged",
        "path": "/sass/components/tagged/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 32,
          "end": 35
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"tagged [config]\");\n",
          "line": {
            "start": 37,
            "end": 39
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-tagged-get(\"property\");"
          }
        ],
        "group": [
          "tagged"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_tagged.scss",
          "name": "_tagged.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "tagged",
        "path": "/sass/components/tagged/#mixin-styles",
        "description": "Output component styles\n",
        "commentRange": {
          "start": 41,
          "end": 43
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n\n  $prefix: selector.class(\"tagged\");\n\n  #{ $prefix } {\n    position: relative;\n  }\n  #{ $prefix }__tag {\n    position: absolute;\n    top: var(--ulu-tagged-y, get(\"position-y\"));\n    right: var(--ulu-tagged-x, get(\"position-x\"));\n    transform: var(--ulu-tagged-transform, get(\"transform\"));\n    margin: 0; // So it doesn't interfere if present\n  }\n",
          "line": {
            "start": 45,
            "end": 59
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-tagged-styles();"
          }
        ],
        "group": [
          "tagged"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_tagged.scss",
          "name": "_tagged.scss"
        }
      }
    ],
    "tile-button": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "tile-button",
        "path": "/sass/components/tile-button/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 38,
          "end": 47
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"border-radius\" : true,\n  \"description-size\" : \"small-x\",\n  \"line-height\" : true,\n  \"padding\" : (1em 0.5em),\n  \"row-margin\" : 0.5em,\n  \"icon-font-size\" : 1.5em,\n  \"icon-margin\" : 1em,\n  \"icon-opacity\" : 0.5,\n  \"transition-enabled\" : true,\n  \"transition-duration\" : true,\n  \"transition-properties\" : true\n)",
          "scope": "default",
          "line": {
            "start": 49,
            "end": 61
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Dimension",
            "name": "border-radius",
            "default": "true",
            "description": "The border radius of the tile button. If set to true, will use the element.scss property for \"border-radius\"."
          },
          {
            "type": "String",
            "name": "description-size",
            "default": "small-x",
            "description": "The type size of the description. This uses typography.scss, so the value of this options should be a variable from typography.scss."
          },
          {
            "type": "Dimension",
            "name": "line-height",
            "default": "true",
            "description": "The line-height of the tile-button. If set to true, will use the typography.scss property for \"line-height-densest\"."
          },
          {
            "type": "Dimension",
            "name": "padding",
            "default": "(1em 0.5em)",
            "description": "The padding of the tile button"
          },
          {
            "type": "Dimension",
            "name": "row-margin",
            "default": "0.5em",
            "description": "The margin between rows."
          },
          {
            "type": "Dimension",
            "name": "icon-font-size",
            "default": "1.5em",
            "description": "The font size of the icon."
          },
          {
            "type": "Dimension",
            "name": "icon-margin",
            "default": "1em",
            "description": "The margin for the icon."
          },
          {
            "type": "Number",
            "name": "icon-opacity",
            "default": "0.5",
            "description": "The opacity of the icon."
          }
        ],
        "group": [
          "tile-button"
        ],
        "access": "public",
        "file": {
          "path": "_tile-button.scss",
          "name": "_tile-button.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "tile-button",
        "path": "/sass/components/tile-button/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 63,
          "end": 66
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 68,
            "end": 70
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-tile-button-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "tile-button"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_tile-button.scss",
          "name": "_tile-button.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "tile-button",
        "path": "/sass/components/tile-button/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 72,
          "end": 75
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  $value: utils.require-map-get($config, $name, \"component-tile-button [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
          "line": {
            "start": 77,
            "end": 80
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-tile-button-get(\"property\");"
          }
        ],
        "group": [
          "tile-button"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_tile-button.scss",
          "name": "_tile-button.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "tile-button",
        "path": "/sass/components/tile-button/#mixin-styles",
        "description": "Prints component styles\n",
        "commentRange": {
          "start": 82,
          "end": 84
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"tile-button\");\n\n  #{ $prefix } {\n    white-space: normal;\n    margin: 0;\n    height: 100%;\n    width: 100%;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    text-align: center;\n    padding: get(\"padding\");\n    border-radius: get(\"border-radius\");\n    line-height: get(\"line-height\");\n    @if get(\"transition-enabled\") {\n      transition-duration: get(\"transition-duration\");\n      transition-property: get(\"transition-properties\");\n    }\n  }\n  #{ $prefix }__row {\n    \n    & + & {\n      margin-top: get(\"row-margin\");\n    }\n  }\n\n  $desc-size: get(\"description-size\");\n\n  @if ($desc-size and typography.has-size($desc-size)) {\n    #{ $prefix }__row--description {\n      @include typography.size($desc-size, $only-font-size: true);\n    }\n  }\n  // Special row style for icons (optionally transparent)\n  #{ $prefix }__row--icon {\n    margin: 0 auto;\n    opacity: get(\"icon-opacity\");\n    font-size: get(\"icon-font-size\");\n    & + #{ $prefix }__row {\n      margin-top: get(\"icon-margin\");\n    }\n  }\n",
          "line": {
            "start": 86,
            "end": 130
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-tile-button-styles();"
          }
        ],
        "group": [
          "tile-button"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_tile-button.scss",
          "name": "_tile-button.scss"
        }
      }
    ],
    "tile-grid": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "tile-grid",
        "path": "/sass/components/tile-grid/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 14,
          "end": 18
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"aspect-ratio\" : list.slash(4, 3),\n  \"gap\" : 1rem,\n  \"width\" : 10em,\n)",
          "scope": "default",
          "line": {
            "start": 20,
            "end": 24
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "CssValue",
            "name": "aspect-ratio",
            "default": "list.slash(4, 3)"
          },
          {
            "type": "Number",
            "name": "gap",
            "default": "1rem",
            "description": "The gap for the tile grid."
          },
          {
            "type": "Number",
            "name": "width",
            "default": "10em"
          }
        ],
        "group": [
          "tile-grid"
        ],
        "access": "public",
        "file": {
          "path": "_tile-grid.scss",
          "name": "_tile-grid.scss"
        }
      },
      {
        "id": "variable-sizes",
        "title": "$sizes",
        "groupName": "tile-grid",
        "path": "/sass/components/tile-grid/#variable-sizes",
        "description": "Alternate Sizes for reflowable grid\n- Map of preferred width for columns and optional aspect-ratio for item\n",
        "commentRange": {
          "start": 26,
          "end": 28
        },
        "context": {
          "type": "variable",
          "name": "sizes",
          "value": "(\n  \"large\" : (\n    \"width\" : 20em,\n  )\n)",
          "scope": "default",
          "line": {
            "start": 30,
            "end": 34
          }
        },
        "type": "Map",
        "group": [
          "tile-grid"
        ],
        "access": "public",
        "file": {
          "path": "_tile-grid.scss",
          "name": "_tile-grid.scss"
        }
      },
      {
        "id": "variable-static-sizes",
        "title": "$static-sizes",
        "groupName": "tile-grid",
        "path": "/sass/components/tile-grid/#variable-static-sizes",
        "description": "Static grid width styles\n",
        "commentRange": {
          "start": 36,
          "end": 37
        },
        "context": {
          "type": "variable",
          "name": "static-sizes",
          "value": "(\n  \"static\" : (\n    \"default\" : (\n      \"columns\" : 1,\n      \"gap\" : null,\n      \"aspect-ratio\" : list.slash(4, 3)\n    ),\n    \"small\" : (\n      \"direction\" : \"min\",\n      \"columns\" : 2,\n      \"gap\" : null,\n    ),\n    \"medium\" : (\n      \"direction\" : \"min\",\n      \"columns\" : 3,\n      \"gap\" : null,\n    ),\n  ),\n  \"static-wide\" : (\n    \"default\" : (\n      \"columns\" : 1,\n      \"gap\" : null,\n      \"aspect-ratio\" : list.slash(4, 3)\n    ),\n    \"small\" : (\n      \"direction\" : \"min\",\n      \"columns\" : 2,\n      \"gap\" : null,\n    ),\n  )\n)",
          "scope": "default",
          "line": {
            "start": 39,
            "end": 69
          }
        },
        "type": "Map",
        "group": [
          "tile-grid"
        ],
        "access": "public",
        "file": {
          "path": "_tile-grid.scss",
          "name": "_tile-grid.scss"
        },
        "usedBy": [
          {
            "description": "Set fixed sizes map\n",
            "context": {
              "type": "mixin",
              "name": "set-static",
              "code": "\n  $static-sizes: utils.map-merge($static-sizes, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 84,
                "end": 86
              }
            }
          },
          {
            "description": "Set fixed sizes map\n",
            "context": {
              "type": "mixin",
              "name": "set-static",
              "code": "\n  $static-sizes: utils.map-merge($static-sizes, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 84,
                "end": 86
              }
            }
          },
          {
            "description": "Output component stylesheet\n",
            "context": {
              "type": "mixin",
              "name": "styles",
              "code": "\n  $prefix: selector.class(\"tile-grid\");\n\n  #{ $prefix } {\n    display: grid;\n    gap: get(\"gap\");\n    grid-template-columns: repeat(auto-fit, minmax(get(\"width\"), 1fr));\n    grid-auto-rows: 1fr;\n  }\n  #{ $prefix }__item {\n    aspect-ratio: get(\"aspect-ratio\");\n  }\n  // Use with fill-context, creates the space for images/etc\n  #{ $prefix }--expanded {\n    #{ $prefix }__item {\n      width: 100%;\n      height: 100%;\n      overflow: hidden;\n    }\n  }\n\n  // Print out reflowable sizes modifiers\n  @each $modifier, $props in $sizes {\n    $width: map.get($props, \"width\");\n    $gap: map.get($props, \"gap\");\n    $aspect-ratio: map.get($props, \"aspect-ratio\");\n    \n    @if ($width or $gap) {\n      #{ $prefix }--#{ $modifier } {\n        @if utils.map-has($props, \"width\") {\n          grid-template-columns: repeat(auto-fit, minmax($width, 1fr));\n        }\n        gap: $gap;\n      }\n    }\n    @if $aspect-ratio {\n      #{ $prefix }--#{ $modifier } #{ $prefix }__item {\n        aspect-ratio: $aspect-ratio;\n      }\n    }\n  }\n\n  // Print out the static column styles\n  // - Adaptive column count per breakpoint, equal widths\n  @each $modifier, $breakpoints in $static-sizes {\n    @include breakpoint.from-each($breakpoints) using ($props) {\n      #{ $prefix }--#{ $modifier } {\n        grid-template-columns: repeat(map.get($props, \"columns\"), 1fr);\n        gap: map.get($props, \"gap\");\n      }\n      @if utils.map-contains-any($props, (\"aspect-ratio\",)) {\n        #{ $prefix }__item {\n          aspect-ratio: map.get($props, \"aspect-ratio\");\n        }\n      }\n    }\n  }\n\n  // Modifier to force no gap on grid\n  #{ $prefix }--no-gap {\n    gap: 0 !important;\n  }\n",
              "line": {
                "start": 109,
                "end": 171
              }
            }
          }
        ]
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "tile-grid",
        "path": "/sass/components/tile-grid/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 71,
          "end": 74
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 76,
            "end": 78
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-tile-grid-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "tile-grid"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_tile-grid.scss",
          "name": "_tile-grid.scss"
        }
      },
      {
        "id": "mixin-set-static",
        "title": "set-static()",
        "groupName": "tile-grid",
        "path": "/sass/components/tile-grid/#mixin-set-static",
        "description": "Set fixed sizes map\n",
        "commentRange": {
          "start": 80,
          "end": 82
        },
        "context": {
          "type": "mixin",
          "name": "set-static",
          "code": "\n  $static-sizes: utils.map-merge($static-sizes, $changes, $merge-mode) !global;\n",
          "line": {
            "start": 84,
            "end": 86
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          },
          {
            "type": "String",
            "name": "merge-mode",
            "description": "Merge mode see utils.map-merge() [null|\"deep\"|\"overwrite\"]"
          }
        ],
        "group": [
          "tile-grid"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "static-sizes"
          },
          {
            "type": "variable",
            "name": "static-sizes"
          }
        ],
        "file": {
          "path": "_tile-grid.scss",
          "name": "_tile-grid.scss"
        }
      },
      {
        "id": "mixin-set-sizes",
        "title": "set-sizes()",
        "groupName": "tile-grid",
        "path": "/sass/components/tile-grid/#mixin-set-sizes",
        "description": "Set sizes map\n",
        "commentRange": {
          "start": 88,
          "end": 90
        },
        "context": {
          "type": "mixin",
          "name": "set-sizes",
          "code": "\n  $sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;\n",
          "line": {
            "start": 92,
            "end": 94
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          },
          {
            "type": "String",
            "name": "merge-mode",
            "description": "Merge mode see utils.map-merge() [null|\"deep\"|\"overwrite\"]"
          }
        ],
        "group": [
          "tile-grid"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "sizes"
          },
          {
            "type": "variable",
            "name": "sizes"
          }
        ],
        "file": {
          "path": "_tile-grid.scss",
          "name": "_tile-grid.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "tile-grid",
        "path": "/sass/components/tile-grid/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 96,
          "end": 99
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"component-tile-grid [config]\");\n",
          "line": {
            "start": 101,
            "end": 103
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-tile-grid-get(\"property\");"
          }
        ],
        "group": [
          "tile-grid"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_tile-grid.scss",
          "name": "_tile-grid.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "tile-grid",
        "path": "/sass/components/tile-grid/#mixin-styles",
        "description": "Output component stylesheet\n",
        "commentRange": {
          "start": 105,
          "end": 107
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"tile-grid\");\n\n  #{ $prefix } {\n    display: grid;\n    gap: get(\"gap\");\n    grid-template-columns: repeat(auto-fit, minmax(get(\"width\"), 1fr));\n    grid-auto-rows: 1fr;\n  }\n  #{ $prefix }__item {\n    aspect-ratio: get(\"aspect-ratio\");\n  }\n  // Use with fill-context, creates the space for images/etc\n  #{ $prefix }--expanded {\n    #{ $prefix }__item {\n      width: 100%;\n      height: 100%;\n      overflow: hidden;\n    }\n  }\n\n  // Print out reflowable sizes modifiers\n  @each $modifier, $props in $sizes {\n    $width: map.get($props, \"width\");\n    $gap: map.get($props, \"gap\");\n    $aspect-ratio: map.get($props, \"aspect-ratio\");\n    \n    @if ($width or $gap) {\n      #{ $prefix }--#{ $modifier } {\n        @if utils.map-has($props, \"width\") {\n          grid-template-columns: repeat(auto-fit, minmax($width, 1fr));\n        }\n        gap: $gap;\n      }\n    }\n    @if $aspect-ratio {\n      #{ $prefix }--#{ $modifier } #{ $prefix }__item {\n        aspect-ratio: $aspect-ratio;\n      }\n    }\n  }\n\n  // Print out the static column styles\n  // - Adaptive column count per breakpoint, equal widths\n  @each $modifier, $breakpoints in $static-sizes {\n    @include breakpoint.from-each($breakpoints) using ($props) {\n      #{ $prefix }--#{ $modifier } {\n        grid-template-columns: repeat(map.get($props, \"columns\"), 1fr);\n        gap: map.get($props, \"gap\");\n      }\n      @if utils.map-contains-any($props, (\"aspect-ratio\",)) {\n        #{ $prefix }__item {\n          aspect-ratio: map.get($props, \"aspect-ratio\");\n        }\n      }\n    }\n  }\n\n  // Modifier to force no gap on grid\n  #{ $prefix }--no-gap {\n    gap: 0 !important;\n  }\n",
          "line": {
            "start": 109,
            "end": 171
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-tile-grid-styles();"
          }
        ],
        "group": [
          "tile-grid"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "variable",
            "name": "sizes"
          },
          {
            "type": "variable",
            "name": "static-sizes"
          }
        ],
        "file": {
          "path": "_tile-grid.scss",
          "name": "_tile-grid.scss"
        }
      }
    ],
    "tile-grid-overlay": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "tile-grid-overlay",
        "path": "/sass/components/tile-grid-overlay/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 15,
          "end": 16
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"button-background-color\": #ce97e6dc,\n  \"button-background-color-hover\": #b882cf,\n  \"button-background-color-striped\": #b397e6cc,\n  \"button-background-color-active\": #868dece4,\n  \"background-image-filter\" : (grayscale(1) contrast(0.6) brightness(1.5)),\n  \"breakpoint-even-columns-min\" : \"small\",\n  \"breakpoint-even-columns-max\" : \"medium\",\n  \"wide-breakpoint-even-columns-min\" : \"small\"\n)",
          "scope": "default",
          "line": {
            "start": 18,
            "end": 27
          }
        },
        "type": "Map",
        "group": [
          "tile-grid-overlay"
        ],
        "access": "public",
        "file": {
          "path": "_tile-grid-overlay.scss",
          "name": "_tile-grid-overlay.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "tile-grid-overlay",
        "path": "/sass/components/tile-grid-overlay/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 29,
          "end": 32
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 34,
            "end": 36
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-tile-grid-overlay-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "tile-grid-overlay"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_tile-grid-overlay.scss",
          "name": "_tile-grid-overlay.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "tile-grid-overlay",
        "path": "/sass/components/tile-grid-overlay/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 38,
          "end": 41
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"tile-grid-overlay [config]\");\n",
          "line": {
            "start": 43,
            "end": 45
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-tile-grid-overlay-get(\"property\");"
          }
        ],
        "group": [
          "tile-grid-overlay"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_tile-grid-overlay.scss",
          "name": "_tile-grid-overlay.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "tile-grid-overlay",
        "path": "/sass/components/tile-grid-overlay/#mixin-styles",
        "description": "Output component styles\n",
        "commentRange": {
          "start": 47,
          "end": 49
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n\n  $prefix: selector.class(\"tile-grid-overlay\");\n\n  #{ $prefix } {\n    position: relative;\n  }\n  #{ $prefix }__background-image {\n    @include layout.absolute-fill();\n    filter: get(\"background-image-filter\");\n  }\n  #{ $prefix }__grid {\n    position: relative;\n    @media print {\n      display: block;\n    }\n  }\n  #{ $prefix }__button {\n    background-color: color.get(get(\"button-background-color\"));\n    border-radius: 0;\n    padding-left: 1em;\n    padding-right: 1em;\n    &:hover,\n    &:focus {\n      // Competes with striping\n      background-color: color.get(get(\"button-background-color-hover\")) !important; \n    }\n    &.is-active {\n      // Competes with striping\n      background-color: color.get(get(\"button-background-color-active\")) !important; \n    }\n    @media print {\n      display: block;\n      text-align: left;\n      height: auto;\n      aspect-ratio: auto;\n      padding-left: 0;\n    }\n  }\n\n  // Striping\n  #{ $prefix }__item {\n    &:nth-child(even) #{ $prefix }__button {\n      background-color: color.get(get(\"button-background-color-striped\"));\n    }\n    // They want it to alternate when 2 column, so it has to flip flop\n    // Then when it returns to above or below this 2 column area odd works like before\n    @include breakpoint.min-max(\n      get(\"breakpoint-even-columns-min\"), \n      get(\"breakpoint-even-columns-max\")\n    ) {\n      @include -two-column-striping($prefix);\n    }\n  }\n\n  // When 2 columns needs the same styles as between small/medium on standard layout\n  // no way to reuse because it's inside different media queries\n  #{ $prefix }__grid--wide {\n    #{ $prefix }__item {\n      @include breakpoint.min(get(\"wide-breakpoint-even-columns-min\")) {\n        @include -two-column-striping($prefix);\n      }\n    }\n  }\n",
          "line": {
            "start": 51,
            "end": 115
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-tile-grid-overlay-styles();"
          }
        ],
        "group": [
          "tile-grid-overlay"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_tile-grid-overlay.scss",
          "name": "_tile-grid-overlay.scss"
        }
      }
    ],
    "vignette": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "vignette",
        "path": "/sass/components/vignette/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 13,
          "end": 16
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"background-color\" : rgb(0,0,0),\n  \"image-filter\" : saturate(85%)\n)",
          "scope": "private",
          "line": {
            "start": 18,
            "end": 21
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Color",
            "name": "background-color",
            "default": "rgb(0,0,0)",
            "description": "Color used for the fade-in of the vignette. Must be actual color not color module palette name"
          },
          {
            "type": "CssValue",
            "name": "image-filter",
            "default": "saturate(85%)",
            "description": "Filter value placed over image."
          }
        ],
        "group": [
          "vignette"
        ],
        "access": "public",
        "file": {
          "path": "_vignette.scss",
          "name": "_vignette.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "vignette",
        "path": "/sass/components/vignette/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 23,
          "end": 26
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 28,
            "end": 30
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-vignette-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "vignette"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_vignette.scss",
          "name": "_vignette.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "vignette",
        "path": "/sass/components/vignette/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 32,
          "end": 35
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"vignette [config]\");\n",
          "line": {
            "start": 37,
            "end": 39
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-vignette-get(\"property\");"
          }
        ],
        "group": [
          "vignette"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_vignette.scss",
          "name": "_vignette.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "vignette",
        "path": "/sass/components/vignette/#mixin-styles",
        "description": "Output component stylesheet\n",
        "commentRange": {
          "start": 41,
          "end": 43
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  $prefix: selector.class(\"vignette\");\n\n  #{ $prefix } {\n    position: relative;\n    &::after {\n      content: \"\";\n      display: block;\n      @include layout.absolute-fill();\n      background: linear-gradient(0deg,color.change(get(\"background-color\"), $alpha: 0.8),color.change(get(\"background-color\"), $alpha: 0) 45%);\n      pointer-events: none;\n    }\n    @if get(\"image-filter\") {\n      img {\n        filter: get(\"image-filter\");\n      }\n    }\n  }\n",
          "line": {
            "start": 45,
            "end": 63
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-vignette-styles();"
          }
        ],
        "group": [
          "vignette"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_vignette.scss",
          "name": "_vignette.scss"
        }
      }
    ],
    "wysiwyg": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "wysiwyg",
        "path": "/sass/components/wysiwyg/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 14,
          "end": 20
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"exclude-selector\" : \".wysiwyg__exclude\",\n  \"img-excluded-selectors\" : (),\n  \"ul-excluded-selectors\" : (\".list-lines\",),\n  \"link-excluded-selectors\" : (\"[class]\",),\n  \"headline-sizes\" : (\n    \"h2\" : \"h2\",\n    \"h3\" : \"h3\",\n    \"h4\" : \"h4\",\n    \"h5\" : \"h5\",\n    \"h6\" : \"h6\",\n  )\n)",
          "scope": "default",
          "line": {
            "start": 22,
            "end": 34
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "String",
            "name": "exclude-selector",
            "default": "\".wysiwyg__exclude\"",
            "description": "Applied to all selectors"
          },
          {
            "type": "List",
            "name": "img-excluded-selectors",
            "default": "()",
            "description": "Extra selectors to prevent <img> styling"
          },
          {
            "type": "List",
            "name": "ul-excluded-selectors",
            "default": "(\".list-lines\",)",
            "description": "Extra selectors to prevent <ul> styling"
          },
          {
            "type": "List",
            "name": "link-excluded-selectors",
            "default": "(\"[class",
            "description": "\",)] Extra selectors to prevent <a> styling"
          },
          {
            "type": "Map",
            "name": "headline-sizes",
            "default": "Map",
            "description": "Headlines from typography sizes (ElementName : TypographySizeName, ...)"
          }
        ],
        "group": [
          "wysiwyg"
        ],
        "access": "public",
        "file": {
          "path": "_wysiwyg.scss",
          "name": "_wysiwyg.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "wysiwyg",
        "path": "/sass/components/wysiwyg/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 36,
          "end": 39
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 41,
            "end": 43
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-wysiwyg-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "wysiwyg"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_wysiwyg.scss",
          "name": "_wysiwyg.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "wysiwyg",
        "path": "/sass/components/wysiwyg/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 45,
          "end": 48
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"component-wysiwyg [config]\");\n",
          "line": {
            "start": 50,
            "end": 52
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-wysiwyg-get(\"property\");"
          }
        ],
        "group": [
          "wysiwyg"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_wysiwyg.scss",
          "name": "_wysiwyg.scss"
        }
      },
      {
        "id": "mixin-styles",
        "title": "styles()",
        "groupName": "wysiwyg",
        "path": "/sass/components/wysiwyg/#mixin-styles",
        "description": "Output component stylesheet\n- Note this is setup so that it can be used for separate stylesheets (ie. tinyMCE or ckeditor)\n",
        "commentRange": {
          "start": 54,
          "end": 60
        },
        "context": {
          "type": "mixin",
          "name": "styles",
          "code": "\n  @if ($in-selector) {\n    .wysiwyg {\n      @include _styles;\n    }\n  } @else {\n    @include _styles;\n  }\n",
          "line": {
            "start": 62,
            "end": 70
          }
        },
        "parameter": [
          {
            "type": "Boolean",
            "name": "in-selector",
            "default": "true",
            "description": "Whether to print with .wysiwyg selector or not, used when building like editor/ckeditor stylesheet where these aren't wrapped in selector and should just affect all elements in the editor"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.component-wysiwyg-styles(true);\n// Output not in selector (for editor stylesheet/preview)\n@include ulu.component-wysiwyg-styles(false);"
          }
        ],
        "group": [
          "wysiwyg"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_wysiwyg.scss",
          "name": "_wysiwyg.scss"
        }
      }
    ],
    "breakpoint": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "breakpoint",
        "path": "/sass/core/breakpoint/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 10,
          "end": 15
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"base\":      16px,\n  \"default\" :  \"small\",\n  \"gap\":       0.01em,\n  \"null-name\": \"none\",\n)",
          "scope": "default",
          "line": {
            "start": 17,
            "end": 22
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Number",
            "name": "base",
            "default": "16px",
            "description": "Assumed pixel base, can change based on users font settings so this is just to get us in the ballpark. Note this is not the base font size but the user agent's or user's browser preference. This number is just being used for calculating estimated em sizes from average base. Since pixels are easier to understand but since we allow the user to set their font size. All of our css is relative to that, including most of the layout (rems, other relative units)"
          },
          {
            "type": "Number",
            "name": "gap",
            "default": "0.01em",
            "description": "The amount to offset min from max media queries incase you are using both (prevent overlap)"
          },
          {
            "type": "String",
            "name": "null-name",
            "default": "\"none\"",
            "description": "The name of the space from 0 to the first breakpoint (doesn't really matter) used when passing breakpoints to JS via content property (see breakpoint.embed-for-scripts() or cssvar.declare-breakpoint-sizes()) to pass breakpoints to JS. The js ui/breakpoints.js module provides methods for interacting with breakpoints in JS."
          },
          {
            "type": "String",
            "name": "default",
            "default": "\"small\"",
            "description": "The name of the breakpoint that is considered the major change (ie desktop to mobile) used by other modules/components"
          }
        ],
        "group": [
          "breakpoint"
        ],
        "access": "public",
        "file": {
          "path": "_breakpoint.scss",
          "name": "_breakpoint.scss"
        },
        "usedBy": [
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 29,
                "end": 31
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 29,
                "end": 31
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, 'breakpoint [config]');\n",
              "line": {
                "start": 41,
                "end": 43
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 146,
                "end": 148
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 146,
                "end": 148
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  $value: utils.require-map-get($config, $name, \"button [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
              "line": {
                "start": 156,
                "end": 159
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 27,
                "end": 29
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 27,
                "end": 29
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"css-vars [config]\");\n",
              "line": {
                "start": 37,
                "end": 39
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 101,
                "end": 103
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 101,
                "end": 103
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"element [config]\");\n",
              "line": {
                "start": 109,
                "end": 111
              }
            }
          },
          {
            "description": "Layout utility to add a colored bar (cap) to an element's edge, positioned over the element and its border\n- You need to set position (relative, fixed) on parent\n",
            "context": {
              "type": "mixin",
              "name": "cap",
              "code": "\n  $defaults: (\n    \"color\" : get(\"cap-color\"), \n    \"size\" : get(\"cap-size\"), \n    \"offset\" : 0, \n    \"color-hover\" : null,\n    \"border-radius\" : null,\n    \"padding-adjust\" : null,\n  );\n  $config: map.merge($defaults, $options);\n  $element: utils.when($before, \"::before\", \"::after\");\n\n  &#{ $element } {\n    content: \"\";\n    position: absolute;\n    display: block;\n  }\n\n  @include cap-appearance($side, $config, $before);\n",
              "line": {
                "start": 333,
                "end": 356
              }
            }
          },
          {
            "description": "Layout utility to add a colored bar (cap) to an element's edge, positioned over the element and its border\n- You need to set position (relative, fixed) on parent\n",
            "context": {
              "type": "mixin",
              "name": "cap",
              "code": "\n  $defaults: (\n    \"color\" : get(\"cap-color\"), \n    \"size\" : get(\"cap-size\"), \n    \"offset\" : 0, \n    \"color-hover\" : null,\n    \"border-radius\" : null,\n    \"padding-adjust\" : null,\n  );\n  $config: map.merge($defaults, $options);\n  $element: utils.when($before, \"::before\", \"::after\");\n\n  &#{ $element } {\n    content: \"\";\n    position: absolute;\n    display: block;\n  }\n\n  @include cap-appearance($side, $config, $before);\n",
              "line": {
                "start": 333,
                "end": 356
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 33,
                "end": 35
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 33,
                "end": 35
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"layout [config]\");\n",
              "line": {
                "start": 40,
                "end": 42
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 29,
                "end": 31
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 29,
                "end": 31
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"selector [config]\");\n",
              "line": {
                "start": 38,
                "end": 40
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 38,
                "end": 40
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 38,
                "end": 40
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"themes [config]\");\n",
              "line": {
                "start": 65,
                "end": 67
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 74,
                "end": 76
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 74,
                "end": 76
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, 'typography [config]');\n",
              "line": {
                "start": 82,
                "end": 84
              }
            }
          },
          {
            "description": "Update the units config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: utils.map-merge($config, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 36,
                "end": 38
              }
            }
          },
          {
            "description": "Update the units config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: utils.map-merge($config, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 36,
                "end": 38
              }
            }
          },
          {
            "description": "Get a unit by name (preset) or number (multiplier of base)\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @if (meta.type-of($value) == string) {\n    @return utils.require-map-get($config, $value, 'unit [config]');\n  }\n  @return get(\"default\") * $value;\n",
              "line": {
                "start": 44,
                "end": 49
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 31,
                "end": 33
              }
            }
          },
          {
            "description": "Change modules $config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: map.merge($config, $changes) !global;\n",
              "line": {
                "start": 31,
                "end": 33
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return require-map-get($config, $name, 'utils');\n",
              "line": {
                "start": 43,
                "end": 45
              }
            }
          }
        ]
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "breakpoint",
        "path": "/sass/core/breakpoint/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 24,
          "end": 27
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 29,
            "end": 31
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.breakpoint-set(( \"default\" : \"mini\" ));",
            "description": "Change default name"
          }
        ],
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "group": [
          "breakpoint"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_breakpoint.scss",
          "name": "_breakpoint.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "breakpoint",
        "path": "/sass/core/breakpoint/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 33,
          "end": 39
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, 'breakpoint [config]');\n",
          "line": {
            "start": 41,
            "end": 43
          }
        },
        "example": [
          {
            "type": "scss",
            "code": ".test-get {\n  font-size: ulu.breakpoint-get(\"base\");\n}",
            "description": "Example usage",
            "modifier": "compile"
          }
        ],
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "return": {
          "type": "*",
          "description": "Property Value"
        },
        "group": [
          "breakpoint"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "require-map-get"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_breakpoint.scss",
          "name": "_breakpoint.scss"
        },
        "usedBy": [
          {
            "description": "Get a specific breakpoint's size's value and optionally specify max to get the ending/max value for a breakpoint\n",
            "context": {
              "type": "function",
              "name": "get-size-value",
              "code": "\n  @if ($max) {\n    @return get-size($size) - get(\"gap\");\n  } @else {\n    @return get-size($size);\n  }\n",
              "line": {
                "start": 106,
                "end": 112
              }
            }
          },
          {
            "description": "Check if a specific size exist\n",
            "context": {
              "type": "function",
              "name": "exists",
              "code": "\n  $size: map.get($sizes, $name);\n  @return utils.when($size != null, true, false);\n",
              "line": {
                "start": 132,
                "end": 135
              }
            }
          },
          {
            "description": "Utility Method for iterating over a map of breakpoints and apply styles\n",
            "context": {
              "type": "mixin",
              "name": "from-each",
              "code": "\n  $directionRequired: map.get($options, \"directionRequired\");\n  @each $name, $props in $breakpoints {\n    $direction: map.get($props, \"direction\");\n    // If direction print with breakpoint\n    @if ($direction) {\n      @include from($name, $direction) {\n        @content($props);\n      }\n    // If user requires direction throw error if missing\n    } @else if ($directionRequired) {\n      @debug $breakpoints;\n      @error 'ULU: Missing required \"direction\" in breakpoints map (above).';\n    // Else direction wasn't required print without media query (useful for default style)\n    } @else {\n      @content($props);\n    }\n  }\n",
              "line": {
                "start": 231,
                "end": 249
              }
            }
          },
          {
            "description": "Utility Method for iterating over a map of breakpoints and apply styles\n",
            "context": {
              "type": "mixin",
              "name": "from-each",
              "code": "\n  $directionRequired: map.get($options, \"directionRequired\");\n  @each $name, $props in $breakpoints {\n    $direction: map.get($props, \"direction\");\n    // If direction print with breakpoint\n    @if ($direction) {\n      @include from($name, $direction) {\n        @content($props);\n      }\n    // If user requires direction throw error if missing\n    } @else if ($directionRequired) {\n      @debug $breakpoints;\n      @error 'ULU: Missing required \"direction\" in breakpoints map (above).';\n    // Else direction wasn't required print without media query (useful for default style)\n    } @else {\n      @content($props);\n    }\n  }\n",
              "line": {
                "start": 231,
                "end": 249
              }
            }
          },
          {
            "description": "Attaches breakpoints to an element pseudo content for access via script\n- Note you can also use cssvar.declare-breakpoints to get a similar implementation with css custom-properties\n- Use with ulu/js/breakpoints (class has options for content property or css custom property)\n- Breakpoints always min-width (upwards) for javascript setup\n",
            "context": {
              "type": "mixin",
              "name": "embed-for-scripts",
              "code": "\n  &::before {\n    display: none;\n    content: get(\"null-name\");\n    @each $size, $breakpoint in $sizes {\n      @include min($size) {\n        content: $size;\n      }\n    }\n  }\n",
              "line": {
                "start": 256,
                "end": 266
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Output the default button styles\n",
            "context": {
              "type": "mixin",
              "name": "default",
              "code": "\n  $font-size: get(\"font-size\");\n  @if ($with-reset) {\n    @include reset();\n  }\n  appearance: none; // If used with select for example\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: get(\"gap\");\n  text-transform: get(\"text-transform\");\n  text-shadow: get(\"text-shadow\");\n  vertical-align: middle;\n  font-family: get(\"font-family\");\n  font-weight: get(\"font-weight\");\n  @if ($font-size) {\n    @include typography.size($font-size, null, true);\n  }\n  border-radius: get(\"border-radius\");\n  // Removed not sure why it was needed, effects buttons with \n  // borders (rendering between bg and border)\n  // background-clip: padding-box; \n  padding: get(\"padding\");\n  line-height: get(\"line-height\");\n  letter-spacing: get(\"letter-spacing\");\n  box-shadow: get(\"box-shadow\");\n  margin: get(\"margin\");\n  min-width: get(\"min-width\");\n  white-space: get(\"white-space\");\n  max-width: 100%; // Questionable, not sure if it's needed\n  flex-shrink: 0; \n  // Should override link visited coloring\n  \n  @if get(\"transition-enabled\") {\n    transition-duration: get(\"transition-duration\");\n    transition-property: get(\"transition-properties\");\n  }\n  &,\n  &:visited {\n    color: color.get(get(\"color\"));\n    border: get(\"border-width\") solid color.get(get(\"border-color\"));\n    background-color: color.get(get(\"background-color\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  &:last-child {\n    margin-right: 0;\n  }\n  &:hover,\n  &:focus {\n    color: color.get(get(\"color-hover\"));\n    background-color: color.get(get(\"background-color-hover\"));\n    border-color: color.get(get(\"border-color-hover\"));\n    text-decoration: get(\"text-decoration\");\n  }\n  @include when-active() {\n    color: color.get(get(\"color-active\"));\n    background-color: color.get(get(\"background-color-active\"));\n    border-color: color.get(get(\"border-color-active\"));\n  }\n",
              "line": {
                "start": 197,
                "end": 256
              }
            }
          },
          {
            "description": "Mixin to wrap in active selectors\n- Use to match the button's active selector\n",
            "context": {
              "type": "mixin",
              "name": "when-active",
              "code": "\n  #{ get(\"active-selector\") } {\n    @content;\n  }\n",
              "line": {
                "start": 268,
                "end": 272
              }
            }
          },
          {
            "description": "Print button size styles for a specific size\n",
            "context": {
              "type": "mixin",
              "name": "size",
              "code": "\n  $size: utils.require-map-get($sizes, $name, 'button [size]');\n  $font-size: map.get($size, \"font-size\");\n  padding: map.get($size, \"padding\");\n  border-radius: map.get($size, \"border-radius\");\n  border-width: map.get($size, \"border-width\");\n  min-width: map.get($size, \"min-width\");\n  @if $font-size {\n    @include typography.size($font-size);\n  }\n",
              "line": {
                "start": 279,
                "end": 289
              }
            }
          },
          {
            "description": "Print button size styles for a specific size\n",
            "context": {
              "type": "mixin",
              "name": "size",
              "code": "\n  $size: utils.require-map-get($sizes, $name, 'button [size]');\n  $font-size: map.get($size, \"font-size\");\n  padding: map.get($size, \"padding\");\n  border-radius: map.get($size, \"border-radius\");\n  border-width: map.get($size, \"border-width\");\n  min-width: map.get($size, \"min-width\");\n  @if $font-size {\n    @include typography.size($font-size);\n  }\n",
              "line": {
                "start": 279,
                "end": 289
              }
            }
          },
          {
            "description": "Print button size styles for a specific size\n",
            "context": {
              "type": "mixin",
              "name": "size",
              "code": "\n  $size: utils.require-map-get($sizes, $name, 'button [size]');\n  $font-size: map.get($size, \"font-size\");\n  padding: map.get($size, \"padding\");\n  border-radius: map.get($size, \"border-radius\");\n  border-width: map.get($size, \"border-width\");\n  min-width: map.get($size, \"min-width\");\n  @if $font-size {\n    @include typography.size($font-size);\n  }\n",
              "line": {
                "start": 279,
                "end": 289
              }
            }
          },
          {
            "description": "Print button size styles for a specific size\n",
            "context": {
              "type": "mixin",
              "name": "size",
              "code": "\n  $size: utils.require-map-get($sizes, $name, 'button [size]');\n  $font-size: map.get($size, \"font-size\");\n  padding: map.get($size, \"padding\");\n  border-radius: map.get($size, \"border-radius\");\n  border-width: map.get($size, \"border-width\");\n  min-width: map.get($size, \"min-width\");\n  @if $font-size {\n    @include typography.size($font-size);\n  }\n",
              "line": {
                "start": 279,
                "end": 289
              }
            }
          },
          {
            "description": "Print button size styles for a specific size\n",
            "context": {
              "type": "mixin",
              "name": "size",
              "code": "\n  $size: utils.require-map-get($sizes, $name, 'button [size]');\n  $font-size: map.get($size, \"font-size\");\n  padding: map.get($size, \"padding\");\n  border-radius: map.get($size, \"border-radius\");\n  border-width: map.get($size, \"border-width\");\n  min-width: map.get($size, \"min-width\");\n  @if $font-size {\n    @include typography.size($font-size);\n  }\n",
              "line": {
                "start": 279,
                "end": 289
              }
            }
          },
          {
            "description": "Get a value from a button style\n",
            "context": {
              "type": "function",
              "name": "get-style-value",
              "code": "\n  $style: utils.require-map-get($styles, $name, 'button [color value]');\n  $state-style: ();\n  // If a specific state [hover, active] grab that map\n  @if ($state) {\n    $state-style: map.get($style, $state);\n    $state-style: utils.when($state-style, $state-style, ());\n  }\n  // From is the map to grab styles from\n  $from: utils.when($state, $state-style, $style);\n  $value: map.get($from, $prop);\n\n  // Fallback to parent (if hover)\n  @if ($state == \"hover\") {\n    $value: utils.when($value, $value, map.get($style, $prop)); \n  }\n\n  @if (meta.type-of($value) == \"string\" and string.index($prop, \"color\")) {\n    @return color.get($value);\n  } @else {\n    @return $value;\n  }\n",
              "line": {
                "start": 297,
                "end": 319
              }
            }
          },
          {
            "description": "Get a value from a button style\n",
            "context": {
              "type": "function",
              "name": "get-style-value",
              "code": "\n  $style: utils.require-map-get($styles, $name, 'button [color value]');\n  $state-style: ();\n  // If a specific state [hover, active] grab that map\n  @if ($state) {\n    $state-style: map.get($style, $state);\n    $state-style: utils.when($state-style, $state-style, ());\n  }\n  // From is the map to grab styles from\n  $from: utils.when($state, $state-style, $style);\n  $value: map.get($from, $prop);\n\n  // Fallback to parent (if hover)\n  @if ($state == \"hover\") {\n    $value: utils.when($value, $value, map.get($style, $prop)); \n  }\n\n  @if (meta.type-of($value) == \"string\" and string.index($prop, \"color\")) {\n    @return color.get($value);\n  } @else {\n    @return $value;\n  }\n",
              "line": {
                "start": 297,
                "end": 319
              }
            }
          },
          {
            "description": "Get a value from a button style\n",
            "context": {
              "type": "function",
              "name": "get-style-value",
              "code": "\n  $style: utils.require-map-get($styles, $name, 'button [color value]');\n  $state-style: ();\n  // If a specific state [hover, active] grab that map\n  @if ($state) {\n    $state-style: map.get($style, $state);\n    $state-style: utils.when($state-style, $state-style, ());\n  }\n  // From is the map to grab styles from\n  $from: utils.when($state, $state-style, $style);\n  $value: map.get($from, $prop);\n\n  // Fallback to parent (if hover)\n  @if ($state == \"hover\") {\n    $value: utils.when($value, $value, map.get($style, $prop)); \n  }\n\n  @if (meta.type-of($value) == \"string\" and string.index($prop, \"color\")) {\n    @return color.get($value);\n  } @else {\n    @return $value;\n  }\n",
              "line": {
                "start": 297,
                "end": 319
              }
            }
          },
          {
            "description": "Get a value from a button style\n",
            "context": {
              "type": "function",
              "name": "get-style-value",
              "code": "\n  $style: utils.require-map-get($styles, $name, 'button [color value]');\n  $state-style: ();\n  // If a specific state [hover, active] grab that map\n  @if ($state) {\n    $state-style: map.get($style, $state);\n    $state-style: utils.when($state-style, $state-style, ());\n  }\n  // From is the map to grab styles from\n  $from: utils.when($state, $state-style, $style);\n  $value: map.get($from, $prop);\n\n  // Fallback to parent (if hover)\n  @if ($state == \"hover\") {\n    $value: utils.when($value, $value, map.get($style, $prop)); \n  }\n\n  @if (meta.type-of($value) == \"string\" and string.index($prop, \"color\")) {\n    @return color.get($value);\n  } @else {\n    @return $value;\n  }\n",
              "line": {
                "start": 297,
                "end": 319
              }
            }
          },
          {
            "description": "Check if a color is set in the palette\n",
            "context": {
              "type": "function",
              "name": "exists",
              "code": "\n  $color: map.get($palette, $name);\n  @return utils.when($color != null, true, false);\n",
              "line": {
                "start": 133,
                "end": 136
              }
            }
          },
          {
            "description": "Get a context's value'\n",
            "context": {
              "type": "function",
              "name": "get-context-value",
              "code": "\n  $context: get-context($name);\n  $value: map.get($context, $prop);\n  // Get from palette by name\n  @if (meta.type-of($value) == \"string\") {\n    $value: get($value);\n  }\n  @return $value;\n",
              "line": {
                "start": 167,
                "end": 175
              }
            }
          },
          {
            "description": "Get a context's value'\n",
            "context": {
              "type": "function",
              "name": "get-context-value",
              "code": "\n  $context: get-context($name);\n  $value: map.get($context, $prop);\n  // Get from palette by name\n  @if (meta.type-of($value) == \"string\") {\n    $value: get($value);\n  }\n  @return $value;\n",
              "line": {
                "start": 167,
                "end": 175
              }
            }
          },
          {
            "description": "Prints contexts styles\n",
            "context": {
              "type": "mixin",
              "name": "context-styles",
              "code": "\n  $context: get-context($name);\n  background-color: get-context-value($name, \"background-color\");\n  background: map.get($context, \"background\"); // Allow gradients/images\n  background-image: map.get($context, \"background-image\"); // Allow gradients/images\n  color: get-context-value($name, \"color\");\n",
              "line": {
                "start": 180,
                "end": 186
              }
            }
          },
          {
            "description": "Prints contexts styles\n",
            "context": {
              "type": "mixin",
              "name": "context-styles",
              "code": "\n  $context: get-context($name);\n  background-color: get-context-value($name, \"background-color\");\n  background: map.get($context, \"background\"); // Allow gradients/images\n  background-image: map.get($context, \"background-image\"); // Allow gradients/images\n  color: get-context-value($name, \"color\");\n",
              "line": {
                "start": 180,
                "end": 186
              }
            }
          },
          {
            "description": "Tint (add white) a color using the default white by a percentage\n",
            "context": {
              "type": "function",
              "name": "tint",
              "code": "\n  @return color.mix(get(\"white\"), get($color), $percentage);\n",
              "line": {
                "start": 195,
                "end": 197
              }
            }
          },
          {
            "description": "Tint (add white) a color using the default white by a percentage\n",
            "context": {
              "type": "function",
              "name": "tint",
              "code": "\n  @return color.mix(get(\"white\"), get($color), $percentage);\n",
              "line": {
                "start": 195,
                "end": 197
              }
            }
          },
          {
            "description": "Tint (add white) a color using the default white by a percentage (Using color-mix)\n- This only works in modern browsers (as of June 2025)\n- These match ulu.color-tint() and are designed to accept the same arguments with the same results\n",
            "context": {
              "type": "function",
              "name": "css-tint",
              "code": "\n  @return color-mix(in srgb, get(\"white\") $percentage, get($color) calc(100% - $percentage));\n",
              "line": {
                "start": 206,
                "end": 208
              }
            }
          },
          {
            "description": "Tint (add white) a color using the default white by a percentage (Using color-mix)\n- This only works in modern browsers (as of June 2025)\n- These match ulu.color-tint() and are designed to accept the same arguments with the same results\n",
            "context": {
              "type": "function",
              "name": "css-tint",
              "code": "\n  @return color-mix(in srgb, get(\"white\") $percentage, get($color) calc(100% - $percentage));\n",
              "line": {
                "start": 206,
                "end": 208
              }
            }
          },
          {
            "description": "Shade (add black) a color with the default black by a percentage\n",
            "context": {
              "type": "function",
              "name": "shade",
              "code": "\n  @return color.mix(get(\"black\"), get($color), $percentage);\n",
              "line": {
                "start": 217,
                "end": 219
              }
            }
          },
          {
            "description": "Shade (add black) a color with the default black by a percentage\n",
            "context": {
              "type": "function",
              "name": "shade",
              "code": "\n  @return color.mix(get(\"black\"), get($color), $percentage);\n",
              "line": {
                "start": 217,
                "end": 219
              }
            }
          },
          {
            "description": "Shade (add black) a color using the default white by a percentage (Using color-mix)\n- This only works in modern browsers (as of June 2025)\n- These match ulu.color-shade() and are designed to accept the same arguments with the same results\n",
            "context": {
              "type": "function",
              "name": "css-shade",
              "code": "\n  @return color-mix(in srgb, get(\"black\") $percentage, get($color) calc(100% - $percentage));\n",
              "line": {
                "start": 228,
                "end": 230
              }
            }
          },
          {
            "description": "Shade (add black) a color using the default white by a percentage (Using color-mix)\n- This only works in modern browsers (as of June 2025)\n- These match ulu.color-shade() and are designed to accept the same arguments with the same results\n",
            "context": {
              "type": "function",
              "name": "css-shade",
              "code": "\n  @return color-mix(in srgb, get(\"black\") $percentage, get($color) calc(100% - $percentage));\n",
              "line": {
                "start": 228,
                "end": 230
              }
            }
          },
          {
            "description": "Prints all context styles \n",
            "context": {
              "type": "mixin",
              "name": "all-context-styles",
              "code": "\n  $prefix: selector.class(\"color-context\");\n  @each $name, $context in $contexts {\n    @if (not $with-prop or map.get($context, $with-prop)) {\n      #{ $prefix }-#{ $name } {\n        @include context-styles($name);\n      }\n    }\n  }\n",
              "line": {
                "start": 241,
                "end": 250
              }
            }
          },
          {
            "description": "Outputs all color classes\n",
            "context": {
              "type": "mixin",
              "name": "all-color-class-styles",
              "code": "\n  $prefix: selector.class(\"color\");\n  @each $name, $output in $color-classes {\n    @if ($output) {\n      #{ $prefix }-#{ $name } {\n        color: get($name);\n      }\n    }\n  }\n",
              "line": {
                "start": 258,
                "end": 267
              }
            }
          },
          {
            "description": "Outputs a single custom property declaration\n",
            "context": {
              "type": "mixin",
              "name": "declare",
              "code": "\n  @if meta.type-of($value) == \"map\" {\n    $base-value: map.get($value, \"value\");\n    $breakpoints: map.get($value, \"breakpoints\");\n    \n    @if $base-value != null {\n      #{ name($name, $prefix) } : #{ $base-value };\n    }\n    \n    @if $breakpoints and meta.type-of($breakpoints) == \"map\" {\n      @include breakpoint.from-each($breakpoints) using ($b-props) {\n        $b-value: map.get($b-props, \"value\");\n        @if $b-value != null {\n          #{ name($name, $prefix) } : #{ $b-value };\n        }\n      }\n    }\n  } @else {\n    #{ name($name, $prefix) } : #{ $value };\n  }\n",
              "line": {
                "start": 83,
                "end": 103
              }
            }
          },
          {
            "description": "Outputs a single custom property declaration\n",
            "context": {
              "type": "mixin",
              "name": "declare",
              "code": "\n  @if meta.type-of($value) == \"map\" {\n    $base-value: map.get($value, \"value\");\n    $breakpoints: map.get($value, \"breakpoints\");\n    \n    @if $base-value != null {\n      #{ name($name, $prefix) } : #{ $base-value };\n    }\n    \n    @if $breakpoints and meta.type-of($breakpoints) == \"map\" {\n      @include breakpoint.from-each($breakpoints) using ($b-props) {\n        $b-value: map.get($b-props, \"value\");\n        @if $b-value != null {\n          #{ name($name, $prefix) } : #{ $b-value };\n        }\n      }\n    }\n  } @else {\n    #{ name($name, $prefix) } : #{ $value };\n  }\n",
              "line": {
                "start": 83,
                "end": 103
              }
            }
          },
          {
            "description": "Outputs a single custom property declaration\n",
            "context": {
              "type": "mixin",
              "name": "declare",
              "code": "\n  @if meta.type-of($value) == \"map\" {\n    $base-value: map.get($value, \"value\");\n    $breakpoints: map.get($value, \"breakpoints\");\n    \n    @if $base-value != null {\n      #{ name($name, $prefix) } : #{ $base-value };\n    }\n    \n    @if $breakpoints and meta.type-of($breakpoints) == \"map\" {\n      @include breakpoint.from-each($breakpoints) using ($b-props) {\n        $b-value: map.get($b-props, \"value\");\n        @if $b-value != null {\n          #{ name($name, $prefix) } : #{ $b-value };\n        }\n      }\n    }\n  } @else {\n    #{ name($name, $prefix) } : #{ $value };\n  }\n",
              "line": {
                "start": 83,
                "end": 103
              }
            }
          },
          {
            "description": "Outputs css vars for a specific type from a theme map\n",
            "context": {
              "type": "mixin",
              "name": "declare-theme-values",
              "code": "\n  @warn \"ulu.cssvar-declare-theme-values() is deprecated. Please use ulu.themes-declare() instead.\";\n  @each $name, $definition in $theme {\n    $value: map.get($definition, $key);\n    @if ($value) {\n      @include declare($name, $value, $prefix);\n    }\n  }\n",
              "line": {
                "start": 183,
                "end": 191
              }
            }
          },
          {
            "description": "Output CSS for a rule's margin\n",
            "context": {
              "type": "mixin",
              "name": "rule-margin",
              "code": "\n  $margin: null;\n  @if ($name) {\n    $margin: get-rule-margin($name);\n  } @else {\n    $margin: get(\"margin\");\n  }\n  margin-top: $margin;\n  margin-bottom: $margin;\n",
              "line": {
                "start": 179,
                "end": 188
              }
            }
          },
          {
            "description": "Print the default link styling (no hover and focus styles)\n- Default link styling just sets the color and the link-text-decoration-default\n- This is usually output at the top of the stylesheet to style the general <a> element\n- Use link() mixin to print the full link styling (when used in content/text) which includes the full \n  styling (text-decoration, etc)\n",
            "context": {
              "type": "mixin",
              "name": "link-defaults",
              "code": "\n  color: color.get(\"link\");\n  text-decoration: get(\"link-text-decoration-default\");\n  @if ($hover) {\n    &:hover {\n      color: color.get(\"link-hover\");\n    }\n  }\n  @if ($visited) {\n    &:visited {\n      color: color.get(\"link-visited\");\n    }\n  }\n",
              "line": {
                "start": 198,
                "end": 211
              }
            }
          },
          {
            "description": "Print the default link styling (no hover and focus styles)\n- Default link styling just sets the color and the link-text-decoration-default\n- This is usually output at the top of the stylesheet to style the general <a> element\n- Use link() mixin to print the full link styling (when used in content/text) which includes the full \n  styling (text-decoration, etc)\n",
            "context": {
              "type": "mixin",
              "name": "link-defaults",
              "code": "\n  color: color.get(\"link\");\n  text-decoration: get(\"link-text-decoration-default\");\n  @if ($hover) {\n    &:hover {\n      color: color.get(\"link-hover\");\n    }\n  }\n  @if ($visited) {\n    &:visited {\n      color: color.get(\"link-visited\");\n    }\n  }\n",
              "line": {
                "start": 198,
                "end": 211
              }
            }
          },
          {
            "description": "Print the default link styling (no hover and focus styles)\n- Default link styling just sets the color and the link-text-decoration-default\n- This is usually output at the top of the stylesheet to style the general <a> element\n- Use link() mixin to print the full link styling (when used in content/text) which includes the full \n  styling (text-decoration, etc)\n",
            "context": {
              "type": "mixin",
              "name": "link-defaults",
              "code": "\n  color: color.get(\"link\");\n  text-decoration: get(\"link-text-decoration-default\");\n  @if ($hover) {\n    &:hover {\n      color: color.get(\"link-hover\");\n    }\n  }\n  @if ($visited) {\n    &:visited {\n      color: color.get(\"link-visited\");\n    }\n  }\n",
              "line": {
                "start": 198,
                "end": 211
              }
            }
          },
          {
            "description": "Print the default link styling (no hover and focus styles)\n- Default link styling just sets the color and the link-text-decoration-default\n- This is usually output at the top of the stylesheet to style the general <a> element\n- Use link() mixin to print the full link styling (when used in content/text) which includes the full \n  styling (text-decoration, etc)\n",
            "context": {
              "type": "mixin",
              "name": "link-defaults",
              "code": "\n  color: color.get(\"link\");\n  text-decoration: get(\"link-text-decoration-default\");\n  @if ($hover) {\n    &:hover {\n      color: color.get(\"link-hover\");\n    }\n  }\n  @if ($visited) {\n    &:visited {\n      color: color.get(\"link-visited\");\n    }\n  }\n",
              "line": {
                "start": 198,
                "end": 211
              }
            }
          },
          {
            "description": "Output link CSS styles (this is the full link styling when used in content/text)\n",
            "context": {
              "type": "mixin",
              "name": "link",
              "code": "\n  color: color.get(\"link\");\n  text-decoration: get(\"link-text-decoration\");\n  text-decoration-style: get(\"link-text-decoration-style\");\n  text-decoration-color: get(\"link-text-decoration-color\");\n  text-decoration-thickness: get(\"link-text-decoration-thickness\");\n  text-underline-offset: get(\"link-text-underline-offset\");\n  &:hover {\n    color: color.get(\"link-hover\");\n    text-decoration-style: get(\"link-text-decoration-style-hover\");\n    text-decoration-color: get(\"link-text-decoration-color-hover\");\n  }\n  @if ($visited) {\n    &:visited {\n      color: color.get(\"link-visited\");\n    }\n  }\n  @if ($active) {\n    &:active {\n      color: color.get(\"link-active\");\n    }\n  }\n",
              "line": {
                "start": 217,
                "end": 239
              }
            }
          },
          {
            "description": "Output link CSS styles (this is the full link styling when used in content/text)\n",
            "context": {
              "type": "mixin",
              "name": "link",
              "code": "\n  color: color.get(\"link\");\n  text-decoration: get(\"link-text-decoration\");\n  text-decoration-style: get(\"link-text-decoration-style\");\n  text-decoration-color: get(\"link-text-decoration-color\");\n  text-decoration-thickness: get(\"link-text-decoration-thickness\");\n  text-underline-offset: get(\"link-text-underline-offset\");\n  &:hover {\n    color: color.get(\"link-hover\");\n    text-decoration-style: get(\"link-text-decoration-style-hover\");\n    text-decoration-color: get(\"link-text-decoration-color-hover\");\n  }\n  @if ($visited) {\n    &:visited {\n      color: color.get(\"link-visited\");\n    }\n  }\n  @if ($active) {\n    &:active {\n      color: color.get(\"link-active\");\n    }\n  }\n",
              "line": {
                "start": 217,
                "end": 239
              }
            }
          },
          {
            "description": "Output link CSS styles (this is the full link styling when used in content/text)\n",
            "context": {
              "type": "mixin",
              "name": "link",
              "code": "\n  color: color.get(\"link\");\n  text-decoration: get(\"link-text-decoration\");\n  text-decoration-style: get(\"link-text-decoration-style\");\n  text-decoration-color: get(\"link-text-decoration-color\");\n  text-decoration-thickness: get(\"link-text-decoration-thickness\");\n  text-underline-offset: get(\"link-text-underline-offset\");\n  &:hover {\n    color: color.get(\"link-hover\");\n    text-decoration-style: get(\"link-text-decoration-style-hover\");\n    text-decoration-color: get(\"link-text-decoration-color-hover\");\n  }\n  @if ($visited) {\n    &:visited {\n      color: color.get(\"link-visited\");\n    }\n  }\n  @if ($active) {\n    &:active {\n      color: color.get(\"link-active\");\n    }\n  }\n",
              "line": {
                "start": 217,
                "end": 239
              }
            }
          },
          {
            "description": "Output link CSS styles (this is the full link styling when used in content/text)\n",
            "context": {
              "type": "mixin",
              "name": "link",
              "code": "\n  color: color.get(\"link\");\n  text-decoration: get(\"link-text-decoration\");\n  text-decoration-style: get(\"link-text-decoration-style\");\n  text-decoration-color: get(\"link-text-decoration-color\");\n  text-decoration-thickness: get(\"link-text-decoration-thickness\");\n  text-underline-offset: get(\"link-text-underline-offset\");\n  &:hover {\n    color: color.get(\"link-hover\");\n    text-decoration-style: get(\"link-text-decoration-style-hover\");\n    text-decoration-color: get(\"link-text-decoration-color-hover\");\n  }\n  @if ($visited) {\n    &:visited {\n      color: color.get(\"link-visited\");\n    }\n  }\n  @if ($active) {\n    &:active {\n      color: color.get(\"link-active\");\n    }\n  }\n",
              "line": {
                "start": 217,
                "end": 239
              }
            }
          },
          {
            "description": "Output link CSS styles (this is the full link styling when used in content/text)\n",
            "context": {
              "type": "mixin",
              "name": "link",
              "code": "\n  color: color.get(\"link\");\n  text-decoration: get(\"link-text-decoration\");\n  text-decoration-style: get(\"link-text-decoration-style\");\n  text-decoration-color: get(\"link-text-decoration-color\");\n  text-decoration-thickness: get(\"link-text-decoration-thickness\");\n  text-underline-offset: get(\"link-text-underline-offset\");\n  &:hover {\n    color: color.get(\"link-hover\");\n    text-decoration-style: get(\"link-text-decoration-style-hover\");\n    text-decoration-color: get(\"link-text-decoration-color-hover\");\n  }\n  @if ($visited) {\n    &:visited {\n      color: color.get(\"link-visited\");\n    }\n  }\n  @if ($active) {\n    &:active {\n      color: color.get(\"link-active\");\n    }\n  }\n",
              "line": {
                "start": 217,
                "end": 239
              }
            }
          },
          {
            "description": "Output link CSS styles (this is the full link styling when used in content/text)\n",
            "context": {
              "type": "mixin",
              "name": "link",
              "code": "\n  color: color.get(\"link\");\n  text-decoration: get(\"link-text-decoration\");\n  text-decoration-style: get(\"link-text-decoration-style\");\n  text-decoration-color: get(\"link-text-decoration-color\");\n  text-decoration-thickness: get(\"link-text-decoration-thickness\");\n  text-underline-offset: get(\"link-text-underline-offset\");\n  &:hover {\n    color: color.get(\"link-hover\");\n    text-decoration-style: get(\"link-text-decoration-style-hover\");\n    text-decoration-color: get(\"link-text-decoration-color-hover\");\n  }\n  @if ($visited) {\n    &:visited {\n      color: color.get(\"link-visited\");\n    }\n  }\n  @if ($active) {\n    &:active {\n      color: color.get(\"link-active\");\n    }\n  }\n",
              "line": {
                "start": 217,
                "end": 239
              }
            }
          },
          {
            "description": "Output link CSS styles (this is the full link styling when used in content/text)\n",
            "context": {
              "type": "mixin",
              "name": "link",
              "code": "\n  color: color.get(\"link\");\n  text-decoration: get(\"link-text-decoration\");\n  text-decoration-style: get(\"link-text-decoration-style\");\n  text-decoration-color: get(\"link-text-decoration-color\");\n  text-decoration-thickness: get(\"link-text-decoration-thickness\");\n  text-underline-offset: get(\"link-text-underline-offset\");\n  &:hover {\n    color: color.get(\"link-hover\");\n    text-decoration-style: get(\"link-text-decoration-style-hover\");\n    text-decoration-color: get(\"link-text-decoration-color-hover\");\n  }\n  @if ($visited) {\n    &:visited {\n      color: color.get(\"link-visited\");\n    }\n  }\n  @if ($active) {\n    &:active {\n      color: color.get(\"link-active\");\n    }\n  }\n",
              "line": {
                "start": 217,
                "end": 239
              }
            }
          },
          {
            "description": "Output link CSS styles (this is the full link styling when used in content/text)\n",
            "context": {
              "type": "mixin",
              "name": "link",
              "code": "\n  color: color.get(\"link\");\n  text-decoration: get(\"link-text-decoration\");\n  text-decoration-style: get(\"link-text-decoration-style\");\n  text-decoration-color: get(\"link-text-decoration-color\");\n  text-decoration-thickness: get(\"link-text-decoration-thickness\");\n  text-underline-offset: get(\"link-text-underline-offset\");\n  &:hover {\n    color: color.get(\"link-hover\");\n    text-decoration-style: get(\"link-text-decoration-style-hover\");\n    text-decoration-color: get(\"link-text-decoration-color-hover\");\n  }\n  @if ($visited) {\n    &:visited {\n      color: color.get(\"link-visited\");\n    }\n  }\n  @if ($active) {\n    &:active {\n      color: color.get(\"link-active\");\n    }\n  }\n",
              "line": {
                "start": 217,
                "end": 239
              }
            }
          },
          {
            "description": "Output link CSS styles (this is the full link styling when used in content/text)\n",
            "context": {
              "type": "mixin",
              "name": "link",
              "code": "\n  color: color.get(\"link\");\n  text-decoration: get(\"link-text-decoration\");\n  text-decoration-style: get(\"link-text-decoration-style\");\n  text-decoration-color: get(\"link-text-decoration-color\");\n  text-decoration-thickness: get(\"link-text-decoration-thickness\");\n  text-underline-offset: get(\"link-text-underline-offset\");\n  &:hover {\n    color: color.get(\"link-hover\");\n    text-decoration-style: get(\"link-text-decoration-style-hover\");\n    text-decoration-color: get(\"link-text-decoration-color-hover\");\n  }\n  @if ($visited) {\n    &:visited {\n      color: color.get(\"link-visited\");\n    }\n  }\n  @if ($active) {\n    &:active {\n      color: color.get(\"link-active\");\n    }\n  }\n",
              "line": {
                "start": 217,
                "end": 239
              }
            }
          },
          {
            "description": "Output link CSS styles (this is the full link styling when used in content/text)\n",
            "context": {
              "type": "mixin",
              "name": "link",
              "code": "\n  color: color.get(\"link\");\n  text-decoration: get(\"link-text-decoration\");\n  text-decoration-style: get(\"link-text-decoration-style\");\n  text-decoration-color: get(\"link-text-decoration-color\");\n  text-decoration-thickness: get(\"link-text-decoration-thickness\");\n  text-underline-offset: get(\"link-text-underline-offset\");\n  &:hover {\n    color: color.get(\"link-hover\");\n    text-decoration-style: get(\"link-text-decoration-style-hover\");\n    text-decoration-color: get(\"link-text-decoration-color-hover\");\n  }\n  @if ($visited) {\n    &:visited {\n      color: color.get(\"link-visited\");\n    }\n  }\n  @if ($active) {\n    &:active {\n      color: color.get(\"link-active\");\n    }\n  }\n",
              "line": {
                "start": 217,
                "end": 239
              }
            }
          },
          {
            "description": "Output link CSS styles (this is the full link styling when used in content/text)\n",
            "context": {
              "type": "mixin",
              "name": "link",
              "code": "\n  color: color.get(\"link\");\n  text-decoration: get(\"link-text-decoration\");\n  text-decoration-style: get(\"link-text-decoration-style\");\n  text-decoration-color: get(\"link-text-decoration-color\");\n  text-decoration-thickness: get(\"link-text-decoration-thickness\");\n  text-underline-offset: get(\"link-text-underline-offset\");\n  &:hover {\n    color: color.get(\"link-hover\");\n    text-decoration-style: get(\"link-text-decoration-style-hover\");\n    text-decoration-color: get(\"link-text-decoration-color-hover\");\n  }\n  @if ($visited) {\n    &:visited {\n      color: color.get(\"link-visited\");\n    }\n  }\n  @if ($active) {\n    &:active {\n      color: color.get(\"link-active\");\n    }\n  }\n",
              "line": {
                "start": 217,
                "end": 239
              }
            }
          },
          {
            "description": "Print the ordered list items styling\n",
            "context": {
              "type": "mixin",
              "name": "styles-ordered-list",
              "code": "\n  margin-bottom: get(\"margin\");\n  list-style: get(\"ol-list-style-type\") outside;\n  li {\n    margin-bottom: get(\"margin-small\");\n    margin-left: get(\"list-item-indent\");\n  }\n  > li {\n    &::marker {\n      color: color.get($bullet-color);\n    }\n  }\n  ol {\n    // margin: get(\"margin-small\") 0;\n    list-style-type: get(\"ol-list-style-type-2\");\n    ol { \n      list-style-type: get(\"ol-list-style-type-3\");\n    }\n  }\n  ul,\n  ol {\n    margin-top: get(\"margin-small\");\n    margin-bottom: get(\"margin-small\");\n  }\n",
              "line": {
                "start": 244,
                "end": 268
              }
            }
          },
          {
            "description": "Print the ordered list items styling\n",
            "context": {
              "type": "mixin",
              "name": "styles-ordered-list",
              "code": "\n  margin-bottom: get(\"margin\");\n  list-style: get(\"ol-list-style-type\") outside;\n  li {\n    margin-bottom: get(\"margin-small\");\n    margin-left: get(\"list-item-indent\");\n  }\n  > li {\n    &::marker {\n      color: color.get($bullet-color);\n    }\n  }\n  ol {\n    // margin: get(\"margin-small\") 0;\n    list-style-type: get(\"ol-list-style-type-2\");\n    ol { \n      list-style-type: get(\"ol-list-style-type-3\");\n    }\n  }\n  ul,\n  ol {\n    margin-top: get(\"margin-small\");\n    margin-bottom: get(\"margin-small\");\n  }\n",
              "line": {
                "start": 244,
                "end": 268
              }
            }
          },
          {
            "description": "Print the ordered list items styling\n",
            "context": {
              "type": "mixin",
              "name": "styles-ordered-list",
              "code": "\n  margin-bottom: get(\"margin\");\n  list-style: get(\"ol-list-style-type\") outside;\n  li {\n    margin-bottom: get(\"margin-small\");\n    margin-left: get(\"list-item-indent\");\n  }\n  > li {\n    &::marker {\n      color: color.get($bullet-color);\n    }\n  }\n  ol {\n    // margin: get(\"margin-small\") 0;\n    list-style-type: get(\"ol-list-style-type-2\");\n    ol { \n      list-style-type: get(\"ol-list-style-type-3\");\n    }\n  }\n  ul,\n  ol {\n    margin-top: get(\"margin-small\");\n    margin-bottom: get(\"margin-small\");\n  }\n",
              "line": {
                "start": 244,
                "end": 268
              }
            }
          },
          {
            "description": "Print the ordered list items styling\n",
            "context": {
              "type": "mixin",
              "name": "styles-ordered-list",
              "code": "\n  margin-bottom: get(\"margin\");\n  list-style: get(\"ol-list-style-type\") outside;\n  li {\n    margin-bottom: get(\"margin-small\");\n    margin-left: get(\"list-item-indent\");\n  }\n  > li {\n    &::marker {\n      color: color.get($bullet-color);\n    }\n  }\n  ol {\n    // margin: get(\"margin-small\") 0;\n    list-style-type: get(\"ol-list-style-type-2\");\n    ol { \n      list-style-type: get(\"ol-list-style-type-3\");\n    }\n  }\n  ul,\n  ol {\n    margin-top: get(\"margin-small\");\n    margin-bottom: get(\"margin-small\");\n  }\n",
              "line": {
                "start": 244,
                "end": 268
              }
            }
          },
          {
            "description": "Print the ordered list items styling\n",
            "context": {
              "type": "mixin",
              "name": "styles-ordered-list",
              "code": "\n  margin-bottom: get(\"margin\");\n  list-style: get(\"ol-list-style-type\") outside;\n  li {\n    margin-bottom: get(\"margin-small\");\n    margin-left: get(\"list-item-indent\");\n  }\n  > li {\n    &::marker {\n      color: color.get($bullet-color);\n    }\n  }\n  ol {\n    // margin: get(\"margin-small\") 0;\n    list-style-type: get(\"ol-list-style-type-2\");\n    ol { \n      list-style-type: get(\"ol-list-style-type-3\");\n    }\n  }\n  ul,\n  ol {\n    margin-top: get(\"margin-small\");\n    margin-bottom: get(\"margin-small\");\n  }\n",
              "line": {
                "start": 244,
                "end": 268
              }
            }
          },
          {
            "description": "Print the ordered list items styling\n",
            "context": {
              "type": "mixin",
              "name": "styles-ordered-list",
              "code": "\n  margin-bottom: get(\"margin\");\n  list-style: get(\"ol-list-style-type\") outside;\n  li {\n    margin-bottom: get(\"margin-small\");\n    margin-left: get(\"list-item-indent\");\n  }\n  > li {\n    &::marker {\n      color: color.get($bullet-color);\n    }\n  }\n  ol {\n    // margin: get(\"margin-small\") 0;\n    list-style-type: get(\"ol-list-style-type-2\");\n    ol { \n      list-style-type: get(\"ol-list-style-type-3\");\n    }\n  }\n  ul,\n  ol {\n    margin-top: get(\"margin-small\");\n    margin-bottom: get(\"margin-small\");\n  }\n",
              "line": {
                "start": 244,
                "end": 268
              }
            }
          },
          {
            "description": "Print the ordered list items styling\n",
            "context": {
              "type": "mixin",
              "name": "styles-ordered-list",
              "code": "\n  margin-bottom: get(\"margin\");\n  list-style: get(\"ol-list-style-type\") outside;\n  li {\n    margin-bottom: get(\"margin-small\");\n    margin-left: get(\"list-item-indent\");\n  }\n  > li {\n    &::marker {\n      color: color.get($bullet-color);\n    }\n  }\n  ol {\n    // margin: get(\"margin-small\") 0;\n    list-style-type: get(\"ol-list-style-type-2\");\n    ol { \n      list-style-type: get(\"ol-list-style-type-3\");\n    }\n  }\n  ul,\n  ol {\n    margin-top: get(\"margin-small\");\n    margin-bottom: get(\"margin-small\");\n  }\n",
              "line": {
                "start": 244,
                "end": 268
              }
            }
          },
          {
            "description": "Print the ordered list items styling\n",
            "context": {
              "type": "mixin",
              "name": "styles-ordered-list",
              "code": "\n  margin-bottom: get(\"margin\");\n  list-style: get(\"ol-list-style-type\") outside;\n  li {\n    margin-bottom: get(\"margin-small\");\n    margin-left: get(\"list-item-indent\");\n  }\n  > li {\n    &::marker {\n      color: color.get($bullet-color);\n    }\n  }\n  ol {\n    // margin: get(\"margin-small\") 0;\n    list-style-type: get(\"ol-list-style-type-2\");\n    ol { \n      list-style-type: get(\"ol-list-style-type-3\");\n    }\n  }\n  ul,\n  ol {\n    margin-top: get(\"margin-small\");\n    margin-bottom: get(\"margin-small\");\n  }\n",
              "line": {
                "start": 244,
                "end": 268
              }
            }
          },
          {
            "description": "Print the ordered list items styling\n",
            "context": {
              "type": "mixin",
              "name": "styles-ordered-list",
              "code": "\n  margin-bottom: get(\"margin\");\n  list-style: get(\"ol-list-style-type\") outside;\n  li {\n    margin-bottom: get(\"margin-small\");\n    margin-left: get(\"list-item-indent\");\n  }\n  > li {\n    &::marker {\n      color: color.get($bullet-color);\n    }\n  }\n  ol {\n    // margin: get(\"margin-small\") 0;\n    list-style-type: get(\"ol-list-style-type-2\");\n    ol { \n      list-style-type: get(\"ol-list-style-type-3\");\n    }\n  }\n  ul,\n  ol {\n    margin-top: get(\"margin-small\");\n    margin-bottom: get(\"margin-small\");\n  }\n",
              "line": {
                "start": 244,
                "end": 268
              }
            }
          },
          {
            "description": "Print the ordered list items styling\n",
            "context": {
              "type": "mixin",
              "name": "styles-ordered-list",
              "code": "\n  margin-bottom: get(\"margin\");\n  list-style: get(\"ol-list-style-type\") outside;\n  li {\n    margin-bottom: get(\"margin-small\");\n    margin-left: get(\"list-item-indent\");\n  }\n  > li {\n    &::marker {\n      color: color.get($bullet-color);\n    }\n  }\n  ol {\n    // margin: get(\"margin-small\") 0;\n    list-style-type: get(\"ol-list-style-type-2\");\n    ol { \n      list-style-type: get(\"ol-list-style-type-3\");\n    }\n  }\n  ul,\n  ol {\n    margin-top: get(\"margin-small\");\n    margin-bottom: get(\"margin-small\");\n  }\n",
              "line": {
                "start": 244,
                "end": 268
              }
            }
          },
          {
            "description": "Print the unordered list items styling\n",
            "context": {
              "type": "mixin",
              "name": "styles-unordered-list",
              "code": "\n  list-style: get(\"ul-list-style-type\") outside;\n  li {\n    margin-left: get(\"list-item-indent\");\n    margin-bottom: get(\"margin-small\");\n    &::marker {\n      color: color.get($bullet-color);\n    }\n  }\n  ul {\n    list-style-type: get(\"ul-list-style-type-2\") ;\n  }\n   ul ul {\n    list-style-type: get(\"ul-list-style-type-3\");\n  }\n  ul,\n  ol {\n    margin-top: get(\"margin-small\");\n    margin-bottom: get(\"margin-small\");\n  }\n",
              "line": {
                "start": 273,
                "end": 293
              }
            }
          },
          {
            "description": "Print the unordered list items styling\n",
            "context": {
              "type": "mixin",
              "name": "styles-unordered-list",
              "code": "\n  list-style: get(\"ul-list-style-type\") outside;\n  li {\n    margin-left: get(\"list-item-indent\");\n    margin-bottom: get(\"margin-small\");\n    &::marker {\n      color: color.get($bullet-color);\n    }\n  }\n  ul {\n    list-style-type: get(\"ul-list-style-type-2\") ;\n  }\n   ul ul {\n    list-style-type: get(\"ul-list-style-type-3\");\n  }\n  ul,\n  ol {\n    margin-top: get(\"margin-small\");\n    margin-bottom: get(\"margin-small\");\n  }\n",
              "line": {
                "start": 273,
                "end": 293
              }
            }
          },
          {
            "description": "Print the unordered list items styling\n",
            "context": {
              "type": "mixin",
              "name": "styles-unordered-list",
              "code": "\n  list-style: get(\"ul-list-style-type\") outside;\n  li {\n    margin-left: get(\"list-item-indent\");\n    margin-bottom: get(\"margin-small\");\n    &::marker {\n      color: color.get($bullet-color);\n    }\n  }\n  ul {\n    list-style-type: get(\"ul-list-style-type-2\") ;\n  }\n   ul ul {\n    list-style-type: get(\"ul-list-style-type-3\");\n  }\n  ul,\n  ol {\n    margin-top: get(\"margin-small\");\n    margin-bottom: get(\"margin-small\");\n  }\n",
              "line": {
                "start": 273,
                "end": 293
              }
            }
          },
          {
            "description": "Print the unordered list items styling\n",
            "context": {
              "type": "mixin",
              "name": "styles-unordered-list",
              "code": "\n  list-style: get(\"ul-list-style-type\") outside;\n  li {\n    margin-left: get(\"list-item-indent\");\n    margin-bottom: get(\"margin-small\");\n    &::marker {\n      color: color.get($bullet-color);\n    }\n  }\n  ul {\n    list-style-type: get(\"ul-list-style-type-2\") ;\n  }\n   ul ul {\n    list-style-type: get(\"ul-list-style-type-3\");\n  }\n  ul,\n  ol {\n    margin-top: get(\"margin-small\");\n    margin-bottom: get(\"margin-small\");\n  }\n",
              "line": {
                "start": 273,
                "end": 293
              }
            }
          },
          {
            "description": "Print the unordered list items styling\n",
            "context": {
              "type": "mixin",
              "name": "styles-unordered-list",
              "code": "\n  list-style: get(\"ul-list-style-type\") outside;\n  li {\n    margin-left: get(\"list-item-indent\");\n    margin-bottom: get(\"margin-small\");\n    &::marker {\n      color: color.get($bullet-color);\n    }\n  }\n  ul {\n    list-style-type: get(\"ul-list-style-type-2\") ;\n  }\n   ul ul {\n    list-style-type: get(\"ul-list-style-type-3\");\n  }\n  ul,\n  ol {\n    margin-top: get(\"margin-small\");\n    margin-bottom: get(\"margin-small\");\n  }\n",
              "line": {
                "start": 273,
                "end": 293
              }
            }
          },
          {
            "description": "Print the unordered list items styling\n",
            "context": {
              "type": "mixin",
              "name": "styles-unordered-list",
              "code": "\n  list-style: get(\"ul-list-style-type\") outside;\n  li {\n    margin-left: get(\"list-item-indent\");\n    margin-bottom: get(\"margin-small\");\n    &::marker {\n      color: color.get($bullet-color);\n    }\n  }\n  ul {\n    list-style-type: get(\"ul-list-style-type-2\") ;\n  }\n   ul ul {\n    list-style-type: get(\"ul-list-style-type-3\");\n  }\n  ul,\n  ol {\n    margin-top: get(\"margin-small\");\n    margin-bottom: get(\"margin-small\");\n  }\n",
              "line": {
                "start": 273,
                "end": 293
              }
            }
          },
          {
            "description": "Print the unordered list items styling\n",
            "context": {
              "type": "mixin",
              "name": "styles-unordered-list",
              "code": "\n  list-style: get(\"ul-list-style-type\") outside;\n  li {\n    margin-left: get(\"list-item-indent\");\n    margin-bottom: get(\"margin-small\");\n    &::marker {\n      color: color.get($bullet-color);\n    }\n  }\n  ul {\n    list-style-type: get(\"ul-list-style-type-2\") ;\n  }\n   ul ul {\n    list-style-type: get(\"ul-list-style-type-3\");\n  }\n  ul,\n  ol {\n    margin-top: get(\"margin-small\");\n    margin-bottom: get(\"margin-small\");\n  }\n",
              "line": {
                "start": 273,
                "end": 293
              }
            }
          },
          {
            "description": "Print the unordered list items styling\n",
            "context": {
              "type": "mixin",
              "name": "styles-unordered-list",
              "code": "\n  list-style: get(\"ul-list-style-type\") outside;\n  li {\n    margin-left: get(\"list-item-indent\");\n    margin-bottom: get(\"margin-small\");\n    &::marker {\n      color: color.get($bullet-color);\n    }\n  }\n  ul {\n    list-style-type: get(\"ul-list-style-type-2\") ;\n  }\n   ul ul {\n    list-style-type: get(\"ul-list-style-type-3\");\n  }\n  ul,\n  ol {\n    margin-top: get(\"margin-small\");\n    margin-bottom: get(\"margin-small\");\n  }\n",
              "line": {
                "start": 273,
                "end": 293
              }
            }
          },
          {
            "description": "Layout utility to add a colored bar (cap) to an element's edge, positioned over the element and its border\n- You need to set position (relative, fixed) on parent\n",
            "context": {
              "type": "mixin",
              "name": "cap",
              "code": "\n  $defaults: (\n    \"color\" : get(\"cap-color\"), \n    \"size\" : get(\"cap-size\"), \n    \"offset\" : 0, \n    \"color-hover\" : null,\n    \"border-radius\" : null,\n    \"padding-adjust\" : null,\n  );\n  $config: map.merge($defaults, $options);\n  $element: utils.when($before, \"::before\", \"::after\");\n\n  &#{ $element } {\n    content: \"\";\n    position: absolute;\n    display: block;\n  }\n\n  @include cap-appearance($side, $config, $before);\n",
              "line": {
                "start": 333,
                "end": 356
              }
            }
          },
          {
            "description": "Layout utility to add a colored bar (cap) to an element's edge, positioned over the element and its border\n- You need to set position (relative, fixed) on parent\n",
            "context": {
              "type": "mixin",
              "name": "cap",
              "code": "\n  $defaults: (\n    \"color\" : get(\"cap-color\"), \n    \"size\" : get(\"cap-size\"), \n    \"offset\" : 0, \n    \"color-hover\" : null,\n    \"border-radius\" : null,\n    \"padding-adjust\" : null,\n  );\n  $config: map.merge($defaults, $options);\n  $element: utils.when($before, \"::before\", \"::after\");\n\n  &#{ $element } {\n    content: \"\";\n    position: absolute;\n    display: block;\n  }\n\n  @include cap-appearance($side, $config, $before);\n",
              "line": {
                "start": 333,
                "end": 356
              }
            }
          },
          {
            "description": "Provides the appearance styles for a given cap\n- If an option is not provided it won't be output\n- This is used to update the caps styling (states, modifiers, etc)\n",
            "context": {
              "type": "mixin",
              "name": "cap-appearance",
              "code": "\n  $element: utils.when($before, \"::before\", \"::after\");\n  $size: map.get($options, \"size\");\n  $offset: map.get($options, \"offset\");\n  $border-radius: map.get($options, \"border-radius\");\n  $padding-adjust: map.get($options, \"padding-adjust\");\n  \n  $end: $side == \"top\" or $side == \"bottom\";\n  $position: utils.when($offset, 0 - $offset, null);\n\n  @if ($padding-adjust and $size) {\n    padding-#{ $side }: calc($padding-adjust + $size);\n  }\n\n  &#{ $element } {\n    background-color: color.get(map.get($options, \"color\"));\n    #{ $side }: $position;\n\n    @if $end {\n      left: $position;\n      right: $position;\n      height: $size;\n    } @else {\n      top: $position;\n      bottom: $position;\n      width: $size;\n    }\n    \n    @if $border-radius {\n      @if $end {\n        border-#{ $side }-left-radius: $border-radius;\n        border-#{ $side }-right-radius: $border-radius;\n      } @else {\n        border-top-#{ $side }-radius: $border-radius;\n        border-bottom-#{ $side }-radius: $border-radius;\n      }\n    }\n  }\n",
              "line": {
                "start": 367,
                "end": 409
              }
            }
          },
          {
            "description": "Provides the appearance styles for a given cap\n- If an option is not provided it won't be output\n- This is used to update the caps styling (states, modifiers, etc)\n",
            "context": {
              "type": "mixin",
              "name": "cap-appearance",
              "code": "\n  $element: utils.when($before, \"::before\", \"::after\");\n  $size: map.get($options, \"size\");\n  $offset: map.get($options, \"offset\");\n  $border-radius: map.get($options, \"border-radius\");\n  $padding-adjust: map.get($options, \"padding-adjust\");\n  \n  $end: $side == \"top\" or $side == \"bottom\";\n  $position: utils.when($offset, 0 - $offset, null);\n\n  @if ($padding-adjust and $size) {\n    padding-#{ $side }: calc($padding-adjust + $size);\n  }\n\n  &#{ $element } {\n    background-color: color.get(map.get($options, \"color\"));\n    #{ $side }: $position;\n\n    @if $end {\n      left: $position;\n      right: $position;\n      height: $size;\n    } @else {\n      top: $position;\n      bottom: $position;\n      width: $size;\n    }\n    \n    @if $border-radius {\n      @if $end {\n        border-#{ $side }-left-radius: $border-radius;\n        border-#{ $side }-right-radius: $border-radius;\n      } @else {\n        border-top-#{ $side }-radius: $border-radius;\n        border-bottom-#{ $side }-radius: $border-radius;\n      }\n    }\n  }\n",
              "line": {
                "start": 367,
                "end": 409
              }
            }
          },
          {
            "description": "Provides the appearance styles for a given cap\n- If an option is not provided it won't be output\n- This is used to update the caps styling (states, modifiers, etc)\n",
            "context": {
              "type": "mixin",
              "name": "cap-appearance",
              "code": "\n  $element: utils.when($before, \"::before\", \"::after\");\n  $size: map.get($options, \"size\");\n  $offset: map.get($options, \"offset\");\n  $border-radius: map.get($options, \"border-radius\");\n  $padding-adjust: map.get($options, \"padding-adjust\");\n  \n  $end: $side == \"top\" or $side == \"bottom\";\n  $position: utils.when($offset, 0 - $offset, null);\n\n  @if ($padding-adjust and $size) {\n    padding-#{ $side }: calc($padding-adjust + $size);\n  }\n\n  &#{ $element } {\n    background-color: color.get(map.get($options, \"color\"));\n    #{ $side }: $position;\n\n    @if $end {\n      left: $position;\n      right: $position;\n      height: $size;\n    } @else {\n      top: $position;\n      bottom: $position;\n      width: $size;\n    }\n    \n    @if $border-radius {\n      @if $end {\n        border-#{ $side }-left-radius: $border-radius;\n        border-#{ $side }-right-radius: $border-radius;\n      } @else {\n        border-top-#{ $side }-radius: $border-radius;\n        border-bottom-#{ $side }-radius: $border-radius;\n      }\n    }\n  }\n",
              "line": {
                "start": 367,
                "end": 409
              }
            }
          },
          {
            "description": "Provides the appearance styles for a given cap\n- If an option is not provided it won't be output\n- This is used to update the caps styling (states, modifiers, etc)\n",
            "context": {
              "type": "mixin",
              "name": "cap-appearance",
              "code": "\n  $element: utils.when($before, \"::before\", \"::after\");\n  $size: map.get($options, \"size\");\n  $offset: map.get($options, \"offset\");\n  $border-radius: map.get($options, \"border-radius\");\n  $padding-adjust: map.get($options, \"padding-adjust\");\n  \n  $end: $side == \"top\" or $side == \"bottom\";\n  $position: utils.when($offset, 0 - $offset, null);\n\n  @if ($padding-adjust and $size) {\n    padding-#{ $side }: calc($padding-adjust + $size);\n  }\n\n  &#{ $element } {\n    background-color: color.get(map.get($options, \"color\"));\n    #{ $side }: $position;\n\n    @if $end {\n      left: $position;\n      right: $position;\n      height: $size;\n    } @else {\n      top: $position;\n      bottom: $position;\n      width: $size;\n    }\n    \n    @if $border-radius {\n      @if $end {\n        border-#{ $side }-left-radius: $border-radius;\n        border-#{ $side }-right-radius: $border-radius;\n      } @else {\n        border-top-#{ $side }-radius: $border-radius;\n        border-bottom-#{ $side }-radius: $border-radius;\n      }\n    }\n  }\n",
              "line": {
                "start": 367,
                "end": 409
              }
            }
          },
          {
            "description": "Provides the appearance styles for a given cap\n- If an option is not provided it won't be output\n- This is used to update the caps styling (states, modifiers, etc)\n",
            "context": {
              "type": "mixin",
              "name": "cap-appearance",
              "code": "\n  $element: utils.when($before, \"::before\", \"::after\");\n  $size: map.get($options, \"size\");\n  $offset: map.get($options, \"offset\");\n  $border-radius: map.get($options, \"border-radius\");\n  $padding-adjust: map.get($options, \"padding-adjust\");\n  \n  $end: $side == \"top\" or $side == \"bottom\";\n  $position: utils.when($offset, 0 - $offset, null);\n\n  @if ($padding-adjust and $size) {\n    padding-#{ $side }: calc($padding-adjust + $size);\n  }\n\n  &#{ $element } {\n    background-color: color.get(map.get($options, \"color\"));\n    #{ $side }: $position;\n\n    @if $end {\n      left: $position;\n      right: $position;\n      height: $size;\n    } @else {\n      top: $position;\n      bottom: $position;\n      width: $size;\n    }\n    \n    @if $border-radius {\n      @if $end {\n        border-#{ $side }-left-radius: $border-radius;\n        border-#{ $side }-right-radius: $border-radius;\n      } @else {\n        border-top-#{ $side }-radius: $border-radius;\n        border-bottom-#{ $side }-radius: $border-radius;\n      }\n    }\n  }\n",
              "line": {
                "start": 367,
                "end": 409
              }
            }
          },
          {
            "description": "Provides the appearance styles for a given cap\n- If an option is not provided it won't be output\n- This is used to update the caps styling (states, modifiers, etc)\n",
            "context": {
              "type": "mixin",
              "name": "cap-appearance",
              "code": "\n  $element: utils.when($before, \"::before\", \"::after\");\n  $size: map.get($options, \"size\");\n  $offset: map.get($options, \"offset\");\n  $border-radius: map.get($options, \"border-radius\");\n  $padding-adjust: map.get($options, \"padding-adjust\");\n  \n  $end: $side == \"top\" or $side == \"bottom\";\n  $position: utils.when($offset, 0 - $offset, null);\n\n  @if ($padding-adjust and $size) {\n    padding-#{ $side }: calc($padding-adjust + $size);\n  }\n\n  &#{ $element } {\n    background-color: color.get(map.get($options, \"color\"));\n    #{ $side }: $position;\n\n    @if $end {\n      left: $position;\n      right: $position;\n      height: $size;\n    } @else {\n      top: $position;\n      bottom: $position;\n      width: $size;\n    }\n    \n    @if $border-radius {\n      @if $end {\n        border-#{ $side }-left-radius: $border-radius;\n        border-#{ $side }-right-radius: $border-radius;\n      } @else {\n        border-top-#{ $side }-radius: $border-radius;\n        border-bottom-#{ $side }-radius: $border-radius;\n      }\n    }\n  }\n",
              "line": {
                "start": 367,
                "end": 409
              }
            }
          },
          {
            "description": "Helper function to construct a border using the color module\nReturns null if the required parameters are missing or zero, preventing output\n",
            "context": {
              "type": "function",
              "name": "optional-border",
              "code": "\n  // Not using () breaks syntax highlighting\n  @if $width and $width != 0 and $width != none and $color {\n    @return $width $style color.get($color);\n  }\n  @return null;\n",
              "line": {
                "start": 442,
                "end": 448
              }
            }
          },
          {
            "description": "Get a container map\n",
            "context": {
              "type": "function",
              "name": "get-container",
              "code": "\n  $container: null;\n  @if ($required) {\n    $container: utils.require-map-get($containers, $name, \"Layout [get-container]\");\n  } @else {\n    $container: map.get($containers, $name);\n  }\n\n  @if ($container and $breakpoint) {\n    $breakpoints: map.get($container, \"breakpoints\");\n    @if ($required) {\n      @if ($breakpoints) {\n        @return utils.require-map-get($breakpoints, $breakpoint, \"[container breakpoint]\");\n      } @else {\n        @error 'ULU: No container breakpoints for container \"#{ $name }\", requested breakpoint #{ $breakpoint }';\n      }\n    } @else {\n      @if ($breakpoints) {\n        @return map.get($breakpoints, $breakpoint);\n      } @else {\n        @return null;\n      }\n    }\n  }\n\n  @return $container;\n",
              "line": {
                "start": 154,
                "end": 180
              }
            }
          },
          {
            "description": "Get a container map\n",
            "context": {
              "type": "function",
              "name": "get-container",
              "code": "\n  $container: null;\n  @if ($required) {\n    $container: utils.require-map-get($containers, $name, \"Layout [get-container]\");\n  } @else {\n    $container: map.get($containers, $name);\n  }\n\n  @if ($container and $breakpoint) {\n    $breakpoints: map.get($container, \"breakpoints\");\n    @if ($required) {\n      @if ($breakpoints) {\n        @return utils.require-map-get($breakpoints, $breakpoint, \"[container breakpoint]\");\n      } @else {\n        @error 'ULU: No container breakpoints for container \"#{ $name }\", requested breakpoint #{ $breakpoint }';\n      }\n    } @else {\n      @if ($breakpoints) {\n        @return map.get($breakpoints, $breakpoint);\n      } @else {\n        @return null;\n      }\n    }\n  }\n\n  @return $container;\n",
              "line": {
                "start": 154,
                "end": 180
              }
            }
          },
          {
            "description": "Get a container map\n",
            "context": {
              "type": "function",
              "name": "get-container",
              "code": "\n  $container: null;\n  @if ($required) {\n    $container: utils.require-map-get($containers, $name, \"Layout [get-container]\");\n  } @else {\n    $container: map.get($containers, $name);\n  }\n\n  @if ($container and $breakpoint) {\n    $breakpoints: map.get($container, \"breakpoints\");\n    @if ($required) {\n      @if ($breakpoints) {\n        @return utils.require-map-get($breakpoints, $breakpoint, \"[container breakpoint]\");\n      } @else {\n        @error 'ULU: No container breakpoints for container \"#{ $name }\", requested breakpoint #{ $breakpoint }';\n      }\n    } @else {\n      @if ($breakpoints) {\n        @return map.get($breakpoints, $breakpoint);\n      } @else {\n        @return null;\n      }\n    }\n  }\n\n  @return $container;\n",
              "line": {
                "start": 154,
                "end": 180
              }
            }
          },
          {
            "description": "Returns padding to another property including breakpoints\nie. { top: $containers-padding; }\n",
            "context": {
              "type": "mixin",
              "name": "match-container-padding",
              "code": "\n  $container: get-container($name);\n  $breakpoints: map.get($container, \"breakpoints\");\n  #{ $property }: get-container-padding($name, $sides);\n  @if $breakpoints {\n    @each $breakpoint, $props in $breakpoints {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        #{ $property }: get-container-padding($name, $sides, $breakpoint);\n      }\n    }\n  }\n",
              "line": {
                "start": 188,
                "end": 200
              }
            }
          },
          {
            "description": "Returns padding to another property including breakpoints\nie. { top: $containers-padding; }\n",
            "context": {
              "type": "mixin",
              "name": "match-container-padding",
              "code": "\n  $container: get-container($name);\n  $breakpoints: map.get($container, \"breakpoints\");\n  #{ $property }: get-container-padding($name, $sides);\n  @if $breakpoints {\n    @each $breakpoint, $props in $breakpoints {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        #{ $property }: get-container-padding($name, $sides, $breakpoint);\n      }\n    }\n  }\n",
              "line": {
                "start": 188,
                "end": 200
              }
            }
          },
          {
            "description": "For a given property for every breakpoint in a given container\ncreates a css calc value that will match the containers side margin\nThe margin is created via empty space when the container hits the max-width\nIf passing include padding it would be the containers\nside (x) + the padding. This accounts for the containers max-width to give an absolute value\n",
            "context": {
              "type": "mixin",
              "name": "match-container-margin",
              "code": "\n  $container: get-container($name);\n  $breakpoints: map.get($container, \"breakpoints\");\n  $padding: 0;\n  @if ($include-padding) {\n    $padding: get-container-padding($name, true);\n  }\n  $max: map.get($container, \"max-width\");\n  #{ $property }: max(((100vw - $max) / 2) + $padding, $padding);\n  @if $breakpoints {\n    @each $breakpoint, $props in $breakpoints {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        $pad: 0;\n        @if ($include-padding) {\n          $pad: get-container-padding($name, true, $breakpoint);\n        }\n        #{ $property }: max(((100vw - $max) / 2) + $pad, $pad);\n      }\n    }\n  }\n",
              "line": {
                "start": 211,
                "end": 232
              }
            }
          },
          {
            "description": "For a given property for every breakpoint in a given container\ncreates a css calc value that will match the containers side margin\nThe margin is created via empty space when the container hits the max-width\nIf passing include padding it would be the containers\nside (x) + the padding. This accounts for the containers max-width to give an absolute value\n",
            "context": {
              "type": "mixin",
              "name": "match-container-margin",
              "code": "\n  $container: get-container($name);\n  $breakpoints: map.get($container, \"breakpoints\");\n  $padding: 0;\n  @if ($include-padding) {\n    $padding: get-container-padding($name, true);\n  }\n  $max: map.get($container, \"max-width\");\n  #{ $property }: max(((100vw - $max) / 2) + $padding, $padding);\n  @if $breakpoints {\n    @each $breakpoint, $props in $breakpoints {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        $pad: 0;\n        @if ($include-padding) {\n          $pad: get-container-padding($name, true, $breakpoint);\n        }\n        #{ $property }: max(((100vw - $max) / 2) + $pad, $pad);\n      }\n    }\n  }\n",
              "line": {
                "start": 211,
                "end": 232
              }
            }
          },
          {
            "description": "For a given property for every breakpoint in a given container\ncreates a css calc value that will match the containers side margin\nThe margin is created via empty space when the container hits the max-width\nIf passing include padding it would be the containers\nside (x) + the padding. This accounts for the containers max-width to give an absolute value\n",
            "context": {
              "type": "mixin",
              "name": "match-container-margin",
              "code": "\n  $container: get-container($name);\n  $breakpoints: map.get($container, \"breakpoints\");\n  $padding: 0;\n  @if ($include-padding) {\n    $padding: get-container-padding($name, true);\n  }\n  $max: map.get($container, \"max-width\");\n  #{ $property }: max(((100vw - $max) / 2) + $padding, $padding);\n  @if $breakpoints {\n    @each $breakpoint, $props in $breakpoints {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        $pad: 0;\n        @if ($include-padding) {\n          $pad: get-container-padding($name, true, $breakpoint);\n        }\n        #{ $property }: max(((100vw - $max) / 2) + $pad, $pad);\n      }\n    }\n  }\n",
              "line": {
                "start": 211,
                "end": 232
              }
            }
          },
          {
            "description": "Get a containers padding value\n",
            "context": {
              "type": "function",
              "name": "get-container-padding",
              "code": "\n  $container: get-container($name, $specific-breakpoint);\n  $padding: map.get($container, \"padding\");\n  $is-list: meta.type-of($padding) == \"list\"; // Else number\n  @if (not $is-list) {\n    @return $padding;\n  } @else {\n    @return list.nth($padding, utils.when($sides, 2, 1));\n  }\n",
              "line": {
                "start": 239,
                "end": 248
              }
            }
          },
          {
            "description": "Print the containers padding properties\n",
            "context": {
              "type": "mixin",
              "name": "container-padding",
              "code": "\n  $container: get-container($name, $specific-breakpoint);\n  $responsive: map.get($container, \"responsive\");\n  $x: get-container-padding-x($name, $specific-breakpoint);\n  $y: get-container-padding-y($name, $specific-breakpoint);\n  $resp-amount: utils.when(meta.type-of($responsive) == number, $responsive, utils.get(\"responsive-change\"));\n  \n  @if $responsive {\n    @if $sides {\n      @include utils.responsive-property(\"padding-left\", $x, $resp-amount);\n      @include utils.responsive-property(\"padding-right\", $x, $resp-amount);\n    }\n    @if $ends {\n      @include utils.responsive-property(\"padding-top\", $y, $resp-amount);\n      @include utils.responsive-property(\"padding-bottom\", $y, $resp-amount);\n    }\n  } @else {\n    @if $sides {\n      padding-left: $x;\n      padding-right: $x;\n    }\n    @if $ends {\n      padding-top: $y;\n      padding-bottom: $y;\n    }\n  }\n",
              "line": {
                "start": 255,
                "end": 281
              }
            }
          },
          {
            "description": "Print the containers padding properties\n",
            "context": {
              "type": "mixin",
              "name": "container-padding",
              "code": "\n  $container: get-container($name, $specific-breakpoint);\n  $responsive: map.get($container, \"responsive\");\n  $x: get-container-padding-x($name, $specific-breakpoint);\n  $y: get-container-padding-y($name, $specific-breakpoint);\n  $resp-amount: utils.when(meta.type-of($responsive) == number, $responsive, utils.get(\"responsive-change\"));\n  \n  @if $responsive {\n    @if $sides {\n      @include utils.responsive-property(\"padding-left\", $x, $resp-amount);\n      @include utils.responsive-property(\"padding-right\", $x, $resp-amount);\n    }\n    @if $ends {\n      @include utils.responsive-property(\"padding-top\", $y, $resp-amount);\n      @include utils.responsive-property(\"padding-bottom\", $y, $resp-amount);\n    }\n  } @else {\n    @if $sides {\n      padding-left: $x;\n      padding-right: $x;\n    }\n    @if $ends {\n      padding-top: $y;\n      padding-bottom: $y;\n    }\n  }\n",
              "line": {
                "start": 255,
                "end": 281
              }
            }
          },
          {
            "description": "Print all container styles for a given container\n",
            "context": {
              "type": "mixin",
              "name": "container-styles",
              "code": "\n  $container: get-container($name,  $specific-breakpoint);\n  $breakpoints: map.get($container, \"breakpoints\");\n  \n  $width: map.get($container, \"width\");\n\n  @if ($width == null) {\n    $width: 100%;\n  }\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n  width: $width;\n  max-width: map.get($container, \"max-width\");\n  @include container-padding($name, $specific-breakpoint: $specific-breakpoint);\n\n  // Recursive print other breakpoints\n  @if $breakpoints and not $specific-breakpoint {\n    @each $breakpoint, $props in $breakpoints {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        @include container-styles($name, $breakpoint);\n      }\n    }\n  }\n",
              "line": {
                "start": 303,
                "end": 328
              }
            }
          },
          {
            "description": "Print all container styles for a given container\n",
            "context": {
              "type": "mixin",
              "name": "container-styles",
              "code": "\n  $container: get-container($name,  $specific-breakpoint);\n  $breakpoints: map.get($container, \"breakpoints\");\n  \n  $width: map.get($container, \"width\");\n\n  @if ($width == null) {\n    $width: 100%;\n  }\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n  width: $width;\n  max-width: map.get($container, \"max-width\");\n  @include container-padding($name, $specific-breakpoint: $specific-breakpoint);\n\n  // Recursive print other breakpoints\n  @if $breakpoints and not $specific-breakpoint {\n    @each $breakpoint, $props in $breakpoints {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        @include container-styles($name, $breakpoint);\n      }\n    }\n  }\n",
              "line": {
                "start": 303,
                "end": 328
              }
            }
          },
          {
            "description": "Print all container styles for a given container\n",
            "context": {
              "type": "mixin",
              "name": "container-styles",
              "code": "\n  $container: get-container($name,  $specific-breakpoint);\n  $breakpoints: map.get($container, \"breakpoints\");\n  \n  $width: map.get($container, \"width\");\n\n  @if ($width == null) {\n    $width: 100%;\n  }\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n  width: $width;\n  max-width: map.get($container, \"max-width\");\n  @include container-padding($name, $specific-breakpoint: $specific-breakpoint);\n\n  // Recursive print other breakpoints\n  @if $breakpoints and not $specific-breakpoint {\n    @each $breakpoint, $props in $breakpoints {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        @include container-styles($name, $breakpoint);\n      }\n    }\n  }\n",
              "line": {
                "start": 303,
                "end": 328
              }
            }
          },
          {
            "description": "Print all container styles for a given container\n",
            "context": {
              "type": "mixin",
              "name": "container-styles",
              "code": "\n  $container: get-container($name,  $specific-breakpoint);\n  $breakpoints: map.get($container, \"breakpoints\");\n  \n  $width: map.get($container, \"width\");\n\n  @if ($width == null) {\n    $width: 100%;\n  }\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n  width: $width;\n  max-width: map.get($container, \"max-width\");\n  @include container-padding($name, $specific-breakpoint: $specific-breakpoint);\n\n  // Recursive print other breakpoints\n  @if $breakpoints and not $specific-breakpoint {\n    @each $breakpoint, $props in $breakpoints {\n      $direction: map.get($props, \"direction\");\n      @include breakpoint.from($breakpoint, $direction) {\n        @include container-styles($name, $breakpoint);\n      }\n    }\n  }\n",
              "line": {
                "start": 303,
                "end": 328
              }
            }
          },
          {
            "description": "Used to allow global prefixing of classes, and also the ability to \nChange a class used in the system (ie. like a component for example)\n",
            "context": {
              "type": "function",
              "name": "class",
              "code": "\n  // Check if it's a wildcard\n  $wildcard: -get-class-wildcard($class);\n  $override: map.get($-class-overrides, $class);\n  $updated: utils.fallback($override, $wildcard, $class);\n  $name: \"#{ get(\"prefix\") }#{ $updated }\";\n  @if $name-only {\n    @return $name;\n  } @else {\n    @return \".#{ $name }\";\n  }\n",
              "line": {
                "start": 67,
                "end": 78
              }
            }
          },
          {
            "description": "Used to allow global prefixing of classes, and also the ability to \nChange a class used in the system (ie. like a component for example)\n",
            "context": {
              "type": "function",
              "name": "class",
              "code": "\n  // Check if it's a wildcard\n  $wildcard: -get-class-wildcard($class);\n  $override: map.get($-class-overrides, $class);\n  $updated: utils.fallback($override, $wildcard, $class);\n  $name: \"#{ get(\"prefix\") }#{ $updated }\";\n  @if $name-only {\n    @return $name;\n  } @else {\n    @return \".#{ $name }\";\n  }\n",
              "line": {
                "start": 67,
                "end": 78
              }
            }
          },
          {
            "description": "Helper function to safely get the color scheme\n",
            "context": {
              "type": "function",
              "name": "get-color-scheme",
              "code": "\n  $schemes: get(\"color-schemes\");\n  $mapped: map.get($schemes, $theme-name);\n\n  @if ($mapped) {\n    @return $mapped;\n  }\n\n  @if ($theme-name == \"light\" or $theme-name == \"dark\") {\n    @return $theme-name;\n  }\n\n  @warn \"ULU Themes: No valid color-scheme mapped for theme '#{$theme-name}'. Please add it using `themes.set(( \\\"color-schemes\\\" : ( \\\"#{$theme-name}\\\": \\\"light|dark\\\" ) ))`. The `color-scheme` property will not be output for this theme.\";\n  @return null;\n",
              "line": {
                "start": 77,
                "end": 91
              }
            }
          },
          {
            "description": "Helper function to safely get the color scheme\n",
            "context": {
              "type": "function",
              "name": "get-color-scheme",
              "code": "\n  $schemes: get(\"color-schemes\");\n  $mapped: map.get($schemes, $theme-name);\n\n  @if ($mapped) {\n    @return $mapped;\n  }\n\n  @if ($theme-name == \"light\" or $theme-name == \"dark\") {\n    @return $theme-name;\n  }\n\n  @warn \"ULU Themes: No valid color-scheme mapped for theme '#{$theme-name}'. Please add it using `themes.set(( \\\"color-schemes\\\" : ( \\\"#{$theme-name}\\\": \\\"light|dark\\\" ) ))`. The `color-scheme` property will not be output for this theme.\";\n  @return null;\n",
              "line": {
                "start": 77,
                "end": 91
              }
            }
          },
          {
            "description": "Outputs css vars for a specific type from a theme map\n",
            "context": {
              "type": "mixin",
              "name": "declare",
              "code": "\n  @each $name, $definition in $tokens {\n    $value: map.get($definition, $key);\n    @if ($value != null) {\n      @include cssvar.declare($name, $value, $prefix);\n    }\n  }\n",
              "line": {
                "start": 125,
                "end": 132
              }
            }
          },
          {
            "description": "Get scale of the base font-size\n",
            "context": {
              "type": "function",
              "name": "scale",
              "code": "\n  @return utils.ratio-scale-size(get(\"font-size\"), get(\"size-ratio\"), get(\"scale-steps\"), $step);\n",
              "line": {
                "start": 90,
                "end": 92
              }
            }
          },
          {
            "description": "Get scale of the base font-size\n",
            "context": {
              "type": "function",
              "name": "scale",
              "code": "\n  @return utils.ratio-scale-size(get(\"font-size\"), get(\"size-ratio\"), get(\"scale-steps\"), $step);\n",
              "line": {
                "start": 90,
                "end": 92
              }
            }
          },
          {
            "description": "Get scale of the base font-size\n",
            "context": {
              "type": "function",
              "name": "scale",
              "code": "\n  @return utils.ratio-scale-size(get(\"font-size\"), get(\"size-ratio\"), get(\"scale-steps\"), $step);\n",
              "line": {
                "start": 90,
                "end": 92
              }
            }
          },
          {
            "description": "Get scale of the line-height\n",
            "context": {
              "type": "function",
              "name": "scale-line-height",
              "code": "\n  @return utils.ratio-scale-size(get(\"line-height\"), get(\"size-line-height-ratio\"), get(\"scale-steps\"), $step);\n",
              "line": {
                "start": 99,
                "end": 101
              }
            }
          },
          {
            "description": "Get scale of the line-height\n",
            "context": {
              "type": "function",
              "name": "scale-line-height",
              "code": "\n  @return utils.ratio-scale-size(get(\"line-height\"), get(\"size-line-height-ratio\"), get(\"scale-steps\"), $step);\n",
              "line": {
                "start": 99,
                "end": 101
              }
            }
          },
          {
            "description": "Get scale of the line-height\n",
            "context": {
              "type": "function",
              "name": "scale-line-height",
              "code": "\n  @return utils.ratio-scale-size(get(\"line-height\"), get(\"size-line-height-ratio\"), get(\"scale-steps\"), $step);\n",
              "line": {
                "start": 99,
                "end": 101
              }
            }
          },
          {
            "description": "Convert pixel value to rem value based on typography $font-size\n",
            "context": {
              "type": "function",
              "name": "rem",
              "code": "\n  @if math.unit($pixels) == \"px\"  {\n    @return math.div($pixels, get(\"font-size\")) * 1rem;\n  } @else {\n    @return $pixels + 1rem;\n  }\n",
              "line": {
                "start": 107,
                "end": 113
              }
            }
          },
          {
            "description": "Creates a size map \n- This is just an accelerator for creating a size map\n- This is opinionated about how sizes are setup, headlines get (margins, bold, headline color) and are base classes while non-headlines are added as helper classes and do not get (margins, bold, color)\n- You can pass your own size maps using set-sizes()\n",
            "context": {
              "type": "function",
              "name": "new-size",
              "code": "\n  @return (\n    \"font-size\": $font-size,\n    \"font-weight\" : utils.when($is-headline, get(\"font-weight-bold\"), null), \n    \"line-height\": $line-height,\n    \"margin-bottom\" : utils.when($is-headline, get(\"margin-bottom\"), null),\n    \"margin-top\" : utils.when($is-headline, get(\"headline-margin-top\"), null),\n    \"responsive\" : true,\n    \"helper-class\" : utils.when($is-headline, false, true),\n    \"helper-class-prefixed\" : true,\n    \"base-class\" : utils.when($is-headline, true, false),\n    \"base-class-prefixed\" : false,\n    \"color\" : utils.when($is-headline, \"headline\", null)\n  );\n",
              "line": {
                "start": 145,
                "end": 159
              }
            }
          },
          {
            "description": "Creates a size map \n- This is just an accelerator for creating a size map\n- This is opinionated about how sizes are setup, headlines get (margins, bold, headline color) and are base classes while non-headlines are added as helper classes and do not get (margins, bold, color)\n- You can pass your own size maps using set-sizes()\n",
            "context": {
              "type": "function",
              "name": "new-size",
              "code": "\n  @return (\n    \"font-size\": $font-size,\n    \"font-weight\" : utils.when($is-headline, get(\"font-weight-bold\"), null), \n    \"line-height\": $line-height,\n    \"margin-bottom\" : utils.when($is-headline, get(\"margin-bottom\"), null),\n    \"margin-top\" : utils.when($is-headline, get(\"headline-margin-top\"), null),\n    \"responsive\" : true,\n    \"helper-class\" : utils.when($is-headline, false, true),\n    \"helper-class-prefixed\" : true,\n    \"base-class\" : utils.when($is-headline, true, false),\n    \"base-class-prefixed\" : false,\n    \"color\" : utils.when($is-headline, \"headline\", null)\n  );\n",
              "line": {
                "start": 145,
                "end": 159
              }
            }
          },
          {
            "description": "Creates a size map \n- This is just an accelerator for creating a size map\n- This is opinionated about how sizes are setup, headlines get (margins, bold, headline color) and are base classes while non-headlines are added as helper classes and do not get (margins, bold, color)\n- You can pass your own size maps using set-sizes()\n",
            "context": {
              "type": "function",
              "name": "new-size",
              "code": "\n  @return (\n    \"font-size\": $font-size,\n    \"font-weight\" : utils.when($is-headline, get(\"font-weight-bold\"), null), \n    \"line-height\": $line-height,\n    \"margin-bottom\" : utils.when($is-headline, get(\"margin-bottom\"), null),\n    \"margin-top\" : utils.when($is-headline, get(\"headline-margin-top\"), null),\n    \"responsive\" : true,\n    \"helper-class\" : utils.when($is-headline, false, true),\n    \"helper-class-prefixed\" : true,\n    \"base-class\" : utils.when($is-headline, true, false),\n    \"base-class-prefixed\" : false,\n    \"color\" : utils.when($is-headline, \"headline\", null)\n  );\n",
              "line": {
                "start": 145,
                "end": 159
              }
            }
          },
          {
            "description": "Print a value from the size and convert it (to appropriate unit for framework)\n",
            "context": {
              "type": "function",
              "name": "get-size-converted-value",
              "code": "\n  // Font size is calculated differently\n  $value: map.get($size, $prop);\n  $font-size: map.get($size, \"font-size\");\n  $type: meta.type-of($value);\n  \n  @if ($value == false or $value == null) {\n    @return null;\n  // Numbers and true (default) need to be converted\n  } @else if ($value == true or $type == number) {\n    // Get default value\n    @if ($value == true)  {\n      $value: get($prop);\n    }\n    // Force line-height to be unitless\n    @if ($prop == \"line-height\") {\n      @return unitless-line-height($value, $font-size);\n    }\n    // Convert to REM\n    @if (math.unit($value) == \"px\") {\n      $value: rem($value);\n    }\n    @return $value;\n  } @else {\n    @return $value;\n  }\n",
              "line": {
                "start": 260,
                "end": 286
              }
            }
          },
          {
            "description": "Print a value from the size and convert it (to appropriate unit for framework)\n",
            "context": {
              "type": "function",
              "name": "get-size-converted-value",
              "code": "\n  // Font size is calculated differently\n  $value: map.get($size, $prop);\n  $font-size: map.get($size, \"font-size\");\n  $type: meta.type-of($value);\n  \n  @if ($value == false or $value == null) {\n    @return null;\n  // Numbers and true (default) need to be converted\n  } @else if ($value == true or $type == number) {\n    // Get default value\n    @if ($value == true)  {\n      $value: get($prop);\n    }\n    // Force line-height to be unitless\n    @if ($prop == \"line-height\") {\n      @return unitless-line-height($value, $font-size);\n    }\n    // Convert to REM\n    @if (math.unit($value) == \"px\") {\n      $value: rem($value);\n    }\n    @return $value;\n  } @else {\n    @return $value;\n  }\n",
              "line": {
                "start": 260,
                "end": 286
              }
            }
          },
          {
            "description": "Print a value from the size and convert it (to appropriate unit for framework)\n",
            "context": {
              "type": "function",
              "name": "get-size-converted-value",
              "code": "\n  // Font size is calculated differently\n  $value: map.get($size, $prop);\n  $font-size: map.get($size, \"font-size\");\n  $type: meta.type-of($value);\n  \n  @if ($value == false or $value == null) {\n    @return null;\n  // Numbers and true (default) need to be converted\n  } @else if ($value == true or $type == number) {\n    // Get default value\n    @if ($value == true)  {\n      $value: get($prop);\n    }\n    // Force line-height to be unitless\n    @if ($prop == \"line-height\") {\n      @return unitless-line-height($value, $font-size);\n    }\n    // Convert to REM\n    @if (math.unit($value) == \"px\") {\n      $value: rem($value);\n    }\n    @return $value;\n  } @else {\n    @return $value;\n  }\n",
              "line": {
                "start": 260,
                "end": 286
              }
            }
          },
          {
            "description": "Get a sizes property value that doesn't need conversion \n- Reason: Will map to default if user set's size prop to true\n",
            "context": {
              "type": "function",
              "name": "get-size-value",
              "code": "\n  $value: map.get($size, $prop);\n  // Default\n  @if ($value == true) {\n    $value: get($prop);\n  }\n  @return $value;\n",
              "line": {
                "start": 293,
                "end": 300
              }
            }
          },
          {
            "description": "Get a sizes property value that doesn't need conversion \n- Reason: Will map to default if user set's size prop to true\n",
            "context": {
              "type": "function",
              "name": "get-size-value",
              "code": "\n  $value: map.get($size, $prop);\n  // Default\n  @if ($value == true) {\n    $value: get($prop);\n  }\n  @return $value;\n",
              "line": {
                "start": 293,
                "end": 300
              }
            }
          },
          {
            "description": "Print a typography size (font-size, line-height)\n",
            "context": {
              "type": "mixin",
              "name": "size",
              "code": "\n  $size: $name;\n  // Allow custom maps\n  @if (meta.type-of($name) == \"string\") {\n    $size: get-size($name);\n  }\n  @if ($changes) {\n    $size: map.merge($size, $changes);\n  }\n  $font-size: get-size-converted-value($size, \"font-size\");\n  $breakpoints: map.get($size, \"breakpoints\");\n  $responsive: map.get($size, \"responsive\");\n  $color: map.get($size, \"color\");\n\n  font-size: $font-size;\n  @if ($responsive) {\n    @if (meta.type-of($responsive) == \"number\") {\n      @include font-size-responsive($font-size, $responsive);\n    } @else {\n      @include font-size-responsive($font-size);\n    }\n  }\n  @if (not $only-font-size) {\n    font-weight: get-size-value($size, \"font-weight\");\n    font-family: get-size-value($size, \"font-family\");\n    font-variation-settings: get-size-value($size, \"font-variation-settings\");\n    line-height: get-size-converted-value($size, \"line-height\");\n    margin-top: get-size-converted-value($size, \"margin-top\");\n    margin-bottom: get-size-converted-value($size, \"margin-bottom\");\n    color: utils.when($color, color.get($color), null);\n  }\n\n  // If they have breakpoints, process them\n  @if $breakpoints {\n    @each $name, $breakpoint in $breakpoints {\n      $direction: map.get($breakpoint, \"direction\");\n      @include breakpoint.from($name, $direction) {\n        @include size($breakpoint, null, $only-font-size);\n      }\n    }\n  }\n",
              "line": {
                "start": 328,
                "end": 369
              }
            }
          },
          {
            "description": "Print a typography size (font-size, line-height)\n",
            "context": {
              "type": "mixin",
              "name": "size",
              "code": "\n  $size: $name;\n  // Allow custom maps\n  @if (meta.type-of($name) == \"string\") {\n    $size: get-size($name);\n  }\n  @if ($changes) {\n    $size: map.merge($size, $changes);\n  }\n  $font-size: get-size-converted-value($size, \"font-size\");\n  $breakpoints: map.get($size, \"breakpoints\");\n  $responsive: map.get($size, \"responsive\");\n  $color: map.get($size, \"color\");\n\n  font-size: $font-size;\n  @if ($responsive) {\n    @if (meta.type-of($responsive) == \"number\") {\n      @include font-size-responsive($font-size, $responsive);\n    } @else {\n      @include font-size-responsive($font-size);\n    }\n  }\n  @if (not $only-font-size) {\n    font-weight: get-size-value($size, \"font-weight\");\n    font-family: get-size-value($size, \"font-family\");\n    font-variation-settings: get-size-value($size, \"font-variation-settings\");\n    line-height: get-size-converted-value($size, \"line-height\");\n    margin-top: get-size-converted-value($size, \"margin-top\");\n    margin-bottom: get-size-converted-value($size, \"margin-bottom\");\n    color: utils.when($color, color.get($color), null);\n  }\n\n  // If they have breakpoints, process them\n  @if $breakpoints {\n    @each $name, $breakpoint in $breakpoints {\n      $direction: map.get($breakpoint, \"direction\");\n      @include breakpoint.from($name, $direction) {\n        @include size($breakpoint, null, $only-font-size);\n      }\n    }\n  }\n",
              "line": {
                "start": 328,
                "end": 369
              }
            }
          },
          {
            "description": "Print a typography size (font-size, line-height)\n",
            "context": {
              "type": "mixin",
              "name": "size",
              "code": "\n  $size: $name;\n  // Allow custom maps\n  @if (meta.type-of($name) == \"string\") {\n    $size: get-size($name);\n  }\n  @if ($changes) {\n    $size: map.merge($size, $changes);\n  }\n  $font-size: get-size-converted-value($size, \"font-size\");\n  $breakpoints: map.get($size, \"breakpoints\");\n  $responsive: map.get($size, \"responsive\");\n  $color: map.get($size, \"color\");\n\n  font-size: $font-size;\n  @if ($responsive) {\n    @if (meta.type-of($responsive) == \"number\") {\n      @include font-size-responsive($font-size, $responsive);\n    } @else {\n      @include font-size-responsive($font-size);\n    }\n  }\n  @if (not $only-font-size) {\n    font-weight: get-size-value($size, \"font-weight\");\n    font-family: get-size-value($size, \"font-family\");\n    font-variation-settings: get-size-value($size, \"font-variation-settings\");\n    line-height: get-size-converted-value($size, \"line-height\");\n    margin-top: get-size-converted-value($size, \"margin-top\");\n    margin-bottom: get-size-converted-value($size, \"margin-bottom\");\n    color: utils.when($color, color.get($color), null);\n  }\n\n  // If they have breakpoints, process them\n  @if $breakpoints {\n    @each $name, $breakpoint in $breakpoints {\n      $direction: map.get($breakpoint, \"direction\");\n      @include breakpoint.from($name, $direction) {\n        @include size($breakpoint, null, $only-font-size);\n      }\n    }\n  }\n",
              "line": {
                "start": 328,
                "end": 369
              }
            }
          },
          {
            "description": "Print a typography size (font-size, line-height)\n",
            "context": {
              "type": "mixin",
              "name": "size",
              "code": "\n  $size: $name;\n  // Allow custom maps\n  @if (meta.type-of($name) == \"string\") {\n    $size: get-size($name);\n  }\n  @if ($changes) {\n    $size: map.merge($size, $changes);\n  }\n  $font-size: get-size-converted-value($size, \"font-size\");\n  $breakpoints: map.get($size, \"breakpoints\");\n  $responsive: map.get($size, \"responsive\");\n  $color: map.get($size, \"color\");\n\n  font-size: $font-size;\n  @if ($responsive) {\n    @if (meta.type-of($responsive) == \"number\") {\n      @include font-size-responsive($font-size, $responsive);\n    } @else {\n      @include font-size-responsive($font-size);\n    }\n  }\n  @if (not $only-font-size) {\n    font-weight: get-size-value($size, \"font-weight\");\n    font-family: get-size-value($size, \"font-family\");\n    font-variation-settings: get-size-value($size, \"font-variation-settings\");\n    line-height: get-size-converted-value($size, \"line-height\");\n    margin-top: get-size-converted-value($size, \"margin-top\");\n    margin-bottom: get-size-converted-value($size, \"margin-bottom\");\n    color: utils.when($color, color.get($color), null);\n  }\n\n  // If they have breakpoints, process them\n  @if $breakpoints {\n    @each $name, $breakpoint in $breakpoints {\n      $direction: map.get($breakpoint, \"direction\");\n      @include breakpoint.from($name, $direction) {\n        @include size($breakpoint, null, $only-font-size);\n      }\n    }\n  }\n",
              "line": {
                "start": 328,
                "end": 369
              }
            }
          },
          {
            "description": "Print a typography size (font-size, line-height)\n",
            "context": {
              "type": "mixin",
              "name": "size",
              "code": "\n  $size: $name;\n  // Allow custom maps\n  @if (meta.type-of($name) == \"string\") {\n    $size: get-size($name);\n  }\n  @if ($changes) {\n    $size: map.merge($size, $changes);\n  }\n  $font-size: get-size-converted-value($size, \"font-size\");\n  $breakpoints: map.get($size, \"breakpoints\");\n  $responsive: map.get($size, \"responsive\");\n  $color: map.get($size, \"color\");\n\n  font-size: $font-size;\n  @if ($responsive) {\n    @if (meta.type-of($responsive) == \"number\") {\n      @include font-size-responsive($font-size, $responsive);\n    } @else {\n      @include font-size-responsive($font-size);\n    }\n  }\n  @if (not $only-font-size) {\n    font-weight: get-size-value($size, \"font-weight\");\n    font-family: get-size-value($size, \"font-family\");\n    font-variation-settings: get-size-value($size, \"font-variation-settings\");\n    line-height: get-size-converted-value($size, \"line-height\");\n    margin-top: get-size-converted-value($size, \"margin-top\");\n    margin-bottom: get-size-converted-value($size, \"margin-bottom\");\n    color: utils.when($color, color.get($color), null);\n  }\n\n  // If they have breakpoints, process them\n  @if $breakpoints {\n    @each $name, $breakpoint in $breakpoints {\n      $direction: map.get($breakpoint, \"direction\");\n      @include breakpoint.from($name, $direction) {\n        @include size($breakpoint, null, $only-font-size);\n      }\n    }\n  }\n",
              "line": {
                "start": 328,
                "end": 369
              }
            }
          },
          {
            "description": "Get a required value from a map, throw an error if not found\n- Remember that that maps cannot intentionally use null (use false instead, if trying to avoid output if not configured)\n",
            "context": {
              "type": "function",
              "name": "require-map-get",
              "code": "\n  // $value: map.get($map, $key);\n  @if (map.has-key($map, $key)) {\n    @return map.get($map, $key);\n  } @else {\n    @if (get(\"debug-maps\")) {\n      @debug $map;\n    }\n    @error 'ULU: Unable to find  \"#{ $key }\" in #{ $context } map.';\n  }\n",
              "line": {
                "start": 59,
                "end": 69
              }
            }
          },
          {
            "description": "Get a required value from a map, throw an error if not found\n- Remember that that maps cannot intentionally use null (use false instead, if trying to avoid output if not configured)\n",
            "context": {
              "type": "function",
              "name": "require-map-get",
              "code": "\n  // $value: map.get($map, $key);\n  @if (map.has-key($map, $key)) {\n    @return map.get($map, $key);\n  } @else {\n    @if (get(\"debug-maps\")) {\n      @debug $map;\n    }\n    @error 'ULU: Unable to find  \"#{ $key }\" in #{ $context } map.';\n  }\n",
              "line": {
                "start": 59,
                "end": 69
              }
            }
          },
          {
            "description": "Get a required value from a map, throw an error if not found\n- Remember that that maps cannot intentionally use null (use false instead, if trying to avoid output if not configured)\n",
            "context": {
              "type": "function",
              "name": "require-map-get",
              "code": "\n  // $value: map.get($map, $key);\n  @if (map.has-key($map, $key)) {\n    @return map.get($map, $key);\n  } @else {\n    @if (get(\"debug-maps\")) {\n      @debug $map;\n    }\n    @error 'ULU: Unable to find  \"#{ $key }\" in #{ $context } map.';\n  }\n",
              "line": {
                "start": 59,
                "end": 69
              }
            }
          },
          {
            "description": "Returns true if we should include something (map of booleans)\n",
            "context": {
              "type": "function",
              "name": "included",
              "code": "\n  $value: map.get($includes, $name);\n  @return $value == true;\n",
              "line": {
                "start": 120,
                "end": 123
              }
            }
          },
          {
            "description": "Returns true/false if map has property\n",
            "context": {
              "type": "function",
              "name": "map-has",
              "code": "\n  @if (not is-map($map)) {\n    @error \"map-has(): Incorrect type for $map (should be map) got (#{ $type-passed })\";\n  }\n  @return map.get($map, $key) != null;\n",
              "line": {
                "start": 362,
                "end": 367
              }
            }
          },
          {
            "description": "Provides fallback values from the same map\n",
            "context": {
              "type": "function",
              "name": "map-fallback",
              "code": "\n  @each $prop in $properties {\n    $value: map.get($map, $prop);\n    @if ($value) {\n      @return $value;\n    }\n  }\n  @return null;\n",
              "line": {
                "start": 419,
                "end": 427
              }
            }
          },
          {
            "description": "Checks if a map contains one or more of the keys\n",
            "context": {
              "type": "function",
              "name": "map-contains-any",
              "code": "\n  @if (not is-map($map)) {\n    @error \"map-contains-any(): Incorrect type for $map (should be map)\";\n  }\n  @if (not is-list($keys)) {\n    @error \"map-contains-any(): Incorrect type for $keys (should be list)\";\n  }\n  @each $key in $keys {\n    @if map.has-key($map, $key) {\n      @if map.get($options, \"with-value\") {\n        @if map.get($map, $key) != null {\n          @return true;\n        }\n      } @else {\n        @return true;\n      }\n    }\n  }\n  @return false;\n",
              "line": {
                "start": 447,
                "end": 466
              }
            }
          },
          {
            "description": "Checks if a map contains one or more of the keys\n",
            "context": {
              "type": "function",
              "name": "map-contains-any",
              "code": "\n  @if (not is-map($map)) {\n    @error \"map-contains-any(): Incorrect type for $map (should be map)\";\n  }\n  @if (not is-list($keys)) {\n    @error \"map-contains-any(): Incorrect type for $keys (should be list)\";\n  }\n  @each $key in $keys {\n    @if map.has-key($map, $key) {\n      @if map.get($options, \"with-value\") {\n        @if map.get($map, $key) != null {\n          @return true;\n        }\n      } @else {\n        @return true;\n      }\n    }\n  }\n  @return false;\n",
              "line": {
                "start": 447,
                "end": 466
              }
            }
          },
          {
            "description": "Helps in providing a dynamic fallback for modules whose defaults should come from another\n",
            "context": {
              "type": "function",
              "name": "function-fallback",
              "code": "\n  $arguments: null;\n  // If there was already a value return it else resolve through passed function\n  @if ($value == true)  {\n    $function: map.get($lookup, $prop);\n    // Allow user to pass a nested map to route to another property\n    @if (meta.type-of($function) == \"map\") {\n      $functionMap: $function;\n      $function: map.get($functionMap, \"function\");\n      $prop: map.get($functionMap, \"property\");\n      // Arguments will override everything (allow calling functions with args)\n      $arguments: map.get($functionMap, \"arguments\");\n    }\n    @if ($function) { \n      @if ($arguments) {\n        @if (meta.type-of($arguments) == \"list\") {\n          @return meta.call($function, $arguments...);\n        } @else {\n          @error \"Arguments must be a list, use single list for single argument ie '(3,)'\";\n        }\n      } @else {\n        @return meta.call($function, $prop);\n      }\n    } \n  }\n  @return $value;\n",
              "line": {
                "start": 476,
                "end": 502
              }
            }
          },
          {
            "description": "Helps in providing a dynamic fallback for modules whose defaults should come from another\n",
            "context": {
              "type": "function",
              "name": "function-fallback",
              "code": "\n  $arguments: null;\n  // If there was already a value return it else resolve through passed function\n  @if ($value == true)  {\n    $function: map.get($lookup, $prop);\n    // Allow user to pass a nested map to route to another property\n    @if (meta.type-of($function) == \"map\") {\n      $functionMap: $function;\n      $function: map.get($functionMap, \"function\");\n      $prop: map.get($functionMap, \"property\");\n      // Arguments will override everything (allow calling functions with args)\n      $arguments: map.get($functionMap, \"arguments\");\n    }\n    @if ($function) { \n      @if ($arguments) {\n        @if (meta.type-of($arguments) == \"list\") {\n          @return meta.call($function, $arguments...);\n        } @else {\n          @error \"Arguments must be a list, use single list for single argument ie '(3,)'\";\n        }\n      } @else {\n        @return meta.call($function, $prop);\n      }\n    } \n  }\n  @return $value;\n",
              "line": {
                "start": 476,
                "end": 502
              }
            }
          },
          {
            "description": "Helps in providing a dynamic fallback for modules whose defaults should come from another\n",
            "context": {
              "type": "function",
              "name": "function-fallback",
              "code": "\n  $arguments: null;\n  // If there was already a value return it else resolve through passed function\n  @if ($value == true)  {\n    $function: map.get($lookup, $prop);\n    // Allow user to pass a nested map to route to another property\n    @if (meta.type-of($function) == \"map\") {\n      $functionMap: $function;\n      $function: map.get($functionMap, \"function\");\n      $prop: map.get($functionMap, \"property\");\n      // Arguments will override everything (allow calling functions with args)\n      $arguments: map.get($functionMap, \"arguments\");\n    }\n    @if ($function) { \n      @if ($arguments) {\n        @if (meta.type-of($arguments) == \"list\") {\n          @return meta.call($function, $arguments...);\n        } @else {\n          @error \"Arguments must be a list, use single list for single argument ie '(3,)'\";\n        }\n      } @else {\n        @return meta.call($function, $prop);\n      }\n    } \n  }\n  @return $value;\n",
              "line": {
                "start": 476,
                "end": 502
              }
            }
          },
          {
            "description": "Helps in providing a dynamic fallback for modules whose defaults should come from another\n",
            "context": {
              "type": "function",
              "name": "function-fallback",
              "code": "\n  $arguments: null;\n  // If there was already a value return it else resolve through passed function\n  @if ($value == true)  {\n    $function: map.get($lookup, $prop);\n    // Allow user to pass a nested map to route to another property\n    @if (meta.type-of($function) == \"map\") {\n      $functionMap: $function;\n      $function: map.get($functionMap, \"function\");\n      $prop: map.get($functionMap, \"property\");\n      // Arguments will override everything (allow calling functions with args)\n      $arguments: map.get($functionMap, \"arguments\");\n    }\n    @if ($function) { \n      @if ($arguments) {\n        @if (meta.type-of($arguments) == \"list\") {\n          @return meta.call($function, $arguments...);\n        } @else {\n          @error \"Arguments must be a list, use single list for single argument ie '(3,)'\";\n        }\n      } @else {\n        @return meta.call($function, $prop);\n      }\n    } \n  }\n  @return $value;\n",
              "line": {
                "start": 476,
                "end": 502
              }
            }
          },
          {
            "description": "Resolve the top spacing value for margin/padding like arguments\n",
            "context": {
              "type": "function",
              "name": "get-spacing-top",
              "code": "\n  @return map.get(get-spacing($value), \"top\");\n",
              "line": {
                "start": 651,
                "end": 653
              }
            }
          },
          {
            "description": "Resolve the right spacing value for margin/padding like arguments\n",
            "context": {
              "type": "function",
              "name": "get-spacing-right",
              "code": "\n  @return map.get(get-spacing($value), \"right\");\n",
              "line": {
                "start": 666,
                "end": 668
              }
            }
          },
          {
            "description": "Resolve the bottom spacing value for margin/padding like arguments\n",
            "context": {
              "type": "function",
              "name": "get-spacing-bottom",
              "code": "\n  @return map.get(get-spacing($value), \"bottom\");\n",
              "line": {
                "start": 681,
                "end": 683
              }
            }
          },
          {
            "description": "Resolve the left spacing value for margin/padding like arguments\n",
            "context": {
              "type": "function",
              "name": "get-spacing-left",
              "code": "\n  @return map.get(get-spacing($value), \"left\");\n",
              "line": {
                "start": 696,
                "end": 698
              }
            }
          },
          {
            "description": "Get's the extent (how far the shadow extends past the box's edge)\n- This will only work on box-shadows that have matching units for the numbers\n",
            "context": {
              "type": "function",
              "name": "box-shadow-extent",
              "code": "\n  $info: box-shadow-info($shadow);\n  $extent: map.get($info, \"spread\") + map.get($info, \"blur\");\n  $offset-x: map.get($info, \"offset-x\");\n  $offset-y: map.get($info, \"offset-y\");\n  @if (not $side) {\n    @return $extent;\n  } @else {\n    @if ($side == \"top\") {\n      @return $extent - $offset-y;\n    } @else if ($side == \"bottom\") {\n      @return $extent + $offset-y;\n    } @else if ($side == \"left\") {\n      @return $extent - $offset-x;\n    } @else if ($side == \"right\") {\n      @return $extent + $offset-x;\n    }\n  }\n",
              "line": {
                "start": 858,
                "end": 876
              }
            }
          },
          {
            "description": "Get's the extent (how far the shadow extends past the box's edge)\n- This will only work on box-shadows that have matching units for the numbers\n",
            "context": {
              "type": "function",
              "name": "box-shadow-extent",
              "code": "\n  $info: box-shadow-info($shadow);\n  $extent: map.get($info, \"spread\") + map.get($info, \"blur\");\n  $offset-x: map.get($info, \"offset-x\");\n  $offset-y: map.get($info, \"offset-y\");\n  @if (not $side) {\n    @return $extent;\n  } @else {\n    @if ($side == \"top\") {\n      @return $extent - $offset-y;\n    } @else if ($side == \"bottom\") {\n      @return $extent + $offset-y;\n    } @else if ($side == \"left\") {\n      @return $extent - $offset-x;\n    } @else if ($side == \"right\") {\n      @return $extent + $offset-x;\n    }\n  }\n",
              "line": {
                "start": 858,
                "end": 876
              }
            }
          },
          {
            "description": "Get's the extent (how far the shadow extends past the box's edge)\n- This will only work on box-shadows that have matching units for the numbers\n",
            "context": {
              "type": "function",
              "name": "box-shadow-extent",
              "code": "\n  $info: box-shadow-info($shadow);\n  $extent: map.get($info, \"spread\") + map.get($info, \"blur\");\n  $offset-x: map.get($info, \"offset-x\");\n  $offset-y: map.get($info, \"offset-y\");\n  @if (not $side) {\n    @return $extent;\n  } @else {\n    @if ($side == \"top\") {\n      @return $extent - $offset-y;\n    } @else if ($side == \"bottom\") {\n      @return $extent + $offset-y;\n    } @else if ($side == \"left\") {\n      @return $extent - $offset-x;\n    } @else if ($side == \"right\") {\n      @return $extent + $offset-x;\n    }\n  }\n",
              "line": {
                "start": 858,
                "end": 876
              }
            }
          },
          {
            "description": "Get's the extent (how far the shadow extends past the box's edge)\n- This will only work on box-shadows that have matching units for the numbers\n",
            "context": {
              "type": "function",
              "name": "box-shadow-extent",
              "code": "\n  $info: box-shadow-info($shadow);\n  $extent: map.get($info, \"spread\") + map.get($info, \"blur\");\n  $offset-x: map.get($info, \"offset-x\");\n  $offset-y: map.get($info, \"offset-y\");\n  @if (not $side) {\n    @return $extent;\n  } @else {\n    @if ($side == \"top\") {\n      @return $extent - $offset-y;\n    } @else if ($side == \"bottom\") {\n      @return $extent + $offset-y;\n    } @else if ($side == \"left\") {\n      @return $extent - $offset-x;\n    } @else if ($side == \"right\") {\n      @return $extent + $offset-x;\n    }\n  }\n",
              "line": {
                "start": 858,
                "end": 876
              }
            }
          },
          {
            "description": "For legacy aspect ratio conversion\n- For a given value if it's a percentage number convert to css aspect ratio like 16/9\n",
            "context": {
              "type": "function",
              "name": "normalize-aspect-ratio",
              "code": "\n  @if is-number($value) and not math.is-unitless($value) {\n    $info: number-info($value);\n    @if ($info) {\n      $u: map.get($info, \"unit\");\n      $v: map.get($info, \"value\");\n      @if $u == \"%\" {\n        @return string.unquote(\"100 / #{ $v }\");\n      }\n    }\n  }\n  @if is-string($value) {\n    @return string.unquote($value);\n  }\n  @return $value;\n",
              "line": {
                "start": 999,
                "end": 1014
              }
            }
          },
          {
            "description": "For legacy aspect ratio conversion\n- For a given value if it's a percentage number convert to css aspect ratio like 16/9\n",
            "context": {
              "type": "function",
              "name": "normalize-aspect-ratio",
              "code": "\n  @if is-number($value) and not math.is-unitless($value) {\n    $info: number-info($value);\n    @if ($info) {\n      $u: map.get($info, \"unit\");\n      $v: map.get($info, \"value\");\n      @if $u == \"%\" {\n        @return string.unquote(\"100 / #{ $v }\");\n      }\n    }\n  }\n  @if is-string($value) {\n    @return string.unquote($value);\n  }\n  @return $value;\n",
              "line": {
                "start": 999,
                "end": 1014
              }
            }
          }
        ]
      },
      {
        "id": "variable-sizes",
        "title": "$sizes",
        "groupName": "breakpoint",
        "path": "/sass/core/breakpoint/#variable-sizes",
        "description": "The default breakpoint sizes\n- Map of breakpoints\n- Each property is the breakpoints name\n- Each value is that breakpoints point (set in em by default)\n",
        "commentRange": {
          "start": 45,
          "end": 49
        },
        "context": {
          "type": "variable",
          "name": "sizes",
          "value": "(\n  \"small\"  : utils.pixel-to-em(680px, get(\"base\")),\n  \"medium\" : utils.pixel-to-em(1200px, get(\"base\")),\n  \"large\"  : utils.pixel-to-em(1500px, get(\"base\"))\n)",
          "scope": "default",
          "line": {
            "start": 51,
            "end": 55
          }
        },
        "type": "Map",
        "group": [
          "breakpoint"
        ],
        "access": "public",
        "file": {
          "path": "_breakpoint.scss",
          "name": "_breakpoint.scss"
        },
        "usedBy": [
          {
            "description": "Update the breakpoint sizes map\n",
            "context": {
              "type": "mixin",
              "name": "set-sizes",
              "code": "\n  $sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 66,
                "end": 68
              }
            }
          },
          {
            "description": "Update the breakpoint sizes map\n",
            "context": {
              "type": "mixin",
              "name": "set-sizes",
              "code": "\n  $sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 66,
                "end": 68
              }
            }
          },
          {
            "description": "Get all breakpoint sizes\n",
            "context": {
              "type": "function",
              "name": "get-sizes",
              "code": "\n  @return $sizes;\n",
              "line": {
                "start": 79,
                "end": 81
              }
            }
          },
          {
            "description": "Get a specific breakpoint's raw value/size\n",
            "context": {
              "type": "function",
              "name": "get-size",
              "code": "\n  @return utils.require-map-get($sizes, $size, \"breakpoint size\");\n",
              "line": {
                "start": 92,
                "end": 94
              }
            }
          },
          {
            "description": "Check if a specific size exist\n",
            "context": {
              "type": "function",
              "name": "exists",
              "code": "\n  $size: map.get($sizes, $name);\n  @return utils.when($size != null, true, false);\n",
              "line": {
                "start": 132,
                "end": 135
              }
            }
          },
          {
            "description": "Attaches breakpoints to an element pseudo content for access via script\n- Note you can also use cssvar.declare-breakpoints to get a similar implementation with css custom-properties\n- Use with ulu/js/breakpoints (class has options for content property or css custom property)\n- Breakpoints always min-width (upwards) for javascript setup\n",
            "context": {
              "type": "mixin",
              "name": "embed-for-scripts",
              "code": "\n  &::before {\n    display: none;\n    content: get(\"null-name\");\n    @each $size, $breakpoint in $sizes {\n      @include min($size) {\n        content: $size;\n      }\n    }\n  }\n",
              "line": {
                "start": 256,
                "end": 266
              }
            }
          },
          {
            "description": "Set Button Sizes\n- See $sizes for example of structure of map\n",
            "context": {
              "type": "mixin",
              "name": "set-sizes",
              "code": "\n  $sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 175,
                "end": 177
              }
            }
          },
          {
            "description": "Set Button Sizes\n- See $sizes for example of structure of map\n",
            "context": {
              "type": "mixin",
              "name": "set-sizes",
              "code": "\n  $sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 175,
                "end": 177
              }
            }
          },
          {
            "description": "Print button size styles for a specific size\n",
            "context": {
              "type": "mixin",
              "name": "size",
              "code": "\n  $size: utils.require-map-get($sizes, $name, 'button [size]');\n  $font-size: map.get($size, \"font-size\");\n  padding: map.get($size, \"padding\");\n  border-radius: map.get($size, \"border-radius\");\n  border-width: map.get($size, \"border-width\");\n  min-width: map.get($size, \"min-width\");\n  @if $font-size {\n    @include typography.size($font-size);\n  }\n",
              "line": {
                "start": 279,
                "end": 289
              }
            }
          },
          {
            "description": "Configure the typography sizes\n",
            "context": {
              "type": "mixin",
              "name": "set-sizes",
              "code": "\n  $sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 216,
                "end": 218
              }
            }
          },
          {
            "description": "Configure the typography sizes\n",
            "context": {
              "type": "mixin",
              "name": "set-sizes",
              "code": "\n  $sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 216,
                "end": 218
              }
            }
          },
          {
            "description": "Get a specific size's settings map\n",
            "context": {
              "type": "function",
              "name": "get-size",
              "code": "\n  @return utils.require-map-get($sizes, $name, 'typography [size]');\n",
              "line": {
                "start": 224,
                "end": 226
              }
            }
          },
          {
            "description": "Check if a typography size exists\n",
            "context": {
              "type": "function",
              "name": "has-size",
              "code": "\n  @return utils.map-has($sizes, $name);\n",
              "line": {
                "start": 232,
                "end": 234
              }
            }
          },
          {
            "description": "Calculate the size of something at a given scale (percentage/exponential)\n",
            "context": {
              "type": "function",
              "name": "ratio-scale-size",
              "code": "\n  @return $base * math.pow($ratio, math.div($size, $sizes));\n",
              "line": {
                "start": 777,
                "end": 779
              }
            }
          }
        ]
      },
      {
        "id": "mixin-set-sizes",
        "title": "set-sizes()",
        "groupName": "breakpoint",
        "path": "/sass/core/breakpoint/#mixin-set-sizes",
        "description": "Update the breakpoint sizes map\n",
        "commentRange": {
          "start": 57,
          "end": 64
        },
        "context": {
          "type": "mixin",
          "name": "set-sizes",
          "code": "\n  $sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;\n",
          "line": {
            "start": 66,
            "end": 68
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.breakpoints-set-sizes((\n  \"medium\" : 50em,\n  \"jumbo\" : 100em\n));",
            "description": "Changing the medium breakpoint and adding jumbo"
          }
        ],
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "A map to merge into the breakpoints map"
          },
          {
            "type": "Map",
            "name": "merge-mode",
            "default": "null",
            "description": "Merge strategy see, utils.map-merge options"
          }
        ],
        "group": [
          "breakpoint"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "map-merge"
          },
          {
            "type": "variable",
            "name": "sizes"
          },
          {
            "type": "variable",
            "name": "sizes"
          }
        ],
        "file": {
          "path": "_breakpoint.scss",
          "name": "_breakpoint.scss"
        }
      },
      {
        "id": "function-get-sizes",
        "title": "get-sizes()",
        "groupName": "breakpoint",
        "path": "/sass/core/breakpoint/#function-get-sizes",
        "description": "Get all breakpoint sizes\n",
        "commentRange": {
          "start": 70,
          "end": 77
        },
        "context": {
          "type": "function",
          "name": "get-sizes",
          "code": "\n  @return $sizes;\n",
          "line": {
            "start": 79,
            "end": 81
          }
        },
        "compiler": [
          ""
        ],
        "example": [
          {
            "type": "scss",
            "code": ".test-get-sizes {\n  $sizes: ulu.breakpoint-get-sizes();\n  content: map.get($sizes, \"medium\");\n}",
            "description": "Example usage",
            "modifier": "compile"
          }
        ],
        "return": {
          "type": "Map",
          "description": "Map of breakpoints (equivalent to $sizes)"
        },
        "group": [
          "breakpoint"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "sizes"
          }
        ],
        "file": {
          "path": "_breakpoint.scss",
          "name": "_breakpoint.scss"
        }
      },
      {
        "id": "function-get-size",
        "title": "get-size()",
        "groupName": "breakpoint",
        "path": "/sass/core/breakpoint/#function-get-size",
        "description": "Get a specific breakpoint's raw value/size\n",
        "commentRange": {
          "start": 83,
          "end": 90
        },
        "context": {
          "type": "function",
          "name": "get-size",
          "code": "\n  @return utils.require-map-get($sizes, $size, \"breakpoint size\");\n",
          "line": {
            "start": 92,
            "end": 94
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "size",
            "description": "The name of the size to get"
          }
        ],
        "compiler": [
          ""
        ],
        "example": [
          {
            "type": "scss",
            "code": ".test-get-size {\n  content: ulu.breakpoint-get-size(\"medium\");\n}",
            "description": "Example usage",
            "modifier": "compile"
          }
        ],
        "return": {
          "type": "Number",
          "description": "The sizes value"
        },
        "group": [
          "breakpoint"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "require-map-get"
          },
          {
            "type": "variable",
            "name": "sizes"
          }
        ],
        "file": {
          "path": "_breakpoint.scss",
          "name": "_breakpoint.scss"
        },
        "usedBy": [
          {
            "description": "Get a specific breakpoint's size's value and optionally specify max to get the ending/max value for a breakpoint\n",
            "context": {
              "type": "function",
              "name": "get-size-value",
              "code": "\n  @if ($max) {\n    @return get-size($size) - get(\"gap\");\n  } @else {\n    @return get-size($size);\n  }\n",
              "line": {
                "start": 106,
                "end": 112
              }
            }
          },
          {
            "description": "Get a specific breakpoint's size's value and optionally specify max to get the ending/max value for a breakpoint\n",
            "context": {
              "type": "function",
              "name": "get-size-value",
              "code": "\n  @if ($max) {\n    @return get-size($size) - get(\"gap\");\n  } @else {\n    @return get-size($size);\n  }\n",
              "line": {
                "start": 106,
                "end": 112
              }
            }
          },
          {
            "description": "Create a media query that matches between two breakpoint sizes\n",
            "context": {
              "type": "mixin",
              "name": "min-max",
              "code": "\n  // Adding the small fraction to prevent overlap\n  $min: get-size($size-min); \n  $max: get-size($size-max); \n  @media screen and (min-width: $min) and (max-width: $max) {\n    @content;\n  }\n",
              "line": {
                "start": 187,
                "end": 194
              }
            }
          },
          {
            "description": "Create a media query that matches between two breakpoint sizes\n",
            "context": {
              "type": "mixin",
              "name": "min-max",
              "code": "\n  // Adding the small fraction to prevent overlap\n  $min: get-size($size-min); \n  $max: get-size($size-max); \n  @media screen and (min-width: $min) and (max-width: $max) {\n    @content;\n  }\n",
              "line": {
                "start": 187,
                "end": 194
              }
            }
          },
          {
            "description": "Print a typography size (font-size, line-height)\n",
            "context": {
              "type": "mixin",
              "name": "size",
              "code": "\n  $size: $name;\n  // Allow custom maps\n  @if (meta.type-of($name) == \"string\") {\n    $size: get-size($name);\n  }\n  @if ($changes) {\n    $size: map.merge($size, $changes);\n  }\n  $font-size: get-size-converted-value($size, \"font-size\");\n  $breakpoints: map.get($size, \"breakpoints\");\n  $responsive: map.get($size, \"responsive\");\n  $color: map.get($size, \"color\");\n\n  font-size: $font-size;\n  @if ($responsive) {\n    @if (meta.type-of($responsive) == \"number\") {\n      @include font-size-responsive($font-size, $responsive);\n    } @else {\n      @include font-size-responsive($font-size);\n    }\n  }\n  @if (not $only-font-size) {\n    font-weight: get-size-value($size, \"font-weight\");\n    font-family: get-size-value($size, \"font-family\");\n    font-variation-settings: get-size-value($size, \"font-variation-settings\");\n    line-height: get-size-converted-value($size, \"line-height\");\n    margin-top: get-size-converted-value($size, \"margin-top\");\n    margin-bottom: get-size-converted-value($size, \"margin-bottom\");\n    color: utils.when($color, color.get($color), null);\n  }\n\n  // If they have breakpoints, process them\n  @if $breakpoints {\n    @each $name, $breakpoint in $breakpoints {\n      $direction: map.get($breakpoint, \"direction\");\n      @include breakpoint.from($name, $direction) {\n        @include size($breakpoint, null, $only-font-size);\n      }\n    }\n  }\n",
              "line": {
                "start": 328,
                "end": 369
              }
            }
          }
        ]
      },
      {
        "id": "function-get-size-value",
        "title": "get-size-value()",
        "groupName": "breakpoint",
        "path": "/sass/core/breakpoint/#function-get-size-value",
        "description": "Get a specific breakpoint's size's value and optionally specify max to get the ending/max value for a breakpoint\n",
        "commentRange": {
          "start": 96,
          "end": 104
        },
        "context": {
          "type": "function",
          "name": "get-size-value",
          "code": "\n  @if ($max) {\n    @return get-size($size) - get(\"gap\");\n  } @else {\n    @return get-size($size);\n  }\n",
          "line": {
            "start": 106,
            "end": 112
          }
        },
        "parameter": [
          {
            "type": "Boolean",
            "name": "max",
            "default": "false",
            "description": "Get the max value"
          }
        ],
        "compiler": [
          ""
        ],
        "example": [
          {
            "type": "scss",
            "code": ".test-get-size-value {\n  content: ulu.breakpoint-get-size-value(\"medium\", true);\n  content: ulu.breakpoint-get-size-value(\"medium\");\n}",
            "description": "Example usage",
            "modifier": "compile"
          }
        ],
        "return": {
          "type": "Number",
          "description": "The value for the given size"
        },
        "group": [
          "breakpoint"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get-size"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get-size"
          }
        ],
        "file": {
          "path": "_breakpoint.scss",
          "name": "_breakpoint.scss"
        },
        "usedBy": [
          {
            "description": "Create a media query that matches the min-width for a given size\n",
            "context": {
              "type": "mixin",
              "name": "min",
              "code": "\n  // Adding the small fraction to prevent overlap\n  $min: get-size-value($size); \n  @media screen and (min-width: $min) {\n    @content;\n  }\n",
              "line": {
                "start": 148,
                "end": 154
              }
            }
          },
          {
            "description": "Create a media query that matches the max-width for a given size\n",
            "context": {
              "type": "mixin",
              "name": "max",
              "code": "\n  // Adding the small fraction to prevent overlap\n  $max: get-size-value($size, true); \n  @media screen and (max-width: $max) {\n    @content;\n  }\n",
              "line": {
                "start": 167,
                "end": 173
              }
            }
          },
          {
            "description": "Declare a custom property for each breakpoint size\n",
            "context": {
              "type": "mixin",
              "name": "declare-breakpoint-sizes",
              "code": "\n  @each $size, $value in $breakpoints {\n    $min: breakpoint.get-size-value($size);\n    $max: breakpoint.get-size-value($size, true);\n    @include declare(\"#{ $name }-#{ $size }-min\", $min, $prefix);\n    @include declare(\"#{ $name }-#{ $size }-max\", $max, $prefix);\n  }\n",
              "line": {
                "start": 165,
                "end": 176
              }
            }
          },
          {
            "description": "Declare a custom property for each breakpoint size\n",
            "context": {
              "type": "mixin",
              "name": "declare-breakpoint-sizes",
              "code": "\n  @each $size, $value in $breakpoints {\n    $min: breakpoint.get-size-value($size);\n    $max: breakpoint.get-size-value($size, true);\n    @include declare(\"#{ $name }-#{ $size }-min\", $min, $prefix);\n    @include declare(\"#{ $name }-#{ $size }-max\", $max, $prefix);\n  }\n",
              "line": {
                "start": 165,
                "end": 176
              }
            }
          },
          {
            "description": "Print a typography size (font-size, line-height)\n",
            "context": {
              "type": "mixin",
              "name": "size",
              "code": "\n  $size: $name;\n  // Allow custom maps\n  @if (meta.type-of($name) == \"string\") {\n    $size: get-size($name);\n  }\n  @if ($changes) {\n    $size: map.merge($size, $changes);\n  }\n  $font-size: get-size-converted-value($size, \"font-size\");\n  $breakpoints: map.get($size, \"breakpoints\");\n  $responsive: map.get($size, \"responsive\");\n  $color: map.get($size, \"color\");\n\n  font-size: $font-size;\n  @if ($responsive) {\n    @if (meta.type-of($responsive) == \"number\") {\n      @include font-size-responsive($font-size, $responsive);\n    } @else {\n      @include font-size-responsive($font-size);\n    }\n  }\n  @if (not $only-font-size) {\n    font-weight: get-size-value($size, \"font-weight\");\n    font-family: get-size-value($size, \"font-family\");\n    font-variation-settings: get-size-value($size, \"font-variation-settings\");\n    line-height: get-size-converted-value($size, \"line-height\");\n    margin-top: get-size-converted-value($size, \"margin-top\");\n    margin-bottom: get-size-converted-value($size, \"margin-bottom\");\n    color: utils.when($color, color.get($color), null);\n  }\n\n  // If they have breakpoints, process them\n  @if $breakpoints {\n    @each $name, $breakpoint in $breakpoints {\n      $direction: map.get($breakpoint, \"direction\");\n      @include breakpoint.from($name, $direction) {\n        @include size($breakpoint, null, $only-font-size);\n      }\n    }\n  }\n",
              "line": {
                "start": 328,
                "end": 369
              }
            }
          },
          {
            "description": "Print a typography size (font-size, line-height)\n",
            "context": {
              "type": "mixin",
              "name": "size",
              "code": "\n  $size: $name;\n  // Allow custom maps\n  @if (meta.type-of($name) == \"string\") {\n    $size: get-size($name);\n  }\n  @if ($changes) {\n    $size: map.merge($size, $changes);\n  }\n  $font-size: get-size-converted-value($size, \"font-size\");\n  $breakpoints: map.get($size, \"breakpoints\");\n  $responsive: map.get($size, \"responsive\");\n  $color: map.get($size, \"color\");\n\n  font-size: $font-size;\n  @if ($responsive) {\n    @if (meta.type-of($responsive) == \"number\") {\n      @include font-size-responsive($font-size, $responsive);\n    } @else {\n      @include font-size-responsive($font-size);\n    }\n  }\n  @if (not $only-font-size) {\n    font-weight: get-size-value($size, \"font-weight\");\n    font-family: get-size-value($size, \"font-family\");\n    font-variation-settings: get-size-value($size, \"font-variation-settings\");\n    line-height: get-size-converted-value($size, \"line-height\");\n    margin-top: get-size-converted-value($size, \"margin-top\");\n    margin-bottom: get-size-converted-value($size, \"margin-bottom\");\n    color: utils.when($color, color.get($color), null);\n  }\n\n  // If they have breakpoints, process them\n  @if $breakpoints {\n    @each $name, $breakpoint in $breakpoints {\n      $direction: map.get($breakpoint, \"direction\");\n      @include breakpoint.from($name, $direction) {\n        @include size($breakpoint, null, $only-font-size);\n      }\n    }\n  }\n",
              "line": {
                "start": 328,
                "end": 369
              }
            }
          },
          {
            "description": "Print a typography size (font-size, line-height)\n",
            "context": {
              "type": "mixin",
              "name": "size",
              "code": "\n  $size: $name;\n  // Allow custom maps\n  @if (meta.type-of($name) == \"string\") {\n    $size: get-size($name);\n  }\n  @if ($changes) {\n    $size: map.merge($size, $changes);\n  }\n  $font-size: get-size-converted-value($size, \"font-size\");\n  $breakpoints: map.get($size, \"breakpoints\");\n  $responsive: map.get($size, \"responsive\");\n  $color: map.get($size, \"color\");\n\n  font-size: $font-size;\n  @if ($responsive) {\n    @if (meta.type-of($responsive) == \"number\") {\n      @include font-size-responsive($font-size, $responsive);\n    } @else {\n      @include font-size-responsive($font-size);\n    }\n  }\n  @if (not $only-font-size) {\n    font-weight: get-size-value($size, \"font-weight\");\n    font-family: get-size-value($size, \"font-family\");\n    font-variation-settings: get-size-value($size, \"font-variation-settings\");\n    line-height: get-size-converted-value($size, \"line-height\");\n    margin-top: get-size-converted-value($size, \"margin-top\");\n    margin-bottom: get-size-converted-value($size, \"margin-bottom\");\n    color: utils.when($color, color.get($color), null);\n  }\n\n  // If they have breakpoints, process them\n  @if $breakpoints {\n    @each $name, $breakpoint in $breakpoints {\n      $direction: map.get($breakpoint, \"direction\");\n      @include breakpoint.from($name, $direction) {\n        @include size($breakpoint, null, $only-font-size);\n      }\n    }\n  }\n",
              "line": {
                "start": 328,
                "end": 369
              }
            }
          }
        ]
      },
      {
        "id": "function-exists",
        "title": "exists()",
        "groupName": "breakpoint",
        "path": "/sass/core/breakpoint/#function-exists",
        "description": "Check if a specific size exist\n",
        "commentRange": {
          "start": 114,
          "end": 130
        },
        "context": {
          "type": "function",
          "name": "exists",
          "code": "\n  $size: map.get($sizes, $name);\n  @return utils.when($size != null, true, false);\n",
          "line": {
            "start": 132,
            "end": 135
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "description": "The breakpoint size to check if exists"
          }
        ],
        "return": {
          "type": "Boolean"
        },
        "example": [
          {
            "type": "scss",
            "code": ".test-exists {\n  @if (ulu.breakpoint-exists(\"medium\")) {\n    @include ulu.breakpoint-min(\"medium\") {\n      padding: 2rem;\n    }\n  }\n  // The below content doesn't print because the size doesn't exist.\n  @if (ulu.breakpoint-exists(\"too-large\")) {\n    @include ulu.breakpoint-min(\"too-large\") {\n      padding: 20000rem;\n    }\n  }\n}",
            "description": "Example usage",
            "modifier": "compile"
          }
        ],
        "group": [
          "breakpoint"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "when"
          },
          {
            "type": "variable",
            "name": "sizes"
          }
        ],
        "file": {
          "path": "_breakpoint.scss",
          "name": "_breakpoint.scss"
        }
      },
      {
        "id": "mixin-min",
        "title": "min()",
        "groupName": "breakpoint",
        "path": "/sass/core/breakpoint/#mixin-min",
        "description": "Create a media query that matches the min-width for a given size\n",
        "commentRange": {
          "start": 137,
          "end": 146
        },
        "context": {
          "type": "mixin",
          "name": "min",
          "code": "\n  // Adding the small fraction to prevent overlap\n  $min: get-size-value($size); \n  @media screen and (min-width: $min) {\n    @content;\n  }\n",
          "line": {
            "start": 148,
            "end": 154
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.breakpoints-min(\"small\") {\n  // Your styles\n}"
          },
          {
            "type": "css",
            "code": "@media screen and (min-width: 42.5em) {\n   // Your Styles\n}"
          }
        ],
        "parameter": [
          {
            "type": "String",
            "name": "size",
            "description": "The name of the breakpoint size"
          }
        ],
        "group": [
          "breakpoint"
        ],
        "access": "public",
        "content": "",
        "require": [
          {
            "type": "function",
            "name": "get-size-value"
          }
        ],
        "file": {
          "path": "_breakpoint.scss",
          "name": "_breakpoint.scss"
        },
        "usedBy": [
          {
            "description": "Create a media query from a specific size in either direction \n- This is for mostly programmatic usage, so that a user could pass a breakpoint configuration that may contain values that go in either direction\n- This way you don't need to repeat conditions (ie if min ... else ...)\n",
            "context": {
              "type": "mixin",
              "name": "from",
              "code": "\n  @if ($direction == \"min\" or $direction == \"up\") {\n    @include min($name) {\n      @content;\n    }\n  } @else if ($direction == \"max\" or $direction == \"down\") {\n    @include max($name) {\n      @content;\n    }\n  } @else {\n    @error \"ULU: Mixin error (breakpoint.from), incorrect argument '$direction' use either (min, max, up, down)\";\n  }\n",
              "line": {
                "start": 208,
                "end": 220
              }
            }
          },
          {
            "description": "Attaches breakpoints to an element pseudo content for access via script\n- Note you can also use cssvar.declare-breakpoints to get a similar implementation with css custom-properties\n- Use with ulu/js/breakpoints (class has options for content property or css custom property)\n- Breakpoints always min-width (upwards) for javascript setup\n",
            "context": {
              "type": "mixin",
              "name": "embed-for-scripts",
              "code": "\n  &::before {\n    display: none;\n    content: get(\"null-name\");\n    @each $size, $breakpoint in $sizes {\n      @include min($size) {\n        content: $size;\n      }\n    }\n  }\n",
              "line": {
                "start": 256,
                "end": 266
              }
            }
          }
        ]
      },
      {
        "id": "mixin-max",
        "title": "max()",
        "groupName": "breakpoint",
        "path": "/sass/core/breakpoint/#mixin-max",
        "description": "Create a media query that matches the max-width for a given size\n",
        "commentRange": {
          "start": 156,
          "end": 165
        },
        "context": {
          "type": "mixin",
          "name": "max",
          "code": "\n  // Adding the small fraction to prevent overlap\n  $max: get-size-value($size, true); \n  @media screen and (max-width: $max) {\n    @content;\n  }\n",
          "line": {
            "start": 167,
            "end": 173
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include breakpoints.max(\"medium\") {\n  // Your styles\n}"
          },
          {
            "type": "css",
            "code": "@media screen and (max-width: 42.4em) {\n   // Your Styles\n}"
          }
        ],
        "parameter": [
          {
            "type": "Number",
            "name": "size",
            "description": "The name of the breakpoint size"
          }
        ],
        "group": [
          "breakpoint"
        ],
        "access": "public",
        "content": "",
        "require": [
          {
            "type": "function",
            "name": "get-size-value"
          }
        ],
        "file": {
          "path": "_breakpoint.scss",
          "name": "_breakpoint.scss"
        },
        "usedBy": [
          {
            "description": "Create a media query from a specific size in either direction \n- This is for mostly programmatic usage, so that a user could pass a breakpoint configuration that may contain values that go in either direction\n- This way you don't need to repeat conditions (ie if min ... else ...)\n",
            "context": {
              "type": "mixin",
              "name": "from",
              "code": "\n  @if ($direction == \"min\" or $direction == \"up\") {\n    @include min($name) {\n      @content;\n    }\n  } @else if ($direction == \"max\" or $direction == \"down\") {\n    @include max($name) {\n      @content;\n    }\n  } @else {\n    @error \"ULU: Mixin error (breakpoint.from), incorrect argument '$direction' use either (min, max, up, down)\";\n  }\n",
              "line": {
                "start": 208,
                "end": 220
              }
            }
          }
        ]
      },
      {
        "id": "mixin-min-max",
        "title": "min-max()",
        "groupName": "breakpoint",
        "path": "/sass/core/breakpoint/#mixin-min-max",
        "description": "Create a media query that matches between two breakpoint sizes\n",
        "commentRange": {
          "start": 175,
          "end": 185
        },
        "context": {
          "type": "mixin",
          "name": "min-max",
          "code": "\n  // Adding the small fraction to prevent overlap\n  $min: get-size($size-min); \n  $max: get-size($size-max); \n  @media screen and (min-width: $min) and (max-width: $max) {\n    @content;\n  }\n",
          "line": {
            "start": 187,
            "end": 194
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include breakpoints.min-max(\"small\", \"medium\") {\n  // Your styles\n}"
          },
          {
            "type": "css",
            "code": "@media screen and (min-width: 42.5) and (max-width: 75em) {\n   // Your Styles\n}"
          }
        ],
        "parameter": [
          {
            "type": "String",
            "name": "size-min",
            "description": "The name of the smallest breakpoint size"
          },
          {
            "type": "String",
            "name": "size-max",
            "description": "The name of the largest breakpoint size"
          }
        ],
        "group": [
          "breakpoint"
        ],
        "access": "public",
        "content": "",
        "require": [
          {
            "type": "function",
            "name": "get-size"
          },
          {
            "type": "function",
            "name": "get-size"
          }
        ],
        "file": {
          "path": "_breakpoint.scss",
          "name": "_breakpoint.scss"
        }
      },
      {
        "id": "mixin-from",
        "title": "from()",
        "groupName": "breakpoint",
        "path": "/sass/core/breakpoint/#mixin-from",
        "description": "Create a media query from a specific size in either direction \n- This is for mostly programmatic usage, so that a user could pass a breakpoint configuration that may contain values that go in either direction\n- This way you don't need to repeat conditions (ie if min ... else ...)\n",
        "commentRange": {
          "start": 196,
          "end": 206
        },
        "context": {
          "type": "mixin",
          "name": "from",
          "code": "\n  @if ($direction == \"min\" or $direction == \"up\") {\n    @include min($name) {\n      @content;\n    }\n  } @else if ($direction == \"max\" or $direction == \"down\") {\n    @include max($name) {\n      @content;\n    }\n  } @else {\n    @error \"ULU: Mixin error (breakpoint.from), incorrect argument '$direction' use either (min, max, up, down)\";\n  }\n",
          "line": {
            "start": 208,
            "end": 220
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "$size: map.get($user-breakpoint, \"size\");\n$dir: map.get($user-breakpoint, \"direction\");\n@include breakpoints.from($size, $dir) {\n  // Your styles\n}"
          }
        ],
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "description": "The name of the breakpoint size"
          },
          {
            "type": "String",
            "name": "direction",
            "description": "The direction the media query should target (min|up, max|down)"
          }
        ],
        "group": [
          "breakpoint"
        ],
        "access": "public",
        "content": "",
        "require": [
          {
            "type": "mixin",
            "name": "min"
          },
          {
            "type": "mixin",
            "name": "max"
          }
        ],
        "throw": [
          "ULU: Mixin error (breakpoint.from), incorrect argument "
        ],
        "file": {
          "path": "_breakpoint.scss",
          "name": "_breakpoint.scss"
        },
        "usedBy": [
          {
            "description": "Utility Method for iterating over a map of breakpoints and apply styles\n",
            "context": {
              "type": "mixin",
              "name": "from-each",
              "code": "\n  $directionRequired: map.get($options, \"directionRequired\");\n  @each $name, $props in $breakpoints {\n    $direction: map.get($props, \"direction\");\n    // If direction print with breakpoint\n    @if ($direction) {\n      @include from($name, $direction) {\n        @content($props);\n      }\n    // If user requires direction throw error if missing\n    } @else if ($directionRequired) {\n      @debug $breakpoints;\n      @error 'ULU: Missing required \"direction\" in breakpoints map (above).';\n    // Else direction wasn't required print without media query (useful for default style)\n    } @else {\n      @content($props);\n    }\n  }\n",
              "line": {
                "start": 231,
                "end": 249
              }
            }
          }
        ]
      },
      {
        "id": "mixin-from-each",
        "title": "from-each()",
        "groupName": "breakpoint",
        "path": "/sass/core/breakpoint/#mixin-from-each",
        "description": "Utility Method for iterating over a map of breakpoints and apply styles\n",
        "commentRange": {
          "start": 222,
          "end": 229
        },
        "context": {
          "type": "mixin",
          "name": "from-each",
          "code": "\n  $directionRequired: map.get($options, \"directionRequired\");\n  @each $name, $props in $breakpoints {\n    $direction: map.get($props, \"direction\");\n    // If direction print with breakpoint\n    @if ($direction) {\n      @include from($name, $direction) {\n        @content($props);\n      }\n    // If user requires direction throw error if missing\n    } @else if ($directionRequired) {\n      @debug $breakpoints;\n      @error 'ULU: Missing required \"direction\" in breakpoints map (above).';\n    // Else direction wasn't required print without media query (useful for default style)\n    } @else {\n      @content($props);\n    }\n  }\n",
          "line": {
            "start": 231,
            "end": 249
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include breakpoints.fromEach($breakpoints) using ($props) {\n  width: map.get($props, \"width\");\n}"
          }
        ],
        "parameter": [
          {
            "type": "String",
            "name": "breakpoints",
            "description": "A map with breakpoints direction will be pulled from each items \"direction\" property, if direction is missing no breakpoint will wrap the code (as convention we call the default non-breakpoint direction \"default\")"
          },
          {
            "type": "String",
            "name": "options",
            "description": "A map with options to change the behavior"
          },
          {
            "type": "Boolean",
            "name": "options.directionRequired",
            "description": "Require direction throw error if missing direction"
          }
        ],
        "group": [
          "breakpoint"
        ],
        "access": "public",
        "content": "",
        "require": [
          {
            "type": "mixin",
            "name": "from"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "throw": [
          "ULU: Missing required "
        ],
        "file": {
          "path": "_breakpoint.scss",
          "name": "_breakpoint.scss"
        }
      },
      {
        "id": "mixin-embed-for-scripts",
        "title": "embed-for-scripts()",
        "groupName": "breakpoint",
        "path": "/sass/core/breakpoint/#mixin-embed-for-scripts",
        "description": "Attaches breakpoints to an element pseudo content for access via script\n- Note you can also use cssvar.declare-breakpoints to get a similar implementation with css custom-properties\n- Use with ulu/js/breakpoints (class has options for content property or css custom property)\n- Breakpoints always min-width (upwards) for javascript setup\n",
        "commentRange": {
          "start": 251,
          "end": 254
        },
        "context": {
          "type": "mixin",
          "name": "embed-for-scripts",
          "code": "\n  &::before {\n    display: none;\n    content: get(\"null-name\");\n    @each $size, $breakpoint in $sizes {\n      @include min($size) {\n        content: $size;\n      }\n    }\n  }\n",
          "line": {
            "start": 256,
            "end": 266
          }
        },
        "group": [
          "breakpoint"
        ],
        "access": "public",
        "require": [
          {
            "type": "mixin",
            "name": "min"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "variable",
            "name": "sizes"
          }
        ],
        "file": {
          "path": "_breakpoint.scss",
          "name": "_breakpoint.scss"
        }
      }
    ],
    "cssvar": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "cssvar",
        "path": "/sass/core/cssvar/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 14,
          "end": 16
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"prefix\" : \"\"\n)",
          "scope": "default",
          "line": {
            "start": 18,
            "end": 20
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "String",
            "name": "prefix",
            "default": "\"\"",
            "description": "Default prefix, will be added to all custom properties when using mixin or functions, unless overridden, set to empty quotes to disable"
          }
        ],
        "group": [
          "cssvar"
        ],
        "access": "public",
        "file": {
          "path": "_cssvar.scss",
          "name": "_cssvar.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "cssvar",
        "path": "/sass/core/cssvar/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 22,
          "end": 25
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 27,
            "end": 29
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.cssvar-set(( \"prefix\" : \"ulu\" ));",
            "description": "Setting the prefix to 'ulu'"
          }
        ],
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "group": [
          "cssvar"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_cssvar.scss",
          "name": "_cssvar.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "cssvar",
        "path": "/sass/core/cssvar/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 31,
          "end": 35
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"css-vars [config]\");\n",
          "line": {
            "start": 37,
            "end": 39
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "$prefix: ulu.cssvar-get(\"prefix\");",
            "description": "Getting the config value for prefix"
          }
        ],
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "return": {
          "type": "*",
          "description": "Map property value"
        },
        "group": [
          "cssvar"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "require-map-get"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_cssvar.scss",
          "name": "_cssvar.scss"
        }
      },
      {
        "id": "function-name",
        "title": "name()",
        "groupName": "cssvar",
        "path": "/sass/core/cssvar/#function-name",
        "description": "Get a custom property name (with optional prefix)\n",
        "commentRange": {
          "start": 41,
          "end": 46
        },
        "context": {
          "type": "function",
          "name": "name",
          "code": "\n  @if (string.length($prefix) > 0) {\n    @return string.unquote(\"--#{ $prefix }-#{ $name }\");\n  } @else {\n    @return string.unquote(\"--#{ $name }\");\n  }\n",
          "line": {
            "start": 48,
            "end": 54
          }
        },
        "example": [
          {
            "type": "scss",
            "code": "#{ ulu.cssvar-name(\"base-color\") } { ... }",
            "description": "Getting a custom property name"
          }
        ],
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "description": "Name of custom property"
          },
          {
            "type": "String",
            "name": "prefix",
            "default": "$config.prefix",
            "description": "Override default prefix"
          }
        ],
        "return": {
          "type": "String",
          "description": "The formatted property name (unquoted string)"
        },
        "group": [
          "cssvar"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_cssvar.scss",
          "name": "_cssvar.scss"
        },
        "usedBy": [
          {
            "description": "Function to use a custom property within a declaration value \n",
            "context": {
              "type": "function",
              "name": "use",
              "code": "\n  @if ($default-value) {\n    @return var(name($name, $prefix), $default-value);\n  } @else {\n    @return var(name($name, $prefix));\n  }\n",
              "line": {
                "start": 66,
                "end": 72
              }
            }
          },
          {
            "description": "Function to use a custom property within a declaration value \n",
            "context": {
              "type": "function",
              "name": "use",
              "code": "\n  @if ($default-value) {\n    @return var(name($name, $prefix), $default-value);\n  } @else {\n    @return var(name($name, $prefix));\n  }\n",
              "line": {
                "start": 66,
                "end": 72
              }
            }
          },
          {
            "description": "Outputs a single custom property declaration\n",
            "context": {
              "type": "mixin",
              "name": "declare",
              "code": "\n  @if meta.type-of($value) == \"map\" {\n    $base-value: map.get($value, \"value\");\n    $breakpoints: map.get($value, \"breakpoints\");\n    \n    @if $base-value != null {\n      #{ name($name, $prefix) } : #{ $base-value };\n    }\n    \n    @if $breakpoints and meta.type-of($breakpoints) == \"map\" {\n      @include breakpoint.from-each($breakpoints) using ($b-props) {\n        $b-value: map.get($b-props, \"value\");\n        @if $b-value != null {\n          #{ name($name, $prefix) } : #{ $b-value };\n        }\n      }\n    }\n  } @else {\n    #{ name($name, $prefix) } : #{ $value };\n  }\n",
              "line": {
                "start": 83,
                "end": 103
              }
            }
          },
          {
            "description": "Outputs a single custom property declaration\n",
            "context": {
              "type": "mixin",
              "name": "declare",
              "code": "\n  @if meta.type-of($value) == \"map\" {\n    $base-value: map.get($value, \"value\");\n    $breakpoints: map.get($value, \"breakpoints\");\n    \n    @if $base-value != null {\n      #{ name($name, $prefix) } : #{ $base-value };\n    }\n    \n    @if $breakpoints and meta.type-of($breakpoints) == \"map\" {\n      @include breakpoint.from-each($breakpoints) using ($b-props) {\n        $b-value: map.get($b-props, \"value\");\n        @if $b-value != null {\n          #{ name($name, $prefix) } : #{ $b-value };\n        }\n      }\n    }\n  } @else {\n    #{ name($name, $prefix) } : #{ $value };\n  }\n",
              "line": {
                "start": 83,
                "end": 103
              }
            }
          },
          {
            "description": "Outputs a single custom property declaration\n",
            "context": {
              "type": "mixin",
              "name": "declare",
              "code": "\n  @if meta.type-of($value) == \"map\" {\n    $base-value: map.get($value, \"value\");\n    $breakpoints: map.get($value, \"breakpoints\");\n    \n    @if $base-value != null {\n      #{ name($name, $prefix) } : #{ $base-value };\n    }\n    \n    @if $breakpoints and meta.type-of($breakpoints) == \"map\" {\n      @include breakpoint.from-each($breakpoints) using ($b-props) {\n        $b-value: map.get($b-props, \"value\");\n        @if $b-value != null {\n          #{ name($name, $prefix) } : #{ $b-value };\n        }\n      }\n    }\n  } @else {\n    #{ name($name, $prefix) } : #{ $value };\n  }\n",
              "line": {
                "start": 83,
                "end": 103
              }
            }
          },
          {
            "description": "Convenience method that maps to \"name\" function, sets \"ulu\" as prefix. \n- Used mostly internally\n",
            "context": {
              "type": "function",
              "name": "name-ulu",
              "code": "\n  @return name($name, \"ulu\");\n",
              "line": {
                "start": 239,
                "end": 241
              }
            }
          }
        ]
      },
      {
        "id": "function-use",
        "title": "use()",
        "groupName": "cssvar",
        "path": "/sass/core/cssvar/#function-use",
        "description": "Function to use a custom property within a declaration value \n",
        "commentRange": {
          "start": 56,
          "end": 64
        },
        "context": {
          "type": "function",
          "name": "use",
          "code": "\n  @if ($default-value) {\n    @return var(name($name, $prefix), $default-value);\n  } @else {\n    @return var(name($name, $prefix));\n  }\n",
          "line": {
            "start": 66,
            "end": 72
          }
        },
        "example": [
          {
            "type": "scss",
            "code": ".test {\n  color: ulu.cssvar-use(\"base-color\");\n}",
            "description": "Print an custom property as a value"
          }
        ],
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "description": "Name of custom property"
          },
          {
            "type": "String",
            "name": "default-value",
            "default": "null",
            "description": "Provide a default value for var()"
          },
          {
            "type": "String",
            "name": "prefix",
            "default": "$config.prefix",
            "description": "Override default prefix"
          }
        ],
        "return": {
          "type": "String",
          "description": "Formatted custom property for use in property value (ie. var(...))"
        },
        "group": [
          "cssvar"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "name"
          },
          {
            "type": "function",
            "name": "name"
          }
        ],
        "file": {
          "path": "_cssvar.scss",
          "name": "_cssvar.scss"
        },
        "usedBy": [
          {
            "description": "Joins a list of cssvar names\n- Use to \"+\", \"-\" and then use in calc\n- Accepts standard names (applies prefix) or raw \"var(...)\" / \"calc(...)\" strings\n- Accepts raw values (numbers like 100vh) so they can be used in calculations\n",
            "context": {
              "type": "function",
              "name": "join",
              "code": "\n  $values: ();\n\n  @each $name in $names {\n    // Passthrough with out prefix/use if already contains a raw CSS function\n    $is-already-var: utils.is-string($name) and (string.index($name, \"var(\") or string.index($name, \"calc(\"));\n\n    // Passthrough as-is if already custom property or calc, or if it's a number\n    @if ($is-already-var or utils.is-number($name)) {\n      $values: list.append($values, $name);\n    // Else pass it through use so it has prefix/var\n    } @else {\n      $values: list.append($values, use($name));\n    }\n  }\n\n  @return utils.list-join($values, $separator);\n",
              "line": {
                "start": 201,
                "end": 218
              }
            }
          },
          {
            "description": "Convenience method that maps to \"use\" function, sets \"ulu\" as prefix. \n- Used mostly internally\n",
            "context": {
              "type": "function",
              "name": "use-ulu",
              "code": "\n  @return use($name, $default-value, \"ulu\");\n",
              "line": {
                "start": 246,
                "end": 248
              }
            }
          }
        ]
      },
      {
        "id": "mixin-declare",
        "title": "declare()",
        "groupName": "cssvar",
        "path": "/sass/core/cssvar/#mixin-declare",
        "description": "Outputs a single custom property declaration\n",
        "commentRange": {
          "start": 74,
          "end": 81
        },
        "context": {
          "type": "mixin",
          "name": "declare",
          "code": "\n  @if meta.type-of($value) == \"map\" {\n    $base-value: map.get($value, \"value\");\n    $breakpoints: map.get($value, \"breakpoints\");\n    \n    @if $base-value != null {\n      #{ name($name, $prefix) } : #{ $base-value };\n    }\n    \n    @if $breakpoints and meta.type-of($breakpoints) == \"map\" {\n      @include breakpoint.from-each($breakpoints) using ($b-props) {\n        $b-value: map.get($b-props, \"value\");\n        @if $b-value != null {\n          #{ name($name, $prefix) } : #{ $b-value };\n        }\n      }\n    }\n  } @else {\n    #{ name($name, $prefix) } : #{ $value };\n  }\n",
          "line": {
            "start": 83,
            "end": 103
          }
        },
        "example": [
          {
            "type": "scss",
            "code": ":root {\n  @include ulu.cssvar-declare(\"base-color\", red);\n}",
            "description": "Declare a custom property"
          }
        ],
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "description": "Name of property"
          },
          {
            "type": "*",
            "name": "value",
            "description": "The properties value to declare. Can be a literal or a configuration map with `value` and `breakpoints` keys."
          },
          {
            "type": "String",
            "name": "prefix",
            "default": "$config.prefix",
            "description": "Override default prefix"
          }
        ],
        "group": [
          "cssvar"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "name"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "name"
          },
          {
            "type": "function",
            "name": "name"
          }
        ],
        "file": {
          "path": "_cssvar.scss",
          "name": "_cssvar.scss"
        },
        "usedBy": [
          {
            "description": "Outputs a map as custom properties. Supports mapping values to breakpoints.\n",
            "context": {
              "type": "mixin",
              "name": "declare-all",
              "code": "\n  @each $name, $value in $props {\n    @if $value != null {\n      @include declare($name, $value, $prefix);\n    }\n  }\n",
              "line": {
                "start": 124,
                "end": 130
              }
            }
          },
          {
            "description": "Declare a custom property for current breakpoint\n",
            "context": {
              "type": "mixin",
              "name": "declare-breakpoint",
              "code": "\n  @include declare($name, $initial, $prefix);\n  @each $size, $value in $breakpoints {\n    @include breakpoint.min($size) {\n      @include declare($name, $size, $prefix);\n    }\n  }\n",
              "line": {
                "start": 142,
                "end": 154
              }
            }
          },
          {
            "description": "Declare a custom property for current breakpoint\n",
            "context": {
              "type": "mixin",
              "name": "declare-breakpoint",
              "code": "\n  @include declare($name, $initial, $prefix);\n  @each $size, $value in $breakpoints {\n    @include breakpoint.min($size) {\n      @include declare($name, $size, $prefix);\n    }\n  }\n",
              "line": {
                "start": 142,
                "end": 154
              }
            }
          },
          {
            "description": "Declare a custom property for each breakpoint size\n",
            "context": {
              "type": "mixin",
              "name": "declare-breakpoint-sizes",
              "code": "\n  @each $size, $value in $breakpoints {\n    $min: breakpoint.get-size-value($size);\n    $max: breakpoint.get-size-value($size, true);\n    @include declare(\"#{ $name }-#{ $size }-min\", $min, $prefix);\n    @include declare(\"#{ $name }-#{ $size }-max\", $max, $prefix);\n  }\n",
              "line": {
                "start": 165,
                "end": 176
              }
            }
          },
          {
            "description": "Declare a custom property for each breakpoint size\n",
            "context": {
              "type": "mixin",
              "name": "declare-breakpoint-sizes",
              "code": "\n  @each $size, $value in $breakpoints {\n    $min: breakpoint.get-size-value($size);\n    $max: breakpoint.get-size-value($size, true);\n    @include declare(\"#{ $name }-#{ $size }-min\", $min, $prefix);\n    @include declare(\"#{ $name }-#{ $size }-max\", $max, $prefix);\n  }\n",
              "line": {
                "start": 165,
                "end": 176
              }
            }
          },
          {
            "description": "Outputs css vars for a specific type from a theme map\n",
            "context": {
              "type": "mixin",
              "name": "declare-theme-values",
              "code": "\n  @warn \"ulu.cssvar-declare-theme-values() is deprecated. Please use ulu.themes-declare() instead.\";\n  @each $name, $definition in $theme {\n    $value: map.get($definition, $key);\n    @if ($value) {\n      @include declare($name, $value, $prefix);\n    }\n  }\n",
              "line": {
                "start": 183,
                "end": 191
              }
            }
          },
          {
            "description": "Convenience method that maps to \"declare\" mixin, sets \"ulu\" as prefix. \n- Used mostly internally\n",
            "context": {
              "type": "mixin",
              "name": "declare-ulu",
              "code": "\n  @include declare($name, $value, \"ulu\");\n",
              "line": {
                "start": 253,
                "end": 255
              }
            }
          }
        ]
      },
      {
        "id": "mixin-declare-all",
        "title": "declare-all()",
        "groupName": "cssvar",
        "path": "/sass/core/cssvar/#mixin-declare-all",
        "description": "Outputs a map as custom properties. Supports mapping values to breakpoints.\n",
        "commentRange": {
          "start": 105,
          "end": 122
        },
        "context": {
          "type": "mixin",
          "name": "declare-all",
          "code": "\n  @each $name, $value in $props {\n    @if $value != null {\n      @include declare($name, $value, $prefix);\n    }\n  }\n",
          "line": {
            "start": 124,
            "end": 130
          }
        },
        "example": [
          {
            "type": "scss",
            "code": ":root {\n  @include ulu.cssvar-declare-all((\n    \"base-color\" : red,\n    \"responsive-color\" : (\n      \"value\" : blue,\n      \"breakpoints\" : (\n        \"medium\" : (\n          \"direction\" : \"up\",\n          \"value\" : green\n        )\n      )\n    )\n  ));\n}",
            "description": "Declare each property in a map as a custom property"
          }
        ],
        "parameter": [
          {
            "type": "Map",
            "name": "props",
            "description": "Properties to declare. Values can be literal or a configuration map with `value` and `breakpoints` keys."
          },
          {
            "type": "String",
            "name": "prefix",
            "default": "$config.prefix",
            "description": "Override default prefix"
          }
        ],
        "group": [
          "cssvar"
        ],
        "access": "public",
        "require": [
          {
            "type": "mixin",
            "name": "declare"
          }
        ],
        "file": {
          "path": "_cssvar.scss",
          "name": "_cssvar.scss"
        }
      },
      {
        "id": "mixin-declare-breakpoint",
        "title": "declare-breakpoint()",
        "groupName": "cssvar",
        "path": "/sass/core/cssvar/#mixin-declare-breakpoint",
        "description": "Declare a custom property for current breakpoint\n",
        "commentRange": {
          "start": 132,
          "end": 140
        },
        "context": {
          "type": "mixin",
          "name": "declare-breakpoint",
          "code": "\n  @include declare($name, $initial, $prefix);\n  @each $size, $value in $breakpoints {\n    @include breakpoint.min($size) {\n      @include declare($name, $size, $prefix);\n    }\n  }\n",
          "line": {
            "start": 142,
            "end": 154
          }
        },
        "example": [
          {
            "type": "scss",
            "code": ":root {\n  @include ulu.cssvar-declare-breakpoint();\n}",
            "description": "Declare each property in a map as a custom property"
          }
        ],
        "parameter": [
          {
            "type": "Map",
            "name": "breakpoints",
            "default": "breakpoint.get-sizes()",
            "description": "Breakpoints to declare"
          },
          {
            "type": "String",
            "name": "name",
            "default": "\"breakpoint\"",
            "description": "Name to use for custom property"
          },
          {
            "type": "Map",
            "name": "initial",
            "default": "breakpoint.get(\"null-name\")",
            "description": "The value for the custom property when not within breakpoint"
          },
          {
            "type": "String",
            "name": "prefix",
            "default": "$config.prefix",
            "description": "Override default prefix"
          }
        ],
        "group": [
          "cssvar"
        ],
        "access": "public",
        "require": [
          {
            "type": "mixin",
            "name": "declare"
          },
          {
            "type": "mixin",
            "name": "declare"
          }
        ],
        "file": {
          "path": "_cssvar.scss",
          "name": "_cssvar.scss"
        }
      },
      {
        "id": "mixin-declare-breakpoint-sizes",
        "title": "declare-breakpoint-sizes()",
        "groupName": "cssvar",
        "path": "/sass/core/cssvar/#mixin-declare-breakpoint-sizes",
        "description": "Declare a custom property for each breakpoint size\n",
        "commentRange": {
          "start": 156,
          "end": 163
        },
        "context": {
          "type": "mixin",
          "name": "declare-breakpoint-sizes",
          "code": "\n  @each $size, $value in $breakpoints {\n    $min: breakpoint.get-size-value($size);\n    $max: breakpoint.get-size-value($size, true);\n    @include declare(\"#{ $name }-#{ $size }-min\", $min, $prefix);\n    @include declare(\"#{ $name }-#{ $size }-max\", $max, $prefix);\n  }\n",
          "line": {
            "start": 165,
            "end": 176
          }
        },
        "example": [
          {
            "type": "scss",
            "code": ":root {\n  @include ulu.cssvar-declare-breakpoint-sizes();\n}",
            "description": "Declare each property in a map as a custom property"
          }
        ],
        "parameter": [
          {
            "type": "Map",
            "name": "breakpoints",
            "default": "breakpoint.get-sizes()",
            "description": "Breakpoints to declare"
          },
          {
            "type": "String",
            "name": "name",
            "default": "\"breakpoint-size-\"",
            "description": "Name to use for custom property (prefixes size name)"
          },
          {
            "type": "String",
            "name": "prefix",
            "default": "$config.prefix",
            "description": "Override default prefix"
          }
        ],
        "group": [
          "cssvar"
        ],
        "access": "public",
        "require": [
          {
            "type": "mixin",
            "name": "declare"
          },
          {
            "type": "mixin",
            "name": "declare"
          },
          {
            "type": "function",
            "name": "get-size-value"
          },
          {
            "type": "function",
            "name": "get-size-value"
          }
        ],
        "file": {
          "path": "_cssvar.scss",
          "name": "_cssvar.scss"
        }
      },
      {
        "id": "mixin-declare-theme-values",
        "title": "declare-theme-values()",
        "groupName": "cssvar",
        "path": "/sass/core/cssvar/#mixin-declare-theme-values",
        "description": "Outputs css vars for a specific type from a theme map\n",
        "commentRange": {
          "start": 178,
          "end": 182
        },
        "context": {
          "type": "mixin",
          "name": "declare-theme-values",
          "code": "\n  @warn \"ulu.cssvar-declare-theme-values() is deprecated. Please use ulu.themes-declare() instead.\";\n  @each $name, $definition in $theme {\n    $value: map.get($definition, $key);\n    @if ($value) {\n      @include declare($name, $value, $prefix);\n    }\n  }\n",
          "line": {
            "start": 183,
            "end": 191
          }
        },
        "deprecated": "Moved to themes core module (`themes.declare-values()`). This will be removed in a future version.",
        "parameter": [
          {
            "type": "Map",
            "name": "theme",
            "description": "The map containing the values. Example ("
          },
          {
            "type": "String",
            "name": "key",
            "description": "The key used to retrieve values from the map."
          },
          {
            "type": "String",
            "name": "prefix",
            "description": "The optional prefix for CSS variables."
          }
        ],
        "group": [
          "cssvar"
        ],
        "access": "public",
        "require": [
          {
            "type": "mixin",
            "name": "declare"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_cssvar.scss",
          "name": "_cssvar.scss"
        }
      },
      {
        "id": "function-join",
        "title": "join()",
        "groupName": "cssvar",
        "path": "/sass/core/cssvar/#function-join",
        "description": "Joins a list of cssvar names\n- Use to \"+\", \"-\" and then use in calc\n- Accepts standard names (applies prefix) or raw \"var(...)\" / \"calc(...)\" strings\n- Accepts raw values (numbers like 100vh) so they can be used in calculations\n",
        "commentRange": {
          "start": 193,
          "end": 199
        },
        "context": {
          "type": "function",
          "name": "join",
          "code": "\n  $values: ();\n\n  @each $name in $names {\n    // Passthrough with out prefix/use if already contains a raw CSS function\n    $is-already-var: utils.is-string($name) and (string.index($name, \"var(\") or string.index($name, \"calc(\"));\n\n    // Passthrough as-is if already custom property or calc, or if it's a number\n    @if ($is-already-var or utils.is-number($name)) {\n      $values: list.append($values, $name);\n    // Else pass it through use so it has prefix/var\n    } @else {\n      $values: list.append($values, use($name));\n    }\n  }\n\n  @return utils.list-join($values, $separator);\n",
          "line": {
            "start": 201,
            "end": 218
          }
        },
        "parameter": [
          {
            "type": "List",
            "name": "names",
            "description": "list of names (string) or raw custom properties or calc (chaining support or custom math)"
          },
          {
            "type": "String",
            "name": "separator",
            "description": "Separator to use when joining (+, -)"
          }
        ],
        "return": {
          "type": "String",
          "description": "For example if separator was \"+\" would result in \"var(--some-prop) + var(--another-prop)\""
        },
        "group": [
          "cssvar"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "is-string"
          },
          {
            "type": "function",
            "name": "is-number"
          },
          {
            "type": "function",
            "name": "use"
          },
          {
            "type": "function",
            "name": "list-join"
          }
        ],
        "file": {
          "path": "_cssvar.scss",
          "name": "_cssvar.scss"
        },
        "usedBy": [
          {
            "description": "For any names passed will join them with \"+\" and wrap in calc\n",
            "context": {
              "type": "function",
              "name": "add",
              "code": "\n  @return calc(join($names, \"+\"));\n",
              "line": {
                "start": 224,
                "end": 226
              }
            }
          },
          {
            "description": "For any names passed will join them with \"-\" and wrap in calc\n",
            "context": {
              "type": "function",
              "name": "subtract",
              "code": "\n  @return calc(join($names, \"-\"));\n",
              "line": {
                "start": 232,
                "end": 234
              }
            }
          }
        ]
      },
      {
        "id": "function-add",
        "title": "add()",
        "groupName": "cssvar",
        "path": "/sass/core/cssvar/#function-add",
        "description": "For any names passed will join them with \"+\" and wrap in calc\n",
        "commentRange": {
          "start": 220,
          "end": 222
        },
        "context": {
          "type": "function",
          "name": "add",
          "code": "\n  @return calc(join($names, \"+\"));\n",
          "line": {
            "start": 224,
            "end": 226
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "description": "Name string (pass multiple comma separated)"
          }
        ],
        "return": {
          "type": "String",
          "description": "A string like \"calc(var(--some-prop) + var(--another-prop))\""
        },
        "group": [
          "cssvar"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "join"
          }
        ],
        "file": {
          "path": "_cssvar.scss",
          "name": "_cssvar.scss"
        }
      },
      {
        "id": "function-subtract",
        "title": "subtract()",
        "groupName": "cssvar",
        "path": "/sass/core/cssvar/#function-subtract",
        "description": "For any names passed will join them with \"-\" and wrap in calc\n",
        "commentRange": {
          "start": 228,
          "end": 230
        },
        "context": {
          "type": "function",
          "name": "subtract",
          "code": "\n  @return calc(join($names, \"-\"));\n",
          "line": {
            "start": 232,
            "end": 234
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "description": "Name string (pass multiple comma separated)"
          }
        ],
        "return": {
          "type": "String",
          "description": "A string like \"calc(var(--some-prop) - var(--another-prop))\""
        },
        "group": [
          "cssvar"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "join"
          }
        ],
        "file": {
          "path": "_cssvar.scss",
          "name": "_cssvar.scss"
        }
      },
      {
        "id": "function-name-ulu",
        "title": "name-ulu()",
        "groupName": "cssvar",
        "path": "/sass/core/cssvar/#function-name-ulu",
        "description": "Convenience method that maps to \"name\" function, sets \"ulu\" as prefix. \n- Used mostly internally\n",
        "commentRange": {
          "start": 236,
          "end": 237
        },
        "context": {
          "type": "function",
          "name": "name-ulu",
          "code": "\n  @return name($name, \"ulu\");\n",
          "line": {
            "start": 239,
            "end": 241
          }
        },
        "group": [
          "cssvar"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "name"
          }
        ],
        "file": {
          "path": "_cssvar.scss",
          "name": "_cssvar.scss"
        }
      },
      {
        "id": "function-use-ulu",
        "title": "use-ulu()",
        "groupName": "cssvar",
        "path": "/sass/core/cssvar/#function-use-ulu",
        "description": "Convenience method that maps to \"use\" function, sets \"ulu\" as prefix. \n- Used mostly internally\n",
        "commentRange": {
          "start": 243,
          "end": 244
        },
        "context": {
          "type": "function",
          "name": "use-ulu",
          "code": "\n  @return use($name, $default-value, \"ulu\");\n",
          "line": {
            "start": 246,
            "end": 248
          }
        },
        "group": [
          "cssvar"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "use"
          }
        ],
        "file": {
          "path": "_cssvar.scss",
          "name": "_cssvar.scss"
        }
      },
      {
        "id": "mixin-declare-ulu",
        "title": "declare-ulu()",
        "groupName": "cssvar",
        "path": "/sass/core/cssvar/#mixin-declare-ulu",
        "description": "Convenience method that maps to \"declare\" mixin, sets \"ulu\" as prefix. \n- Used mostly internally\n",
        "commentRange": {
          "start": 250,
          "end": 251
        },
        "context": {
          "type": "mixin",
          "name": "declare-ulu",
          "code": "\n  @include declare($name, $value, \"ulu\");\n",
          "line": {
            "start": 253,
            "end": 255
          }
        },
        "group": [
          "cssvar"
        ],
        "access": "public",
        "require": [
          {
            "type": "mixin",
            "name": "declare"
          }
        ],
        "file": {
          "path": "_cssvar.scss",
          "name": "_cssvar.scss"
        }
      }
    ],
    "element": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "element",
        "path": "/sass/core/element/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 11,
          "end": 41
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"backdrop-blur\":                    4px,\n  \"backdrop-color\":                   rgba(73, 73, 73, 0.459),\n  \"list-item-indent\" :                1.5em,\n  \"text-shadow\":                      0 1px 4px rgba(0,0,0,0.3),\n  \"border-radius\":                    6px,\n  \"border-radius-small\":              3px,\n  \"border-radius-large\":              12px,\n  \"box-shadow\":                       0 1px 5px color.get('box-shadow'),\n  \"box-shadow-above\":                 0 1px 20px color.get('box-shadow'),\n  \"box-shadow-hover\":                 0 1px 5px color.get('box-shadow-hover'),\n  \"box-shadow-inset\":                 0 1px 5px color.get('box-shadow'),\n  \"box-shadow-raised\":                0 1px 12px color.get('box-shadow'),\n  \"link-text-decoration\":             underline,\n  \"link-text-decoration-color\":       initial,\n  \"link-text-decoration-color-hover\": false,\n  \"link-text-decoration-default\":     none,\n  \"link-text-underline-offset\" :     auto,\n  \"link-text-decoration-style\":       dotted,\n  \"link-text-decoration-style-hover\": solid,\n  \"link-text-decoration-thickness\":   0.1em,\n  \"margin\":                           1em,\n  \"margin-small\":                     0.65em,\n  \"margin-large\":                     2em,\n  \"ol-list-style-type\":               decimal,\n  \"ol-list-style-type-2\":             lower-alpha,\n  \"ol-list-style-type-3\":             lower-roman,\n  \"ul-list-style-type\":               disc,\n  \"ul-list-style-type-2\":             circle,\n  \"ul-list-style-type-3\":             square,\n  \"cap-color\" :                       \"accent\",\n  \"cap-size\" :                        5px,\n  \"icon-centered-vertical-offset\" :   0.02em,\n)",
          "scope": "default",
          "line": {
            "start": 43,
            "end": 76
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Number",
            "name": "backdrop-blur",
            "description": "Backdrop blur amount used on elements/components"
          },
          {
            "type": "Color",
            "name": "backdrop-color",
            "description": "Backdrop color (modal overlays, etc)"
          },
          {
            "type": "Dimension",
            "name": "list-item-indent",
            "default": "1.5em"
          },
          {
            "type": "List",
            "name": "text-shadow",
            "description": "Common text shadow"
          },
          {
            "type": "Number",
            "name": "border-radius",
            "description": "Common element border radius"
          },
          {
            "type": "Number",
            "name": "border-radius-large",
            "description": "Common element border radius (large)"
          },
          {
            "type": "Number",
            "name": "border-radius-small",
            "description": "Common element border radius (small)"
          },
          {
            "type": "List",
            "name": "box-shadow",
            "description": "Box-shadow definition for elements that are on top of page"
          },
          {
            "type": "List",
            "name": "box-shadow-above",
            "description": "Box-shadow definition for elements that are above the page (fixed items, etc)"
          },
          {
            "type": "CssValue",
            "name": "box-shadow-hover",
            "default": "0 1px 5px color.get('box-shadow-hover')"
          },
          {
            "type": "CssValue",
            "name": "box-shadow-inset",
            "default": "0 1px 5px color.get('box-shadow')"
          },
          {
            "type": "List",
            "name": "box-shadow-raised",
            "description": "Box-shadow definition for elements that are raised off of the page (dropdowns, etc)"
          },
          {
            "type": "String",
            "name": "link-text-decoration"
          },
          {
            "type": "Color",
            "name": "link-text-decoration-color"
          },
          {
            "type": "String",
            "name": "link-text-decoration-default",
            "description": "Whether links use underline, remember that removing underline will create an accessibility issue (not relying on color)"
          },
          {
            "type": "Color",
            "name": "link-text-decoration-color-hover"
          },
          {
            "type": "Number",
            "name": "link-text-underline-offset"
          },
          {
            "type": "String",
            "name": "link-text-decoration-style"
          },
          {
            "type": "String",
            "name": "link-text-decoration-style-hover"
          },
          {
            "type": "Number",
            "name": "link-text-decoration-thickness"
          },
          {
            "type": "Number",
            "name": "margin",
            "description": "Common element margin"
          },
          {
            "type": "Number",
            "name": "margin-large",
            "description": "Common element margin (large)"
          },
          {
            "type": "Number",
            "name": "margin-small",
            "description": "Common element margin (small) (default for lists)"
          },
          {
            "type": "String",
            "name": "ol-list-style-type",
            "description": "Ordered list type (level 1)"
          },
          {
            "type": "String",
            "name": "ol-list-style-type-2",
            "description": "Ordered list type (level 2)"
          },
          {
            "type": "String",
            "name": "ol-list-style-type-3",
            "description": "Ordered list type (level 3)"
          },
          {
            "type": "String",
            "name": "ul-list-style-type"
          },
          {
            "type": "String",
            "name": "ul-list-style-type-2"
          },
          {
            "type": "String",
            "name": "ul-list-style-type-3"
          }
        ],
        "group": [
          "element"
        ],
        "access": "public",
        "file": {
          "path": "_element.scss",
          "name": "_element.scss"
        }
      },
      {
        "id": "variable-rule-styles",
        "title": "$rule-styles",
        "groupName": "element",
        "path": "/sass/core/element/#variable-rule-styles",
        "description": "Rule style map, redefine defaults or add to\n",
        "commentRange": {
          "start": 78,
          "end": 79
        },
        "context": {
          "type": "variable",
          "name": "rule-styles",
          "value": "(\n  \"default\": 1px solid color.get(\"rule\"),\n  \"large\": 2px solid color.get(\"rule\"),\n  \"light\":   1px solid color.get(\"rule-light\"),\n)",
          "scope": "default",
          "line": {
            "start": 81,
            "end": 85
          }
        },
        "type": "Map",
        "group": [
          "element"
        ],
        "access": "public",
        "file": {
          "path": "_element.scss",
          "name": "_element.scss"
        },
        "usedBy": [
          {
            "description": "Sets rule styles\n",
            "context": {
              "type": "mixin",
              "name": "set-rule-styles",
              "code": "\n  $rule-styles: map.merge($rule-styles, $changes) !global;\n",
              "line": {
                "start": 116,
                "end": 118
              }
            }
          },
          {
            "description": "Sets rule styles\n",
            "context": {
              "type": "mixin",
              "name": "set-rule-styles",
              "code": "\n  $rule-styles: map.merge($rule-styles, $changes) !global;\n",
              "line": {
                "start": 116,
                "end": 118
              }
            }
          },
          {
            "description": "Get a rule style\n",
            "context": {
              "type": "function",
              "name": "get-rule-style",
              "code": "\n  @return utils.require-map-get($rule-styles, $name, \"element [rule style]\");\n",
              "line": {
                "start": 132,
                "end": 134
              }
            }
          }
        ]
      },
      {
        "id": "variable-rule-margins",
        "title": "$rule-margins",
        "groupName": "element",
        "path": "/sass/core/element/#variable-rule-margins",
        "description": "Common rule margins (space between rule and type)\n",
        "commentRange": {
          "start": 87,
          "end": 88
        },
        "context": {
          "type": "variable",
          "name": "rule-margins",
          "value": "(\n  \"smallest\": 0.5rem,\n  \"small\":    1rem,\n  \"medium\":   2rem,\n  \"large\":    3rem\n)",
          "scope": "default",
          "line": {
            "start": 90,
            "end": 95
          }
        },
        "type": "Map",
        "group": [
          "element"
        ],
        "access": "public",
        "file": {
          "path": "_element.scss",
          "name": "_element.scss"
        },
        "usedBy": [
          {
            "description": "Sets rule margins\n",
            "context": {
              "type": "mixin",
              "name": "set-rule-margins",
              "code": "\n  $rule-margins: utils.map-merge($rule-margins, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 124,
                "end": 126
              }
            }
          },
          {
            "description": "Sets rule margins\n",
            "context": {
              "type": "mixin",
              "name": "set-rule-margins",
              "code": "\n  $rule-margins: utils.map-merge($rule-margins, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 124,
                "end": 126
              }
            }
          },
          {
            "description": "Sets rule margin\n",
            "context": {
              "type": "function",
              "name": "get-rule-margin",
              "code": "\n  @return utils.require-map-get($rule-margins, $name, \"element [rule style]\");\n",
              "line": {
                "start": 154,
                "end": 156
              }
            }
          }
        ]
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "element",
        "path": "/sass/core/element/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 97,
          "end": 99
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 101,
            "end": 103
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes\n  @include ulu.element-set(( \"property\" : value ));"
          }
        ],
        "group": [
          "element"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_element.scss",
          "name": "_element.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "element",
        "path": "/sass/core/element/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 105,
          "end": 107
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"element [config]\");\n",
          "line": {
            "start": 109,
            "end": 111
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property\n  @include ulu.element-get(\"property\");"
          }
        ],
        "group": [
          "element"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "require-map-get"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_element.scss",
          "name": "_element.scss"
        }
      },
      {
        "id": "mixin-set-rule-styles",
        "title": "set-rule-styles()",
        "groupName": "element",
        "path": "/sass/core/element/#mixin-set-rule-styles",
        "description": "Sets rule styles\n",
        "commentRange": {
          "start": 113,
          "end": 114
        },
        "context": {
          "type": "mixin",
          "name": "set-rule-styles",
          "code": "\n  $rule-styles: map.merge($rule-styles, $changes) !global;\n",
          "line": {
            "start": 116,
            "end": 118
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "group": [
          "element"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "rule-styles"
          },
          {
            "type": "variable",
            "name": "rule-styles"
          }
        ],
        "file": {
          "path": "_element.scss",
          "name": "_element.scss"
        }
      },
      {
        "id": "mixin-set-rule-margins",
        "title": "set-rule-margins()",
        "groupName": "element",
        "path": "/sass/core/element/#mixin-set-rule-margins",
        "description": "Sets rule margins\n",
        "commentRange": {
          "start": 120,
          "end": 122
        },
        "context": {
          "type": "mixin",
          "name": "set-rule-margins",
          "code": "\n  $rule-margins: utils.map-merge($rule-margins, $changes, $merge-mode) !global;\n",
          "line": {
            "start": 124,
            "end": 126
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          },
          {
            "type": "String",
            "name": "merge-mode",
            "description": "Merge mode see utils.map-merge() [null|\"deep\"|\"overwrite\"]"
          }
        ],
        "group": [
          "element"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "map-merge"
          },
          {
            "type": "variable",
            "name": "rule-margins"
          },
          {
            "type": "variable",
            "name": "rule-margins"
          }
        ],
        "file": {
          "path": "_element.scss",
          "name": "_element.scss"
        }
      },
      {
        "id": "function-get-rule-style",
        "title": "get-rule-style()",
        "groupName": "element",
        "path": "/sass/core/element/#function-get-rule-style",
        "description": "Get a rule style\n",
        "commentRange": {
          "start": 128,
          "end": 130
        },
        "context": {
          "type": "function",
          "name": "get-rule-style",
          "code": "\n  @return utils.require-map-get($rule-styles, $name, \"element [rule style]\");\n",
          "line": {
            "start": 132,
            "end": 134
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "return": {
          "type": "CssValue",
          "description": "Rule style (css border value)"
        },
        "group": [
          "element"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "require-map-get"
          },
          {
            "type": "variable",
            "name": "rule-styles"
          }
        ],
        "file": {
          "path": "_element.scss",
          "name": "_element.scss"
        },
        "usedBy": [
          {
            "description": "Get an optional rule style (which is a border)\n- If the value is a string we return the rule style, else we return the value\n- Used for things where configuration for say a border can be a user defined border or a string (they want an existing rule-style)\n- Except when passing \"none\"/none this will return as-is (since it's a border property)\n",
            "context": {
              "type": "function",
              "name": "get-optional-rule-style",
              "code": "\n  @if (meta.type-of($value) == \"string\") {\n    @return get-rule-style($value);\n  } @else {\n    @return $value;\n  }\n",
              "line": {
                "start": 143,
                "end": 149
              }
            }
          },
          {
            "description": "Output CSS for a rule's style (not margins\n",
            "context": {
              "type": "mixin",
              "name": "rule-style",
              "code": "\n  border-bottom: get-rule-style($name);\n",
              "line": {
                "start": 172,
                "end": 174
              }
            }
          }
        ]
      },
      {
        "id": "function-get-optional-rule-style",
        "title": "get-optional-rule-style()",
        "groupName": "element",
        "path": "/sass/core/element/#function-get-optional-rule-style",
        "description": "Get an optional rule style (which is a border)\n- If the value is a string we return the rule style, else we return the value\n- Used for things where configuration for say a border can be a user defined border or a string (they want an existing rule-style)\n- Except when passing \"none\"/none this will return as-is (since it's a border property)\n",
        "commentRange": {
          "start": 136,
          "end": 141
        },
        "context": {
          "type": "function",
          "name": "get-optional-rule-style",
          "code": "\n  @if (meta.type-of($value) == \"string\") {\n    @return get-rule-style($value);\n  } @else {\n    @return $value;\n  }\n",
          "line": {
            "start": 143,
            "end": 149
          }
        },
        "parameter": [
          {
            "type": "*",
            "name": "value",
            "description": "The value to check"
          }
        ],
        "return": {
          "type": "*",
          "description": "Rule style if string, else value"
        },
        "group": [
          "element"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get-rule-style"
          }
        ],
        "file": {
          "path": "_element.scss",
          "name": "_element.scss"
        }
      },
      {
        "id": "function-get-rule-margin",
        "title": "get-rule-margin()",
        "groupName": "element",
        "path": "/sass/core/element/#function-get-rule-margin",
        "description": "Sets rule margin\n",
        "commentRange": {
          "start": 151,
          "end": 152
        },
        "context": {
          "type": "function",
          "name": "get-rule-margin",
          "code": "\n  @return utils.require-map-get($rule-margins, $name, \"element [rule style]\");\n",
          "line": {
            "start": 154,
            "end": 156
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "group": [
          "element"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "require-map-get"
          },
          {
            "type": "variable",
            "name": "rule-margins"
          }
        ],
        "file": {
          "path": "_element.scss",
          "name": "_element.scss"
        },
        "usedBy": [
          {
            "description": "Output CSS for a rule's margin\n",
            "context": {
              "type": "mixin",
              "name": "rule-margin",
              "code": "\n  $margin: null;\n  @if ($name) {\n    $margin: get-rule-margin($name);\n  } @else {\n    $margin: get(\"margin\");\n  }\n  margin-top: $margin;\n  margin-bottom: $margin;\n",
              "line": {
                "start": 179,
                "end": 188
              }
            }
          }
        ]
      },
      {
        "id": "mixin-rule",
        "title": "rule()",
        "groupName": "element",
        "path": "/sass/core/element/#mixin-rule",
        "description": "Get full rule CSS (style and margin)\n",
        "commentRange": {
          "start": 158,
          "end": 159
        },
        "context": {
          "type": "mixin",
          "name": "rule",
          "code": "\n  @include rule-style($style-name);\n  @include rule-margin($margin-name);\n",
          "line": {
            "start": 161,
            "end": 167
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "group": [
          "element"
        ],
        "access": "public",
        "require": [
          {
            "type": "mixin",
            "name": "rule-style"
          },
          {
            "type": "mixin",
            "name": "rule-margin"
          }
        ],
        "file": {
          "path": "_element.scss",
          "name": "_element.scss"
        }
      },
      {
        "id": "mixin-rule-style",
        "title": "rule-style()",
        "groupName": "element",
        "path": "/sass/core/element/#mixin-rule-style",
        "description": "Output CSS for a rule's style (not margins\n",
        "commentRange": {
          "start": 169,
          "end": 170
        },
        "context": {
          "type": "mixin",
          "name": "rule-style",
          "code": "\n  border-bottom: get-rule-style($name);\n",
          "line": {
            "start": 172,
            "end": 174
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "default": "\"default\"",
            "description": "name of rule style"
          }
        ],
        "group": [
          "element"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get-rule-style"
          }
        ],
        "file": {
          "path": "_element.scss",
          "name": "_element.scss"
        },
        "usedBy": [
          {
            "description": "Get full rule CSS (style and margin)\n",
            "context": {
              "type": "mixin",
              "name": "rule",
              "code": "\n  @include rule-style($style-name);\n  @include rule-margin($margin-name);\n",
              "line": {
                "start": 161,
                "end": 167
              }
            }
          }
        ]
      },
      {
        "id": "mixin-rule-margin",
        "title": "rule-margin()",
        "groupName": "element",
        "path": "/sass/core/element/#mixin-rule-margin",
        "description": "Output CSS for a rule's margin\n",
        "commentRange": {
          "start": 176,
          "end": 177
        },
        "context": {
          "type": "mixin",
          "name": "rule-margin",
          "code": "\n  $margin: null;\n  @if ($name) {\n    $margin: get-rule-margin($name);\n  } @else {\n    $margin: get(\"margin\");\n  }\n  margin-top: $margin;\n  margin-bottom: $margin;\n",
          "line": {
            "start": 179,
            "end": 188
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "default": "\"default\"",
            "description": "name of rule style"
          }
        ],
        "group": [
          "element"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get-rule-margin"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_element.scss",
          "name": "_element.scss"
        },
        "usedBy": [
          {
            "description": "Get full rule CSS (style and margin)\n",
            "context": {
              "type": "mixin",
              "name": "rule",
              "code": "\n  @include rule-style($style-name);\n  @include rule-margin($margin-name);\n",
              "line": {
                "start": 161,
                "end": 167
              }
            }
          }
        ]
      },
      {
        "id": "mixin-link-defaults",
        "title": "link-defaults()",
        "groupName": "element",
        "path": "/sass/core/element/#mixin-link-defaults",
        "description": "Print the default link styling (no hover and focus styles)\n- Default link styling just sets the color and the link-text-decoration-default\n- This is usually output at the top of the stylesheet to style the general <a> element\n- Use link() mixin to print the full link styling (when used in content/text) which includes the full \n  styling (text-decoration, etc)\n",
        "commentRange": {
          "start": 190,
          "end": 196
        },
        "context": {
          "type": "mixin",
          "name": "link-defaults",
          "code": "\n  color: color.get(\"link\");\n  text-decoration: get(\"link-text-decoration-default\");\n  @if ($hover) {\n    &:hover {\n      color: color.get(\"link-hover\");\n    }\n  }\n  @if ($visited) {\n    &:visited {\n      color: color.get(\"link-visited\");\n    }\n  }\n",
          "line": {
            "start": 198,
            "end": 211
          }
        },
        "parameter": [
          {
            "type": "Boolean",
            "name": "visited",
            "description": "Include visited style"
          },
          {
            "type": "Boolean",
            "name": "active",
            "description": "Include active style"
          }
        ],
        "group": [
          "element"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_element.scss",
          "name": "_element.scss"
        }
      },
      {
        "id": "mixin-link",
        "title": "link()",
        "groupName": "element",
        "path": "/sass/core/element/#mixin-link",
        "description": "Output link CSS styles (this is the full link styling when used in content/text)\n",
        "commentRange": {
          "start": 213,
          "end": 215
        },
        "context": {
          "type": "mixin",
          "name": "link",
          "code": "\n  color: color.get(\"link\");\n  text-decoration: get(\"link-text-decoration\");\n  text-decoration-style: get(\"link-text-decoration-style\");\n  text-decoration-color: get(\"link-text-decoration-color\");\n  text-decoration-thickness: get(\"link-text-decoration-thickness\");\n  text-underline-offset: get(\"link-text-underline-offset\");\n  &:hover {\n    color: color.get(\"link-hover\");\n    text-decoration-style: get(\"link-text-decoration-style-hover\");\n    text-decoration-color: get(\"link-text-decoration-color-hover\");\n  }\n  @if ($visited) {\n    &:visited {\n      color: color.get(\"link-visited\");\n    }\n  }\n  @if ($active) {\n    &:active {\n      color: color.get(\"link-active\");\n    }\n  }\n",
          "line": {
            "start": 217,
            "end": 239
          }
        },
        "parameter": [
          {
            "type": "Boolean",
            "name": "visited",
            "description": "Include visited style"
          },
          {
            "type": "Boolean",
            "name": "active",
            "description": "Include active style"
          }
        ],
        "group": [
          "element"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_element.scss",
          "name": "_element.scss"
        }
      },
      {
        "id": "mixin-styles-ordered-list",
        "title": "styles-ordered-list()",
        "groupName": "element",
        "path": "/sass/core/element/#mixin-styles-ordered-list",
        "description": "Print the ordered list items styling\n",
        "commentRange": {
          "start": 241,
          "end": 242
        },
        "context": {
          "type": "mixin",
          "name": "styles-ordered-list",
          "code": "\n  margin-bottom: get(\"margin\");\n  list-style: get(\"ol-list-style-type\") outside;\n  li {\n    margin-bottom: get(\"margin-small\");\n    margin-left: get(\"list-item-indent\");\n  }\n  > li {\n    &::marker {\n      color: color.get($bullet-color);\n    }\n  }\n  ol {\n    // margin: get(\"margin-small\") 0;\n    list-style-type: get(\"ol-list-style-type-2\");\n    ol { \n      list-style-type: get(\"ol-list-style-type-3\");\n    }\n  }\n  ul,\n  ol {\n    margin-top: get(\"margin-small\");\n    margin-bottom: get(\"margin-small\");\n  }\n",
          "line": {
            "start": 244,
            "end": 268
          }
        },
        "parameter": [
          {
            "type": "Boolean",
            "name": "bullet-color",
            "description": "Optional bullet color (defaults to palette 'bullet')"
          }
        ],
        "group": [
          "element"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_element.scss",
          "name": "_element.scss"
        }
      },
      {
        "id": "mixin-styles-unordered-list",
        "title": "styles-unordered-list()",
        "groupName": "element",
        "path": "/sass/core/element/#mixin-styles-unordered-list",
        "description": "Print the unordered list items styling\n",
        "commentRange": {
          "start": 270,
          "end": 271
        },
        "context": {
          "type": "mixin",
          "name": "styles-unordered-list",
          "code": "\n  list-style: get(\"ul-list-style-type\") outside;\n  li {\n    margin-left: get(\"list-item-indent\");\n    margin-bottom: get(\"margin-small\");\n    &::marker {\n      color: color.get($bullet-color);\n    }\n  }\n  ul {\n    list-style-type: get(\"ul-list-style-type-2\") ;\n  }\n   ul ul {\n    list-style-type: get(\"ul-list-style-type-3\");\n  }\n  ul,\n  ol {\n    margin-top: get(\"margin-small\");\n    margin-bottom: get(\"margin-small\");\n  }\n",
          "line": {
            "start": 273,
            "end": 293
          }
        },
        "parameter": [
          {
            "type": "Boolean",
            "name": "bullet-color",
            "description": "Optional bullet color"
          }
        ],
        "group": [
          "element"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_element.scss",
          "name": "_element.scss"
        }
      },
      {
        "id": "mixin-hidden-visually",
        "title": "hidden-visually()",
        "groupName": "element",
        "path": "/sass/core/element/#mixin-hidden-visually",
        "description": "Hide text for assistive devices\n",
        "commentRange": {
          "start": 295,
          "end": 300
        },
        "context": {
          "type": "mixin",
          "name": "hidden-visually",
          "code": "\n  @if $hidden {\n    clip: rect(0 0 0 0);\n    clip-path: inset(50%);\n    height: 1px;\n    overflow: hidden;\n    position: absolute;\n    white-space: nowrap;\n    width: 1px;\n  } @else {\n    clip: auto;\n    clip-path: none;\n    height: auto;\n    overflow: visible;\n    position: static;\n    white-space: normal;\n    width: auto;\n  }\n",
          "line": {
            "start": 302,
            "end": 320
          }
        },
        "parameter": [
          {
            "type": "Boolean",
            "name": "hidden",
            "description": "Defaults to true, pass false to override the hidden css (ie. on focus)"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.layout-hidden-visually();\n// Reset styling\n@include ulu.layout-hidden-visually(false);"
          }
        ],
        "group": [
          "element"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_element.scss",
          "name": "_element.scss"
        }
      },
      {
        "id": "mixin-cap",
        "title": "cap()",
        "groupName": "element",
        "path": "/sass/core/element/#mixin-cap",
        "description": "Layout utility to add a colored bar (cap) to an element's edge, positioned over the element and its border\n- You need to set position (relative, fixed) on parent\n",
        "commentRange": {
          "start": 323,
          "end": 331
        },
        "context": {
          "type": "mixin",
          "name": "cap",
          "code": "\n  $defaults: (\n    \"color\" : get(\"cap-color\"), \n    \"size\" : get(\"cap-size\"), \n    \"offset\" : 0, \n    \"color-hover\" : null,\n    \"border-radius\" : null,\n    \"padding-adjust\" : null,\n  );\n  $config: map.merge($defaults, $options);\n  $element: utils.when($before, \"::before\", \"::after\");\n\n  &#{ $element } {\n    content: \"\";\n    position: absolute;\n    display: block;\n  }\n\n  @include cap-appearance($side, $config, $before);\n",
          "line": {
            "start": 333,
            "end": 356
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "side",
            "description": "The side to place the cap (top, bottom, left, right)"
          },
          {
            "type": "Map",
            "name": "options",
            "description": "Options for the appearance of the cap"
          },
          {
            "type": "Color",
            "name": "options.color",
            "default": "$config.cap-color",
            "description": "The color for the end cap"
          },
          {
            "type": "Number",
            "name": "options.size",
            "default": "$config.cap-size",
            "description": "The width/height of the cap"
          },
          {
            "type": "Number",
            "name": "options.offset",
            "default": "0",
            "description": "A positive number of the amount the cap should extend outside the box (to account for border-width)"
          },
          {
            "type": "Number",
            "name": "options.border-radius",
            "default": "null",
            "description": "An optional border-radius to apply to the outward-facing edges of the cap (used to match parent)"
          },
          {
            "type": "Boolean",
            "name": "before",
            "default": "true",
            "description": "Whether or not to use the ::before element (if not uses :after)"
          }
        ],
        "group": [
          "element"
        ],
        "access": "public",
        "require": [
          {
            "type": "mixin",
            "name": "cap-appearance"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "when"
          },
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_element.scss",
          "name": "_element.scss"
        }
      },
      {
        "id": "mixin-cap-appearance",
        "title": "cap-appearance()",
        "groupName": "element",
        "path": "/sass/core/element/#mixin-cap-appearance",
        "description": "Provides the appearance styles for a given cap\n- If an option is not provided it won't be output\n- This is used to update the caps styling (states, modifiers, etc)\n",
        "commentRange": {
          "start": 360,
          "end": 365
        },
        "context": {
          "type": "mixin",
          "name": "cap-appearance",
          "code": "\n  $element: utils.when($before, \"::before\", \"::after\");\n  $size: map.get($options, \"size\");\n  $offset: map.get($options, \"offset\");\n  $border-radius: map.get($options, \"border-radius\");\n  $padding-adjust: map.get($options, \"padding-adjust\");\n  \n  $end: $side == \"top\" or $side == \"bottom\";\n  $position: utils.when($offset, 0 - $offset, null);\n\n  @if ($padding-adjust and $size) {\n    padding-#{ $side }: calc($padding-adjust + $size);\n  }\n\n  &#{ $element } {\n    background-color: color.get(map.get($options, \"color\"));\n    #{ $side }: $position;\n\n    @if $end {\n      left: $position;\n      right: $position;\n      height: $size;\n    } @else {\n      top: $position;\n      bottom: $position;\n      width: $size;\n    }\n    \n    @if $border-radius {\n      @if $end {\n        border-#{ $side }-left-radius: $border-radius;\n        border-#{ $side }-right-radius: $border-radius;\n      } @else {\n        border-top-#{ $side }-radius: $border-radius;\n        border-bottom-#{ $side }-radius: $border-radius;\n      }\n    }\n  }\n",
          "line": {
            "start": 367,
            "end": 409
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "side",
            "description": "The side to place the cap (top, bottom, left, right)"
          },
          {
            "type": "Map",
            "name": "options",
            "description": "Options for the appearance of the cap (see options from element.cap)"
          },
          {
            "type": "Boolean",
            "name": "before",
            "description": "Whether or not to use the ::before element (if not uses :after)"
          }
        ],
        "group": [
          "element"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "when"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "when"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_element.scss",
          "name": "_element.scss"
        },
        "usedBy": [
          {
            "description": "Layout utility to add a colored bar (cap) to an element's edge, positioned over the element and its border\n- You need to set position (relative, fixed) on parent\n",
            "context": {
              "type": "mixin",
              "name": "cap",
              "code": "\n  $defaults: (\n    \"color\" : get(\"cap-color\"), \n    \"size\" : get(\"cap-size\"), \n    \"offset\" : 0, \n    \"color-hover\" : null,\n    \"border-radius\" : null,\n    \"padding-adjust\" : null,\n  );\n  $config: map.merge($defaults, $options);\n  $element: utils.when($before, \"::before\", \"::after\");\n\n  &#{ $element } {\n    content: \"\";\n    position: absolute;\n    display: block;\n  }\n\n  @include cap-appearance($side, $config, $before);\n",
              "line": {
                "start": 333,
                "end": 356
              }
            }
          }
        ]
      },
      {
        "id": "mixin-backdrop-filter-blur",
        "title": "backdrop-filter-blur()",
        "groupName": "element",
        "path": "/sass/core/element/#mixin-backdrop-filter-blur",
        "description": "Add backdrop-filter blur\n",
        "commentRange": {
          "start": 411,
          "end": 413
        },
        "context": {
          "type": "mixin",
          "name": "backdrop-filter-blur",
          "code": "\n  backdrop-filter: blur($amount);\n",
          "line": {
            "start": 414,
            "end": 416
          }
        },
        "parameter": [
          {
            "type": "CssUnit",
            "name": "amount",
            "default": "get(\"backdrop-blur\")",
            "description": "Amount to blur\n"
          }
        ],
        "group": [
          "element"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_element.scss",
          "name": "_element.scss"
        }
      },
      {
        "id": "mixin-focus-ring-required-only",
        "title": "focus-ring-required-only()",
        "groupName": "element",
        "path": "/sass/core/element/#mixin-focus-ring-required-only",
        "description": "Accessibly hide focus ring while keeping it when it's required\n",
        "commentRange": {
          "start": 418,
          "end": 418
        },
        "context": {
          "type": "mixin",
          "name": "focus-ring-required-only",
          "code": "\n  &:focus:not(:focus-visible) {\n    outline: none;\n  }\n",
          "line": {
            "start": 419,
            "end": 423
          }
        },
        "group": [
          "element"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_element.scss",
          "name": "_element.scss"
        }
      },
      {
        "id": "mixin-summary-remove-marker",
        "title": "summary-remove-marker()",
        "groupName": "element",
        "path": "/sass/core/element/#mixin-summary-remove-marker",
        "description": "Remove default details arrow from the summary element\n",
        "commentRange": {
          "start": 425,
          "end": 425
        },
        "context": {
          "type": "mixin",
          "name": "summary-remove-marker",
          "code": "\n  list-style: none; // Remove the default arrow (old safari?)\n  &::-webkit-details-marker,\n  &::marker {\n    display: none;\n    content: \"\";\n  }\n",
          "line": {
            "start": 426,
            "end": 433
          }
        },
        "group": [
          "element"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_element.scss",
          "name": "_element.scss"
        }
      },
      {
        "id": "function-optional-border",
        "title": "optional-border()",
        "groupName": "element",
        "path": "/sass/core/element/#function-optional-border",
        "description": "Helper function to construct a border using the color module\nReturns null if the required parameters are missing or zero, preventing output\n",
        "commentRange": {
          "start": 435,
          "end": 440
        },
        "context": {
          "type": "function",
          "name": "optional-border",
          "code": "\n  // Not using () breaks syntax highlighting\n  @if $width and $width != 0 and $width != none and $color {\n    @return $width $style color.get($color);\n  }\n  @return null;\n",
          "line": {
            "start": 442,
            "end": 448
          }
        },
        "parameter": [
          {
            "type": "Dimension",
            "name": "width",
            "description": "The border width"
          },
          {
            "type": "String|Color",
            "name": "color",
            "description": "The color value/key to resolve through color.get()"
          },
          {
            "type": "String",
            "name": "style",
            "default": "solid",
            "description": "The border style"
          }
        ],
        "return": {
          "type": "List|Null",
          "description": "The combined border shorthand, or null"
        },
        "group": [
          "element"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_element.scss",
          "name": "_element.scss"
        }
      }
    ],
    "path": [
      {
        "id": "variable-aliases",
        "title": "$aliases",
        "groupName": "path",
        "path": "/sass/core/path/#variable-aliases",
        "description": "Aliases \n",
        "commentRange": {
          "start": 9,
          "end": 12
        },
        "context": {
          "type": "variable",
          "name": "aliases",
          "value": "(\n  \"#Images\" : \"/images\",\n)",
          "scope": "default",
          "line": {
            "start": 14,
            "end": 16
          }
        },
        "type": "Map\n- Important: alias could be used for directory or file so omit trailing slash for directories\n- All aliases must start with \"#\"",
        "group": [
          "path"
        ],
        "access": "public",
        "file": {
          "path": "_path.scss",
          "name": "_path.scss"
        },
        "usedBy": [
          {
            "description": "Set aliases or change defaults\n",
            "context": {
              "type": "mixin",
              "name": "set-aliases",
              "code": "\n  $aliases: map.merge($aliases, $changes) !global;\n",
              "line": {
                "start": 21,
                "end": 23
              }
            }
          },
          {
            "description": "Set aliases or change defaults\n",
            "context": {
              "type": "mixin",
              "name": "set-aliases",
              "code": "\n  $aliases: map.merge($aliases, $changes) !global;\n",
              "line": {
                "start": 21,
                "end": 23
              }
            }
          },
          {
            "description": "Get an aliases path\n",
            "context": {
              "type": "function",
              "name": "get-alias",
              "code": "\n  @return utils.require-map-get($aliases, $name, '[path alias]');\n",
              "line": {
                "start": 28,
                "end": 30
              }
            }
          }
        ]
      },
      {
        "id": "mixin-set-aliases",
        "title": "set-aliases()",
        "groupName": "path",
        "path": "/sass/core/path/#mixin-set-aliases",
        "description": "Set aliases or change defaults\n",
        "commentRange": {
          "start": 18,
          "end": 19
        },
        "context": {
          "type": "mixin",
          "name": "set-aliases",
          "code": "\n  $aliases: map.merge($aliases, $changes) !global;\n",
          "line": {
            "start": 21,
            "end": 23
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "group": [
          "path"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "aliases"
          },
          {
            "type": "variable",
            "name": "aliases"
          }
        ],
        "file": {
          "path": "_path.scss",
          "name": "_path.scss"
        }
      },
      {
        "id": "function-get-alias",
        "title": "get-alias()",
        "groupName": "path",
        "path": "/sass/core/path/#function-get-alias",
        "description": "Get an aliases path\n",
        "commentRange": {
          "start": 25,
          "end": 26
        },
        "context": {
          "type": "function",
          "name": "get-alias",
          "code": "\n  @return utils.require-map-get($aliases, $name, '[path alias]');\n",
          "line": {
            "start": 28,
            "end": 30
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "Name",
            "description": "Name of alias"
          }
        ],
        "group": [
          "path"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "require-map-get"
          },
          {
            "type": "variable",
            "name": "aliases"
          }
        ],
        "file": {
          "path": "_path.scss",
          "name": "_path.scss"
        },
        "usedBy": [
          {
            "description": "Resolves a Path \n- Checks if path is an alias if so rewrite's it\n- Future could include rewrites for easier updating or rearranging of legacy things\n- Aliases work by starting with \"#\", Since it's an illegal uri character, needs to be escaped if used as literal, we felt that it was the safest way to mix aliases in with real URLs (so that a dev of a module using path.resolve can always pass paths through (user input unknown if alias)\n",
            "context": {
              "type": "function",
              "name": "resolve",
              "code": "\n  $is-alias: string.index($path, \"#\") == 1;\n  $dir-index: string.index($path, \"/\");\n  $resolved-path: $path;\n  @if $is-alias {\n    // Extract alias\n    @if $dir-index {\n      $alias: string.slice($path, 1, $dir-index - 1);\n      @return \"#{ get-alias($alias) }#{ string.slice($path, $dir-index) }\";\n    // Must just be only an alias\n    } @else {\n      @return \"#{ get-alias($path) }\";\n    }\n  } @else {\n    @return $path;\n  }\n",
              "line": {
                "start": 42,
                "end": 58
              }
            }
          },
          {
            "description": "Resolves a Path \n- Checks if path is an alias if so rewrite's it\n- Future could include rewrites for easier updating or rearranging of legacy things\n- Aliases work by starting with \"#\", Since it's an illegal uri character, needs to be escaped if used as literal, we felt that it was the safest way to mix aliases in with real URLs (so that a dev of a module using path.resolve can always pass paths through (user input unknown if alias)\n",
            "context": {
              "type": "function",
              "name": "resolve",
              "code": "\n  $is-alias: string.index($path, \"#\") == 1;\n  $dir-index: string.index($path, \"/\");\n  $resolved-path: $path;\n  @if $is-alias {\n    // Extract alias\n    @if $dir-index {\n      $alias: string.slice($path, 1, $dir-index - 1);\n      @return \"#{ get-alias($alias) }#{ string.slice($path, $dir-index) }\";\n    // Must just be only an alias\n    } @else {\n      @return \"#{ get-alias($path) }\";\n    }\n  } @else {\n    @return $path;\n  }\n",
              "line": {
                "start": 42,
                "end": 58
              }
            }
          }
        ]
      },
      {
        "id": "function-resolve",
        "title": "resolve()",
        "groupName": "path",
        "path": "/sass/core/path/#function-resolve",
        "description": "Resolves a Path \n- Checks if path is an alias if so rewrite's it\n- Future could include rewrites for easier updating or rearranging of legacy things\n- Aliases work by starting with \"#\", Since it's an illegal uri character, needs to be escaped if used as literal, we felt that it was the safest way to mix aliases in with real URLs (so that a dev of a module using path.resolve can always pass paths through (user input unknown if alias)\n",
        "commentRange": {
          "start": 32,
          "end": 40
        },
        "context": {
          "type": "function",
          "name": "resolve",
          "code": "\n  $is-alias: string.index($path, \"#\") == 1;\n  $dir-index: string.index($path, \"/\");\n  $resolved-path: $path;\n  @if $is-alias {\n    // Extract alias\n    @if $dir-index {\n      $alias: string.slice($path, 1, $dir-index - 1);\n      @return \"#{ get-alias($alias) }#{ string.slice($path, $dir-index) }\";\n    // Must just be only an alias\n    } @else {\n      @return \"#{ get-alias($path) }\";\n    }\n  } @else {\n    @return $path;\n  }\n",
          "line": {
            "start": 42,
            "end": 58
          }
        },
        "example": [
          {
            "type": "scss",
            "code": ".img {\n  background-image: url(ulu.path-resolve(\"#Images/branding/logo\"));\n}"
          }
        ],
        "group": [
          "path"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get-alias"
          },
          {
            "type": "function",
            "name": "get-alias"
          }
        ],
        "file": {
          "path": "_path.scss",
          "name": "_path.scss"
        }
      }
    ],
    "selector": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "selector",
        "path": "/sass/core/selector/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 11,
          "end": 13
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"prefix\" : \"\"\n)",
          "scope": "default",
          "line": {
            "start": 15,
            "end": 17
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "String",
            "name": "prefix",
            "default": "\"\"",
            "description": "Global prefix for selectors (would be used for classname prefix for example)"
          }
        ],
        "group": [
          "selector"
        ],
        "access": "public",
        "file": {
          "path": "_selector.scss",
          "name": "_selector.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "selector",
        "path": "/sass/core/selector/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 25,
          "end": 28
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 29,
            "end": 31
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.selector-set(( \"property\" : value ));",
            "description": "General example"
          }
        ],
        "group": [
          "selector"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_selector.scss",
          "name": "_selector.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "selector",
        "path": "/sass/core/selector/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 33,
          "end": 36
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return utils.require-map-get($config, $name, \"selector [config]\");\n",
          "line": {
            "start": 38,
            "end": 40
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.selector-get(\"property\");",
            "description": "General example"
          }
        ],
        "group": [
          "selector"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "require-map-get"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_selector.scss",
          "name": "_selector.scss"
        }
      },
      {
        "id": "mixin-set-class-overrides",
        "title": "set-class-overrides()",
        "groupName": "selector",
        "path": "/sass/core/selector/#mixin-set-class-overrides",
        "description": "Set the class selector overrides\n- When a component or user module that is using selector module requests a classname any changes passed here will override the default selector\n",
        "commentRange": {
          "start": 42,
          "end": 49
        },
        "context": {
          "type": "mixin",
          "name": "set-class-overrides",
          "code": "\n  @each $key, $prop in $changes {\n    $index: string.index($key, \"*\");\n    @if ($index) {\n      $wild-key: string.slice($key, 1, $index - 1);\n      $-class-wildcards: map.set($-class-wildcards, $wild-key, $prop) !global;\n      $changes: map.remove($changes, $key);\n    }\n  }\n  $-class-overrides: map.merge($-class-overrides, $changes) !global;\n",
          "line": {
            "start": 51,
            "end": 61
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Changes to merge map of classnames to classname change"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.selector-set-class-overrides((\n  \"color-context\" : \"background\",\n  \"type*\" : \"text\"\n));",
            "description": "Changing the color-context classname to background and all typography base/utility classes to 'text' using wildcard"
          }
        ],
        "group": [
          "selector"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_selector.scss",
          "name": "_selector.scss"
        }
      },
      {
        "id": "function-class",
        "title": "class()",
        "groupName": "selector",
        "path": "/sass/core/selector/#function-class",
        "description": "Used to allow global prefixing of classes, and also the ability to \nChange a class used in the system (ie. like a component for example)\n",
        "commentRange": {
          "start": 63,
          "end": 65
        },
        "context": {
          "type": "function",
          "name": "class",
          "code": "\n  // Check if it's a wildcard\n  $wildcard: -get-class-wildcard($class);\n  $override: map.get($-class-overrides, $class);\n  $updated: utils.fallback($override, $wildcard, $class);\n  $name: \"#{ get(\"prefix\") }#{ $updated }\";\n  @if $name-only {\n    @return $name;\n  } @else {\n    @return \".#{ $name }\";\n  }\n",
          "line": {
            "start": 67,
            "end": 78
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "class",
            "description": "The base classname to get (which is then returned modified if the user has adjusted that specific classname"
          }
        ],
        "group": [
          "selector"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "fallback"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_selector.scss",
          "name": "_selector.scss"
        },
        "usedBy": [
          {
            "description": "Prints all context styles \n",
            "context": {
              "type": "mixin",
              "name": "all-context-styles",
              "code": "\n  $prefix: selector.class(\"color-context\");\n  @each $name, $context in $contexts {\n    @if (not $with-prop or map.get($context, $with-prop)) {\n      #{ $prefix }-#{ $name } {\n        @include context-styles($name);\n      }\n    }\n  }\n",
              "line": {
                "start": 241,
                "end": 250
              }
            }
          },
          {
            "description": "Outputs all color classes\n",
            "context": {
              "type": "mixin",
              "name": "all-color-class-styles",
              "code": "\n  $prefix: selector.class(\"color\");\n  @each $name, $output in $color-classes {\n    @if ($output) {\n      #{ $prefix }-#{ $name } {\n        color: get($name);\n      }\n    }\n  }\n",
              "line": {
                "start": 258,
                "end": 267
              }
            }
          }
        ]
      }
    ],
    "utils": [
      {
        "id": "variable-config",
        "title": "$config",
        "groupName": "utils",
        "path": "/sass/core/utils/#variable-config",
        "description": "Module Settings\n",
        "commentRange": {
          "start": 12,
          "end": 17
        },
        "context": {
          "type": "variable",
          "name": "config",
          "value": "(\n  \"debug-maps\": true,\n  \"file-header-comments\": true,\n  \"responsive-change\": 0.5vw,\n  \"pixel-em-base\" : 16px,\n)",
          "scope": "default",
          "line": {
            "start": 19,
            "end": 24
          }
        },
        "type": "Map",
        "property": [
          {
            "type": "Boolean",
            "name": "debug-maps",
            "default": "true",
            "description": "Enable or disable debug map output"
          },
          {
            "type": "Boolean",
            "name": "file-header-comments",
            "default": "true",
            "description": "Enable or disable module/file header comments"
          },
          {
            "type": "Number",
            "name": "responsive-change",
            "default": "0.5vw",
            "description": "Default responsive amount to modify items using responsive-property mixin"
          },
          {
            "type": "Number",
            "name": "pixel-em-base",
            "default": "16px",
            "description": "Default base pixel font size for pixel-to-em"
          }
        ],
        "group": [
          "utils"
        ],
        "access": "public",
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        }
      },
      {
        "id": "mixin-set",
        "title": "set()",
        "groupName": "utils",
        "path": "/sass/core/utils/#mixin-set",
        "description": "Change modules $config\n",
        "commentRange": {
          "start": 26,
          "end": 29
        },
        "context": {
          "type": "mixin",
          "name": "set",
          "code": "\n  $config: map.merge($config, $changes) !global;\n",
          "line": {
            "start": 31,
            "end": 33
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "changes",
            "description": "Map of changes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "@include ulu.utils-set(( \"property\" : value ));",
            "description": "General example"
          }
        ],
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "config"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        }
      },
      {
        "id": "function-get",
        "title": "get()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-get",
        "description": "Get a config option\n",
        "commentRange": {
          "start": 35,
          "end": 41
        },
        "context": {
          "type": "function",
          "name": "get",
          "code": "\n  @return require-map-get($config, $name, 'utils');\n",
          "line": {
            "start": 43,
            "end": 45
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "name",
            "description": "Name of property"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": ".test-em-to-pixel {\n  width: ulu.utils-get(\"pixel-em-base\");\n}",
            "description": "Example usage",
            "modifier": "compile"
          }
        ],
        "return": {
          "type": "Dimension"
        },
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "require-map-get"
          },
          {
            "type": "variable",
            "name": "config"
          }
        ],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        }
      },
      {
        "id": "function-require-map-get",
        "title": "require-map-get()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-require-map-get",
        "description": "Get a required value from a map, throw an error if not found\n- Remember that that maps cannot intentionally use null (use false instead, if trying to avoid output if not configured)\n",
        "commentRange": {
          "start": 47,
          "end": 57
        },
        "context": {
          "type": "function",
          "name": "require-map-get",
          "code": "\n  // $value: map.get($map, $key);\n  @if (map.has-key($map, $key)) {\n    @return map.get($map, $key);\n  } @else {\n    @if (get(\"debug-maps\")) {\n      @debug $map;\n    }\n    @error 'ULU: Unable to find  \"#{ $key }\" in #{ $context } map.';\n  }\n",
          "line": {
            "start": 59,
            "end": 69
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "map",
            "description": "The map to get the value from"
          },
          {
            "type": "String",
            "name": "key",
            "description": "The key in the map to get value from"
          },
          {
            "type": "String",
            "name": "context",
            "description": "The context of using this function for debugging help"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": ".test-require-map {\n  $test-map: (\"test-font-size\": 12px);\n  font-size: ulu.utils-require-map-get($test-map, \"test-font-size\");\n}",
            "description": "Example usage",
            "modifier": "compile"
          }
        ],
        "return": {
          "type": "*",
          "description": "The value from the map"
        },
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "throw": [
          "ULU: Unable to find  "
        ],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        },
        "usedBy": [
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, 'breakpoint [config]');\n",
              "line": {
                "start": 41,
                "end": 43
              }
            }
          },
          {
            "description": "Get a specific breakpoint's raw value/size\n",
            "context": {
              "type": "function",
              "name": "get-size",
              "code": "\n  @return utils.require-map-get($sizes, $size, \"breakpoint size\");\n",
              "line": {
                "start": 92,
                "end": 94
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  $value: utils.require-map-get($config, $name, \"button [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
              "line": {
                "start": 156,
                "end": 159
              }
            }
          },
          {
            "description": "Print button size styles for a specific size\n",
            "context": {
              "type": "mixin",
              "name": "size",
              "code": "\n  $size: utils.require-map-get($sizes, $name, 'button [size]');\n  $font-size: map.get($size, \"font-size\");\n  padding: map.get($size, \"padding\");\n  border-radius: map.get($size, \"border-radius\");\n  border-width: map.get($size, \"border-width\");\n  min-width: map.get($size, \"min-width\");\n  @if $font-size {\n    @include typography.size($font-size);\n  }\n",
              "line": {
                "start": 279,
                "end": 289
              }
            }
          },
          {
            "description": "Get a value from a button style\n",
            "context": {
              "type": "function",
              "name": "get-style-value",
              "code": "\n  $style: utils.require-map-get($styles, $name, 'button [color value]');\n  $state-style: ();\n  // If a specific state [hover, active] grab that map\n  @if ($state) {\n    $state-style: map.get($style, $state);\n    $state-style: utils.when($state-style, $state-style, ());\n  }\n  // From is the map to grab styles from\n  $from: utils.when($state, $state-style, $style);\n  $value: map.get($from, $prop);\n\n  // Fallback to parent (if hover)\n  @if ($state == \"hover\") {\n    $value: utils.when($value, $value, map.get($style, $prop)); \n  }\n\n  @if (meta.type-of($value) == \"string\" and string.index($prop, \"color\")) {\n    @return color.get($value);\n  } @else {\n    @return $value;\n  }\n",
              "line": {
                "start": 297,
                "end": 319
              }
            }
          },
          {
            "description": "Get a color from the palette by name\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  // Allow non lookup if the value is already a color (helps with code flow)\n  @if (meta.type-of($name) == \"string\") {\n    $is-keyword: $name == \"inherit\" or $name == \"transparent\" or $name == \"currentColor\";\n    $is-cssvar: string.index($name, \"var(\") == 1;\n    $is-color-mix: string.index($name, \"color-mix(\") == 1;\n    // Allow custom-properties and keyword inherit/transparent to pass through\n    @if ($is-keyword or $is-cssvar or $is-color-mix) {\n      @return $name;\n    // Else look up the color from the palette\n    } @else {\n      @return utils.require-map-get($palette, $name, 'color');\n    }\n  }\n  // Allow everything other than strings to pass through\n  // - color, null, false, etc (so they can not output)\n  @return $name;\n",
              "line": {
                "start": 105,
                "end": 122
              }
            }
          },
          {
            "description": "Get a context by name\n",
            "context": {
              "type": "function",
              "name": "get-context",
              "code": "\n  @return utils.require-map-get($contexts, $name, 'context');\n",
              "line": {
                "start": 158,
                "end": 160
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"css-vars [config]\");\n",
              "line": {
                "start": 37,
                "end": 39
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"element [config]\");\n",
              "line": {
                "start": 109,
                "end": 111
              }
            }
          },
          {
            "description": "Get a rule style\n",
            "context": {
              "type": "function",
              "name": "get-rule-style",
              "code": "\n  @return utils.require-map-get($rule-styles, $name, \"element [rule style]\");\n",
              "line": {
                "start": 132,
                "end": 134
              }
            }
          },
          {
            "description": "Sets rule margin\n",
            "context": {
              "type": "function",
              "name": "get-rule-margin",
              "code": "\n  @return utils.require-map-get($rule-margins, $name, \"element [rule style]\");\n",
              "line": {
                "start": 154,
                "end": 156
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"layout [config]\");\n",
              "line": {
                "start": 40,
                "end": 42
              }
            }
          },
          {
            "description": "Get a width config by name\n",
            "context": {
              "type": "function",
              "name": "get-width",
              "code": "\n  @return utils.require-map-get($widths, $name, \"layout [widths]\");\n",
              "line": {
                "start": 83,
                "end": 85
              }
            }
          },
          {
            "description": "Get a max-width config by name\n",
            "context": {
              "type": "function",
              "name": "get-max-width",
              "code": "\n  @return utils.require-map-get($max-widths, $name, \"layout [max-widths]\");\n",
              "line": {
                "start": 121,
                "end": 123
              }
            }
          },
          {
            "description": "Get a container map\n",
            "context": {
              "type": "function",
              "name": "get-container",
              "code": "\n  $container: null;\n  @if ($required) {\n    $container: utils.require-map-get($containers, $name, \"Layout [get-container]\");\n  } @else {\n    $container: map.get($containers, $name);\n  }\n\n  @if ($container and $breakpoint) {\n    $breakpoints: map.get($container, \"breakpoints\");\n    @if ($required) {\n      @if ($breakpoints) {\n        @return utils.require-map-get($breakpoints, $breakpoint, \"[container breakpoint]\");\n      } @else {\n        @error 'ULU: No container breakpoints for container \"#{ $name }\", requested breakpoint #{ $breakpoint }';\n      }\n    } @else {\n      @if ($breakpoints) {\n        @return map.get($breakpoints, $breakpoint);\n      } @else {\n        @return null;\n      }\n    }\n  }\n\n  @return $container;\n",
              "line": {
                "start": 154,
                "end": 180
              }
            }
          },
          {
            "description": "Get a container map\n",
            "context": {
              "type": "function",
              "name": "get-container",
              "code": "\n  $container: null;\n  @if ($required) {\n    $container: utils.require-map-get($containers, $name, \"Layout [get-container]\");\n  } @else {\n    $container: map.get($containers, $name);\n  }\n\n  @if ($container and $breakpoint) {\n    $breakpoints: map.get($container, \"breakpoints\");\n    @if ($required) {\n      @if ($breakpoints) {\n        @return utils.require-map-get($breakpoints, $breakpoint, \"[container breakpoint]\");\n      } @else {\n        @error 'ULU: No container breakpoints for container \"#{ $name }\", requested breakpoint #{ $breakpoint }';\n      }\n    } @else {\n      @if ($breakpoints) {\n        @return map.get($breakpoints, $breakpoint);\n      } @else {\n        @return null;\n      }\n    }\n  }\n\n  @return $container;\n",
              "line": {
                "start": 154,
                "end": 180
              }
            }
          },
          {
            "description": "Get an aliases path\n",
            "context": {
              "type": "function",
              "name": "get-alias",
              "code": "\n  @return utils.require-map-get($aliases, $name, '[path alias]');\n",
              "line": {
                "start": 28,
                "end": 30
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"selector [config]\");\n",
              "line": {
                "start": 38,
                "end": 40
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, \"themes [config]\");\n",
              "line": {
                "start": 65,
                "end": 67
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return utils.require-map-get($config, $name, 'typography [config]');\n",
              "line": {
                "start": 82,
                "end": 84
              }
            }
          },
          {
            "description": "Get a specific size's settings map\n",
            "context": {
              "type": "function",
              "name": "get-size",
              "code": "\n  @return utils.require-map-get($sizes, $name, 'typography [size]');\n",
              "line": {
                "start": 224,
                "end": 226
              }
            }
          },
          {
            "description": "Get a unit by name (preset) or number (multiplier of base)\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @if (meta.type-of($value) == string) {\n    @return utils.require-map-get($config, $value, 'unit [config]');\n  }\n  @return get(\"default\") * $value;\n",
              "line": {
                "start": 44,
                "end": 49
              }
            }
          },
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  @return require-map-get($config, $name, 'utils');\n",
              "line": {
                "start": 43,
                "end": 45
              }
            }
          }
        ]
      },
      {
        "id": "mixin-require-list-has",
        "title": "require-list-has()",
        "groupName": "utils",
        "path": "/sass/core/utils/#mixin-require-list-has",
        "description": "Ensure a value is present in the list, throw an error if not found\n",
        "commentRange": {
          "start": 71,
          "end": 75
        },
        "context": {
          "type": "mixin",
          "name": "require-list-has",
          "code": "\n  $index: list.index($list, $value);\n  @if ($index == null) {\n    $message: 'ULU: Unable to find item \"#{ $value }\" in #{ $context } list.';\n    @if ($warn) {\n      @warn $message;\n    } @else {\n      @error $message;\n    }\n  }\n",
          "line": {
            "start": 77,
            "end": 87
          }
        },
        "parameter": [
          {
            "type": "List",
            "name": "list",
            "description": "The map to get the value from"
          },
          {
            "type": "String",
            "name": "value",
            "description": "The value to search for in the list"
          },
          {
            "type": "String",
            "name": "context",
            "description": "The context of using this function for debugging help"
          },
          {
            "type": "String",
            "name": "warn",
            "description": "Display warning instead of throwing error"
          }
        ],
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        },
        "usedBy": [
          {
            "description": "Require that the list only is only made up of allowed items\n",
            "context": {
              "type": "mixin",
              "name": "require-list-contains",
              "code": "\n  @each $item in $list {\n    @include require-list-has($allowed, $item, $context, $warn);\n  }\n",
              "line": {
                "start": 95,
                "end": 99
              }
            }
          }
        ]
      },
      {
        "id": "mixin-require-list-contains",
        "title": "require-list-contains()",
        "groupName": "utils",
        "path": "/sass/core/utils/#mixin-require-list-contains",
        "description": "Require that the list only is only made up of allowed items\n",
        "commentRange": {
          "start": 89,
          "end": 93
        },
        "context": {
          "type": "mixin",
          "name": "require-list-contains",
          "code": "\n  @each $item in $list {\n    @include require-list-has($allowed, $item, $context, $warn);\n  }\n",
          "line": {
            "start": 95,
            "end": 99
          }
        },
        "parameter": [
          {
            "type": "List",
            "name": "allowed",
            "description": "The list of allowed items"
          },
          {
            "type": "String",
            "name": "list",
            "description": "The list to test allowed against"
          },
          {
            "type": "String",
            "name": "context",
            "description": "The context of using this function for debugging help"
          },
          {
            "type": "String",
            "name": "warn",
            "description": "Display warning instead of throwing error"
          }
        ],
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [
          {
            "type": "mixin",
            "name": "require-list-has"
          }
        ],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        }
      },
      {
        "id": "function-included",
        "title": "included()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-included",
        "description": "Returns true if we should include something (map of booleans)\n",
        "commentRange": {
          "start": 101,
          "end": 118
        },
        "context": {
          "type": "function",
          "name": "included",
          "code": "\n  $value: map.get($includes, $name);\n  @return $value == true;\n",
          "line": {
            "start": 120,
            "end": 123
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "name",
            "description": "Name of item to see if it's included"
          },
          {
            "type": "Map",
            "name": "includes",
            "description": "Map of includes"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "$include-styles : (\n  \"h2\" : true,\n  \"h3\" : false\n);\n@if (ulu.utils-included(\"h2\", $include-styles)) {\n  h2 {\n    font-size: 24px;\n  }\n}\n@if (ulu.utils-included(\"h3\", $include-styles)) {\n  h3 {\n    font-size: 18px;\n  }\n}",
            "description": "Example usage",
            "modifier": "compile"
          }
        ],
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        }
      },
      {
        "id": "mixin-file-header",
        "title": "file-header()",
        "groupName": "utils",
        "path": "/sass/core/utils/#mixin-file-header",
        "description": "Returns true if we should include something (used for output checking)\n",
        "commentRange": {
          "start": 125,
          "end": 127
        },
        "context": {
          "type": "mixin",
          "name": "file-header",
          "code": "\n  @if (\"file-header-comments\") {\n/* \n=============================================================================\n#{ $context }:#{ $name }\n============================================================================= \n*/\n  }\n",
          "line": {
            "start": 129,
            "end": 137
          }
        },
        "parameter": [
          {
            "type": "List",
            "name": "context",
            "description": "The root area of the framework this file comes from"
          },
          {
            "type": "List",
            "name": "name",
            "description": "The name of the specific area/file (optional)"
          }
        ],
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        }
      },
      {
        "id": "function-when",
        "title": "when()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-when",
        "description": "Selects a value based on a condition (Ternary Function)\n- To replace SASS if() which is deprecated see\n- Eagerly evaluates arguments (use native @if or if(sass()... if you need lazy evaluation).\n",
        "commentRange": {
          "start": 139,
          "end": 150
        },
        "context": {
          "type": "function",
          "name": "when",
          "code": "\n  @if $condition {\n    @return $value-true;\n  }\n  @return $value-false;\n",
          "line": {
            "start": 152,
            "end": 157
          }
        },
        "parameter": [
          {
            "type": "*",
            "name": "condition",
            "description": "The condition/value to test for truthiness"
          },
          {
            "type": "*",
            "name": "true",
            "description": "Value if true"
          },
          {
            "type": "*",
            "name": "false",
            "description": "Value if false"
          }
        ],
        "link": [
          {
            "url": "https://sass-lang.com/documentation/breaking-changes/if-function/",
            "caption": ""
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": ".test {\n  color: ulu.utils-when(true, red, blue)\n}",
            "description": "Example usage",
            "modifier": "compile"
          }
        ],
        "return": {
          "type": "*",
          "description": "Either true or false value based on conditions truthiness"
        },
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        },
        "usedBy": [
          {
            "description": "Check if a specific size exist\n",
            "context": {
              "type": "function",
              "name": "exists",
              "code": "\n  $size: map.get($sizes, $name);\n  @return utils.when($size != null, true, false);\n",
              "line": {
                "start": 132,
                "end": 135
              }
            }
          },
          {
            "description": "Get a value from a button style\n",
            "context": {
              "type": "function",
              "name": "get-style-value",
              "code": "\n  $style: utils.require-map-get($styles, $name, 'button [color value]');\n  $state-style: ();\n  // If a specific state [hover, active] grab that map\n  @if ($state) {\n    $state-style: map.get($style, $state);\n    $state-style: utils.when($state-style, $state-style, ());\n  }\n  // From is the map to grab styles from\n  $from: utils.when($state, $state-style, $style);\n  $value: map.get($from, $prop);\n\n  // Fallback to parent (if hover)\n  @if ($state == \"hover\") {\n    $value: utils.when($value, $value, map.get($style, $prop)); \n  }\n\n  @if (meta.type-of($value) == \"string\" and string.index($prop, \"color\")) {\n    @return color.get($value);\n  } @else {\n    @return $value;\n  }\n",
              "line": {
                "start": 297,
                "end": 319
              }
            }
          },
          {
            "description": "Get a value from a button style\n",
            "context": {
              "type": "function",
              "name": "get-style-value",
              "code": "\n  $style: utils.require-map-get($styles, $name, 'button [color value]');\n  $state-style: ();\n  // If a specific state [hover, active] grab that map\n  @if ($state) {\n    $state-style: map.get($style, $state);\n    $state-style: utils.when($state-style, $state-style, ());\n  }\n  // From is the map to grab styles from\n  $from: utils.when($state, $state-style, $style);\n  $value: map.get($from, $prop);\n\n  // Fallback to parent (if hover)\n  @if ($state == \"hover\") {\n    $value: utils.when($value, $value, map.get($style, $prop)); \n  }\n\n  @if (meta.type-of($value) == \"string\" and string.index($prop, \"color\")) {\n    @return color.get($value);\n  } @else {\n    @return $value;\n  }\n",
              "line": {
                "start": 297,
                "end": 319
              }
            }
          },
          {
            "description": "Get a value from a button style\n",
            "context": {
              "type": "function",
              "name": "get-style-value",
              "code": "\n  $style: utils.require-map-get($styles, $name, 'button [color value]');\n  $state-style: ();\n  // If a specific state [hover, active] grab that map\n  @if ($state) {\n    $state-style: map.get($style, $state);\n    $state-style: utils.when($state-style, $state-style, ());\n  }\n  // From is the map to grab styles from\n  $from: utils.when($state, $state-style, $style);\n  $value: map.get($from, $prop);\n\n  // Fallback to parent (if hover)\n  @if ($state == \"hover\") {\n    $value: utils.when($value, $value, map.get($style, $prop)); \n  }\n\n  @if (meta.type-of($value) == \"string\" and string.index($prop, \"color\")) {\n    @return color.get($value);\n  } @else {\n    @return $value;\n  }\n",
              "line": {
                "start": 297,
                "end": 319
              }
            }
          },
          {
            "description": "Check if a color is set in the palette\n",
            "context": {
              "type": "function",
              "name": "exists",
              "code": "\n  $color: map.get($palette, $name);\n  @return utils.when($color != null, true, false);\n",
              "line": {
                "start": 133,
                "end": 136
              }
            }
          },
          {
            "description": "Layout utility to add a colored bar (cap) to an element's edge, positioned over the element and its border\n- You need to set position (relative, fixed) on parent\n",
            "context": {
              "type": "mixin",
              "name": "cap",
              "code": "\n  $defaults: (\n    \"color\" : get(\"cap-color\"), \n    \"size\" : get(\"cap-size\"), \n    \"offset\" : 0, \n    \"color-hover\" : null,\n    \"border-radius\" : null,\n    \"padding-adjust\" : null,\n  );\n  $config: map.merge($defaults, $options);\n  $element: utils.when($before, \"::before\", \"::after\");\n\n  &#{ $element } {\n    content: \"\";\n    position: absolute;\n    display: block;\n  }\n\n  @include cap-appearance($side, $config, $before);\n",
              "line": {
                "start": 333,
                "end": 356
              }
            }
          },
          {
            "description": "Provides the appearance styles for a given cap\n- If an option is not provided it won't be output\n- This is used to update the caps styling (states, modifiers, etc)\n",
            "context": {
              "type": "mixin",
              "name": "cap-appearance",
              "code": "\n  $element: utils.when($before, \"::before\", \"::after\");\n  $size: map.get($options, \"size\");\n  $offset: map.get($options, \"offset\");\n  $border-radius: map.get($options, \"border-radius\");\n  $padding-adjust: map.get($options, \"padding-adjust\");\n  \n  $end: $side == \"top\" or $side == \"bottom\";\n  $position: utils.when($offset, 0 - $offset, null);\n\n  @if ($padding-adjust and $size) {\n    padding-#{ $side }: calc($padding-adjust + $size);\n  }\n\n  &#{ $element } {\n    background-color: color.get(map.get($options, \"color\"));\n    #{ $side }: $position;\n\n    @if $end {\n      left: $position;\n      right: $position;\n      height: $size;\n    } @else {\n      top: $position;\n      bottom: $position;\n      width: $size;\n    }\n    \n    @if $border-radius {\n      @if $end {\n        border-#{ $side }-left-radius: $border-radius;\n        border-#{ $side }-right-radius: $border-radius;\n      } @else {\n        border-top-#{ $side }-radius: $border-radius;\n        border-bottom-#{ $side }-radius: $border-radius;\n      }\n    }\n  }\n",
              "line": {
                "start": 367,
                "end": 409
              }
            }
          },
          {
            "description": "Provides the appearance styles for a given cap\n- If an option is not provided it won't be output\n- This is used to update the caps styling (states, modifiers, etc)\n",
            "context": {
              "type": "mixin",
              "name": "cap-appearance",
              "code": "\n  $element: utils.when($before, \"::before\", \"::after\");\n  $size: map.get($options, \"size\");\n  $offset: map.get($options, \"offset\");\n  $border-radius: map.get($options, \"border-radius\");\n  $padding-adjust: map.get($options, \"padding-adjust\");\n  \n  $end: $side == \"top\" or $side == \"bottom\";\n  $position: utils.when($offset, 0 - $offset, null);\n\n  @if ($padding-adjust and $size) {\n    padding-#{ $side }: calc($padding-adjust + $size);\n  }\n\n  &#{ $element } {\n    background-color: color.get(map.get($options, \"color\"));\n    #{ $side }: $position;\n\n    @if $end {\n      left: $position;\n      right: $position;\n      height: $size;\n    } @else {\n      top: $position;\n      bottom: $position;\n      width: $size;\n    }\n    \n    @if $border-radius {\n      @if $end {\n        border-#{ $side }-left-radius: $border-radius;\n        border-#{ $side }-right-radius: $border-radius;\n      } @else {\n        border-top-#{ $side }-radius: $border-radius;\n        border-bottom-#{ $side }-radius: $border-radius;\n      }\n    }\n  }\n",
              "line": {
                "start": 367,
                "end": 409
              }
            }
          },
          {
            "description": "Get a containers padding value\n",
            "context": {
              "type": "function",
              "name": "get-container-padding",
              "code": "\n  $container: get-container($name, $specific-breakpoint);\n  $padding: map.get($container, \"padding\");\n  $is-list: meta.type-of($padding) == \"list\"; // Else number\n  @if (not $is-list) {\n    @return $padding;\n  } @else {\n    @return list.nth($padding, utils.when($sides, 2, 1));\n  }\n",
              "line": {
                "start": 239,
                "end": 248
              }
            }
          },
          {
            "description": "Print the containers padding properties\n",
            "context": {
              "type": "mixin",
              "name": "container-padding",
              "code": "\n  $container: get-container($name, $specific-breakpoint);\n  $responsive: map.get($container, \"responsive\");\n  $x: get-container-padding-x($name, $specific-breakpoint);\n  $y: get-container-padding-y($name, $specific-breakpoint);\n  $resp-amount: utils.when(meta.type-of($responsive) == number, $responsive, utils.get(\"responsive-change\"));\n  \n  @if $responsive {\n    @if $sides {\n      @include utils.responsive-property(\"padding-left\", $x, $resp-amount);\n      @include utils.responsive-property(\"padding-right\", $x, $resp-amount);\n    }\n    @if $ends {\n      @include utils.responsive-property(\"padding-top\", $y, $resp-amount);\n      @include utils.responsive-property(\"padding-bottom\", $y, $resp-amount);\n    }\n  } @else {\n    @if $sides {\n      padding-left: $x;\n      padding-right: $x;\n    }\n    @if $ends {\n      padding-top: $y;\n      padding-bottom: $y;\n    }\n  }\n",
              "line": {
                "start": 255,
                "end": 281
              }
            }
          },
          {
            "description": "Output CSS Break word strategy\n",
            "context": {
              "type": "mixin",
              "name": "word-break",
              "code": "\n  word-break: utils.when($force, break-all, normal);\n  word-break: break-word;\n  hyphens: auto;\n",
              "line": {
                "start": 131,
                "end": 135
              }
            }
          },
          {
            "description": "Creates a size map \n- This is just an accelerator for creating a size map\n- This is opinionated about how sizes are setup, headlines get (margins, bold, headline color) and are base classes while non-headlines are added as helper classes and do not get (margins, bold, color)\n- You can pass your own size maps using set-sizes()\n",
            "context": {
              "type": "function",
              "name": "new-size",
              "code": "\n  @return (\n    \"font-size\": $font-size,\n    \"font-weight\" : utils.when($is-headline, get(\"font-weight-bold\"), null), \n    \"line-height\": $line-height,\n    \"margin-bottom\" : utils.when($is-headline, get(\"margin-bottom\"), null),\n    \"margin-top\" : utils.when($is-headline, get(\"headline-margin-top\"), null),\n    \"responsive\" : true,\n    \"helper-class\" : utils.when($is-headline, false, true),\n    \"helper-class-prefixed\" : true,\n    \"base-class\" : utils.when($is-headline, true, false),\n    \"base-class-prefixed\" : false,\n    \"color\" : utils.when($is-headline, \"headline\", null)\n  );\n",
              "line": {
                "start": 145,
                "end": 159
              }
            }
          },
          {
            "description": "Creates a size map \n- This is just an accelerator for creating a size map\n- This is opinionated about how sizes are setup, headlines get (margins, bold, headline color) and are base classes while non-headlines are added as helper classes and do not get (margins, bold, color)\n- You can pass your own size maps using set-sizes()\n",
            "context": {
              "type": "function",
              "name": "new-size",
              "code": "\n  @return (\n    \"font-size\": $font-size,\n    \"font-weight\" : utils.when($is-headline, get(\"font-weight-bold\"), null), \n    \"line-height\": $line-height,\n    \"margin-bottom\" : utils.when($is-headline, get(\"margin-bottom\"), null),\n    \"margin-top\" : utils.when($is-headline, get(\"headline-margin-top\"), null),\n    \"responsive\" : true,\n    \"helper-class\" : utils.when($is-headline, false, true),\n    \"helper-class-prefixed\" : true,\n    \"base-class\" : utils.when($is-headline, true, false),\n    \"base-class-prefixed\" : false,\n    \"color\" : utils.when($is-headline, \"headline\", null)\n  );\n",
              "line": {
                "start": 145,
                "end": 159
              }
            }
          },
          {
            "description": "Creates a size map \n- This is just an accelerator for creating a size map\n- This is opinionated about how sizes are setup, headlines get (margins, bold, headline color) and are base classes while non-headlines are added as helper classes and do not get (margins, bold, color)\n- You can pass your own size maps using set-sizes()\n",
            "context": {
              "type": "function",
              "name": "new-size",
              "code": "\n  @return (\n    \"font-size\": $font-size,\n    \"font-weight\" : utils.when($is-headline, get(\"font-weight-bold\"), null), \n    \"line-height\": $line-height,\n    \"margin-bottom\" : utils.when($is-headline, get(\"margin-bottom\"), null),\n    \"margin-top\" : utils.when($is-headline, get(\"headline-margin-top\"), null),\n    \"responsive\" : true,\n    \"helper-class\" : utils.when($is-headline, false, true),\n    \"helper-class-prefixed\" : true,\n    \"base-class\" : utils.when($is-headline, true, false),\n    \"base-class-prefixed\" : false,\n    \"color\" : utils.when($is-headline, \"headline\", null)\n  );\n",
              "line": {
                "start": 145,
                "end": 159
              }
            }
          },
          {
            "description": "Creates a size map \n- This is just an accelerator for creating a size map\n- This is opinionated about how sizes are setup, headlines get (margins, bold, headline color) and are base classes while non-headlines are added as helper classes and do not get (margins, bold, color)\n- You can pass your own size maps using set-sizes()\n",
            "context": {
              "type": "function",
              "name": "new-size",
              "code": "\n  @return (\n    \"font-size\": $font-size,\n    \"font-weight\" : utils.when($is-headline, get(\"font-weight-bold\"), null), \n    \"line-height\": $line-height,\n    \"margin-bottom\" : utils.when($is-headline, get(\"margin-bottom\"), null),\n    \"margin-top\" : utils.when($is-headline, get(\"headline-margin-top\"), null),\n    \"responsive\" : true,\n    \"helper-class\" : utils.when($is-headline, false, true),\n    \"helper-class-prefixed\" : true,\n    \"base-class\" : utils.when($is-headline, true, false),\n    \"base-class-prefixed\" : false,\n    \"color\" : utils.when($is-headline, \"headline\", null)\n  );\n",
              "line": {
                "start": 145,
                "end": 159
              }
            }
          },
          {
            "description": "Creates a size map \n- This is just an accelerator for creating a size map\n- This is opinionated about how sizes are setup, headlines get (margins, bold, headline color) and are base classes while non-headlines are added as helper classes and do not get (margins, bold, color)\n- You can pass your own size maps using set-sizes()\n",
            "context": {
              "type": "function",
              "name": "new-size",
              "code": "\n  @return (\n    \"font-size\": $font-size,\n    \"font-weight\" : utils.when($is-headline, get(\"font-weight-bold\"), null), \n    \"line-height\": $line-height,\n    \"margin-bottom\" : utils.when($is-headline, get(\"margin-bottom\"), null),\n    \"margin-top\" : utils.when($is-headline, get(\"headline-margin-top\"), null),\n    \"responsive\" : true,\n    \"helper-class\" : utils.when($is-headline, false, true),\n    \"helper-class-prefixed\" : true,\n    \"base-class\" : utils.when($is-headline, true, false),\n    \"base-class-prefixed\" : false,\n    \"color\" : utils.when($is-headline, \"headline\", null)\n  );\n",
              "line": {
                "start": 145,
                "end": 159
              }
            }
          },
          {
            "description": "Creates a size map \n- This is just an accelerator for creating a size map\n- This is opinionated about how sizes are setup, headlines get (margins, bold, headline color) and are base classes while non-headlines are added as helper classes and do not get (margins, bold, color)\n- You can pass your own size maps using set-sizes()\n",
            "context": {
              "type": "function",
              "name": "new-size",
              "code": "\n  @return (\n    \"font-size\": $font-size,\n    \"font-weight\" : utils.when($is-headline, get(\"font-weight-bold\"), null), \n    \"line-height\": $line-height,\n    \"margin-bottom\" : utils.when($is-headline, get(\"margin-bottom\"), null),\n    \"margin-top\" : utils.when($is-headline, get(\"headline-margin-top\"), null),\n    \"responsive\" : true,\n    \"helper-class\" : utils.when($is-headline, false, true),\n    \"helper-class-prefixed\" : true,\n    \"base-class\" : utils.when($is-headline, true, false),\n    \"base-class-prefixed\" : false,\n    \"color\" : utils.when($is-headline, \"headline\", null)\n  );\n",
              "line": {
                "start": 145,
                "end": 159
              }
            }
          },
          {
            "description": "Print a typography size (font-size, line-height)\n",
            "context": {
              "type": "mixin",
              "name": "size",
              "code": "\n  $size: $name;\n  // Allow custom maps\n  @if (meta.type-of($name) == \"string\") {\n    $size: get-size($name);\n  }\n  @if ($changes) {\n    $size: map.merge($size, $changes);\n  }\n  $font-size: get-size-converted-value($size, \"font-size\");\n  $breakpoints: map.get($size, \"breakpoints\");\n  $responsive: map.get($size, \"responsive\");\n  $color: map.get($size, \"color\");\n\n  font-size: $font-size;\n  @if ($responsive) {\n    @if (meta.type-of($responsive) == \"number\") {\n      @include font-size-responsive($font-size, $responsive);\n    } @else {\n      @include font-size-responsive($font-size);\n    }\n  }\n  @if (not $only-font-size) {\n    font-weight: get-size-value($size, \"font-weight\");\n    font-family: get-size-value($size, \"font-family\");\n    font-variation-settings: get-size-value($size, \"font-variation-settings\");\n    line-height: get-size-converted-value($size, \"line-height\");\n    margin-top: get-size-converted-value($size, \"margin-top\");\n    margin-bottom: get-size-converted-value($size, \"margin-bottom\");\n    color: utils.when($color, color.get($color), null);\n  }\n\n  // If they have breakpoints, process them\n  @if $breakpoints {\n    @each $name, $breakpoint in $breakpoints {\n      $direction: map.get($breakpoint, \"direction\");\n      @include breakpoint.from($name, $direction) {\n        @include size($breakpoint, null, $only-font-size);\n      }\n    }\n  }\n",
              "line": {
                "start": 328,
                "end": 369
              }
            }
          },
          {
            "description": "If the value passed is equal to true use the default, else return the value\n",
            "context": {
              "type": "function",
              "name": "default",
              "code": "\n  @return when($value == true, $default, $value);\n",
              "line": {
                "start": 507,
                "end": 509
              }
            }
          },
          {
            "description": "Replaces all or one occurrence of a string within a string\n",
            "context": {
              "type": "function",
              "name": "string-replace",
              "code": "\n\n  $index: string.index($string, $find);\n  \n  @if ($index) {\n    $start: when($index == 1, \"\", string.slice($string, 1, string.length($find) - 1));\n    $end: string.slice($string, $index + string.length($find));\n    $new: $start + $replace;\n    @if ($all) {\n      @return $new + string-replace($end, $find, $replace);\n    } @else {\n      @return $new + $end;\n    }\n  } @else {\n    @return $string;\n  }\n",
              "line": {
                "start": 517,
                "end": 533
              }
            }
          },
          {
            "description": "Resolve spacing info (ie. margin/padding like arguments)\n- Will normalize the argument that may be shorthand or single value\n- Used for programmatic things with single value config options for padding/margin\n\n",
            "context": {
              "type": "function",
              "name": "get-spacing",
              "code": "\n  @if (not is-list($value)) {\n    @return (\n      \"top\" :    $value,\n      \"right\" :  $value,\n      \"bottom\" : $value,\n      \"left\" :   $value,\n    );\n  }\n\n  $length: list.length($value);\n  $top: list.nth($value, 1);  // Top is always the same\n\n  @if ($length > 4) {\n    @error \"Spacing has more than 4 arguments (not correct shorthand)\";\n  }\n\n  @return (\n    \"top\" :    $top,\n    \"right\" :  list.nth($value, when($length >= 2, 2, 1)),\n    \"bottom\" : list.nth($value, when($length >= 3, 3, 1)),\n    \"left\" :   list.nth($value, when($length == 4, 4, when($length >= 2, 2, 1)))\n  );\n",
              "line": {
                "start": 615,
                "end": 638
              }
            }
          },
          {
            "description": "Resolve spacing info (ie. margin/padding like arguments)\n- Will normalize the argument that may be shorthand or single value\n- Used for programmatic things with single value config options for padding/margin\n\n",
            "context": {
              "type": "function",
              "name": "get-spacing",
              "code": "\n  @if (not is-list($value)) {\n    @return (\n      \"top\" :    $value,\n      \"right\" :  $value,\n      \"bottom\" : $value,\n      \"left\" :   $value,\n    );\n  }\n\n  $length: list.length($value);\n  $top: list.nth($value, 1);  // Top is always the same\n\n  @if ($length > 4) {\n    @error \"Spacing has more than 4 arguments (not correct shorthand)\";\n  }\n\n  @return (\n    \"top\" :    $top,\n    \"right\" :  list.nth($value, when($length >= 2, 2, 1)),\n    \"bottom\" : list.nth($value, when($length >= 3, 3, 1)),\n    \"left\" :   list.nth($value, when($length == 4, 4, when($length >= 2, 2, 1)))\n  );\n",
              "line": {
                "start": 615,
                "end": 638
              }
            }
          },
          {
            "description": "Resolve spacing info (ie. margin/padding like arguments)\n- Will normalize the argument that may be shorthand or single value\n- Used for programmatic things with single value config options for padding/margin\n\n",
            "context": {
              "type": "function",
              "name": "get-spacing",
              "code": "\n  @if (not is-list($value)) {\n    @return (\n      \"top\" :    $value,\n      \"right\" :  $value,\n      \"bottom\" : $value,\n      \"left\" :   $value,\n    );\n  }\n\n  $length: list.length($value);\n  $top: list.nth($value, 1);  // Top is always the same\n\n  @if ($length > 4) {\n    @error \"Spacing has more than 4 arguments (not correct shorthand)\";\n  }\n\n  @return (\n    \"top\" :    $top,\n    \"right\" :  list.nth($value, when($length >= 2, 2, 1)),\n    \"bottom\" : list.nth($value, when($length >= 3, 3, 1)),\n    \"left\" :   list.nth($value, when($length == 4, 4, when($length >= 2, 2, 1)))\n  );\n",
              "line": {
                "start": 615,
                "end": 638
              }
            }
          },
          {
            "description": "Resolve spacing info (ie. margin/padding like arguments)\n- Will normalize the argument that may be shorthand or single value\n- Used for programmatic things with single value config options for padding/margin\n\n",
            "context": {
              "type": "function",
              "name": "get-spacing",
              "code": "\n  @if (not is-list($value)) {\n    @return (\n      \"top\" :    $value,\n      \"right\" :  $value,\n      \"bottom\" : $value,\n      \"left\" :   $value,\n    );\n  }\n\n  $length: list.length($value);\n  $top: list.nth($value, 1);  // Top is always the same\n\n  @if ($length > 4) {\n    @error \"Spacing has more than 4 arguments (not correct shorthand)\";\n  }\n\n  @return (\n    \"top\" :    $top,\n    \"right\" :  list.nth($value, when($length >= 2, 2, 1)),\n    \"bottom\" : list.nth($value, when($length >= 3, 3, 1)),\n    \"left\" :   list.nth($value, when($length == 4, 4, when($length >= 2, 2, 1)))\n  );\n",
              "line": {
                "start": 615,
                "end": 638
              }
            }
          },
          {
            "description": "Get's the info about a border shorthand\n",
            "context": {
              "type": "function",
              "name": "border-info",
              "code": "\n  $width: 0;\n  $style: solid;\n  $color: null;\n\n  $items: when(is-list($border), $border, ($border,));\n  $length: list.length($items);\n\n  @if ($length == 1) {\n    // [style]\n    $style: list.nth($items, 1);\n  } @else if ($length == 2) {\n    // [width, style]\n    $width: list.nth($items, 1);\n    $style: list.nth($items, 2);\n  } @else if ($length >= 3) {\n    // Assume [width, style, color]\n    $width: list.nth($items, 1);\n    $style: list.nth($items, 2);\n    $color: list.nth($items, 3);\n  }\n\n  @return (\n    \"width\": $width,\n    \"style\": $style,\n    \"color\": $color,\n  );\n",
              "line": {
                "start": 721,
                "end": 748
              }
            }
          },
          {
            "description": "Always returns a map\n",
            "context": {
              "type": "function",
              "name": "ensure-map",
              "code": "\n  @return when(is-map($value), $value, ());\n",
              "line": {
                "start": 966,
                "end": 968
              }
            }
          }
        ]
      },
      {
        "id": "function-if-type",
        "title": "if-type()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-if-type",
        "description": "Provide a default when value type is not correct\n",
        "commentRange": {
          "start": 159,
          "end": 173
        },
        "context": {
          "type": "function",
          "name": "if-type",
          "code": "\n  @if meta.type-of($value) == $type {\n    @return $value;\n  } @else {\n    @return $fallback;\n  }\n",
          "line": {
            "start": 175,
            "end": 181
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "type",
            "description": "type of value it should be"
          },
          {
            "type": "String",
            "name": "value",
            "description": "the value to provide if it is that type"
          },
          {
            "type": "String",
            "name": "fallback",
            "description": "the fallback value"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "$user-accent-color: #FE5F55;\n$user-error-color: \"##C6ECAE\";\n$default-color: #777DA7;\n.accent-color {\n  background-color: ulu.utils-if-type(\"color\", $user-accent-color, $default-color);\n}\n.error-color {\n  background-color: ulu.utils-if-type(\"color\", $user-error-color, $default-color);\n}",
            "description": "Example usage",
            "modifier": "compile"
          }
        ],
        "return": {
          "type": "CssValue",
          "description": "Returns the value or the fallback."
        },
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        }
      },
      {
        "id": "function-number-info",
        "title": "number-info()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-number-info",
        "description": "Returns number unit info, and strips the unit\n",
        "commentRange": {
          "start": 183,
          "end": 195
        },
        "context": {
          "type": "function",
          "name": "number-info",
          "code": "\n\n  @if (meta.type-of($number) == 'number') {\n    @if (math.is-unitless($number)) {\n      @return (\n        \"unit\": null,\n        \"value\": $number,\n        \"invalid\" : false\n      );\n    } @else {\n      @return (\n        \"unit\": math.unit($number),\n        \"value\": strip-unit($number),\n        \"invalid\" : false\n      );\n    }\n  } @else {\n    @if ($errors) {\n      @error \"Expected Number, got #{ meta.type-of($number) } for #{ $number }\";\n    }\n    @return (\n      \"unit\": null,\n      \"value\": $number,\n      \"invalid\" : true\n    );\n  }\n",
          "line": {
            "start": 197,
            "end": 223
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "number",
            "description": "Number to get meta info for"
          }
        ],
        "return": {
          "type": "Map",
          "description": "With properties (unit, value, invalid [true/false if not number])"
        },
        "example": [
          {
            "type": "scss",
            "code": "$size-info: ulu.utils-number-info(24px);\n$size-info-invalid: ulu.utils-number-info(\"Twenty Four Pixels\");\n.number-info-result {\n  content: meta.inspect($size-info);\n}\n.number-info-invalid-result {\n  content: meta.inspect($size-info-invalid);\n}",
            "description": "Example usage",
            "modifier": "compile"
          }
        ],
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "strip-unit"
          }
        ],
        "throw": [
          "Expected Number, got #{ meta.type-of($number) } for #{ $number }"
        ],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        },
        "usedBy": [
          {
            "description": "For legacy aspect ratio conversion\n- For a given value if it's a percentage number convert to css aspect ratio like 16/9\n",
            "context": {
              "type": "function",
              "name": "normalize-aspect-ratio",
              "code": "\n  @if is-number($value) and not math.is-unitless($value) {\n    $info: number-info($value);\n    @if ($info) {\n      $u: map.get($info, \"unit\");\n      $v: map.get($info, \"value\");\n      @if $u == \"%\" {\n        @return string.unquote(\"100 / #{ $v }\");\n      }\n    }\n  }\n  @if is-string($value) {\n    @return string.unquote($value);\n  }\n  @return $value;\n",
              "line": {
                "start": 999,
                "end": 1014
              }
            }
          }
        ]
      },
      {
        "id": "function-add-unit",
        "title": "add-unit()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-add-unit",
        "description": "Adds unit to unitless number\n",
        "commentRange": {
          "start": 225,
          "end": 236
        },
        "context": {
          "type": "function",
          "name": "add-unit",
          "code": "\n  @return $number + string.unquote($unit);\n",
          "line": {
            "start": 238,
            "end": 240
          }
        },
        "parameter": [
          {
            "type": "Number",
            "name": "number",
            "description": "The unitless number to add unit to"
          },
          {
            "type": "String",
            "name": "unit",
            "description": "The unit to add to number"
          }
        ],
        "return": {
          "type": "String",
          "description": "Number with unit attached (can't be used in maths)"
        },
        "example": [
          {
            "type": "scss",
            "code": "$number: 12;\n$unit: \"px\";\n$number-with-unit: ulu.utils-add-unit($number, $unit);\n.add-unit-result {\n  content: $number-with-unit;\n}",
            "description": "Example usage",
            "modifier": "compile"
          }
        ],
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        }
      },
      {
        "id": "function-units-match",
        "title": "units-match()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-units-match",
        "description": "Checks if two numbers are the same unit\n",
        "commentRange": {
          "start": 242,
          "end": 257
        },
        "context": {
          "type": "function",
          "name": "units-match",
          "code": "\n  @return math.unit($number) == math.unit($other-number);\n",
          "line": {
            "start": 259,
            "end": 261
          }
        },
        "parameter": [
          {
            "type": "Number",
            "name": "number"
          },
          {
            "type": "String",
            "name": "other-number"
          }
        ],
        "return": {
          "type": "Boolean",
          "description": "Whether they have the same unit type\nCould be made into multiple arguments in future if needed"
        },
        "example": [
          {
            "type": "scss",
            "code": "$number-1: 12px;\n$number-2: 12px;\n$number-3: 12rem;\n.positive-result {\n  content: ulu.utils-units-match($number-1, $number-2);\n}\n.negative-result {\n  content: ulu.utils-units-match($number-1, $number-3);\n}",
            "description": "Example usage",
            "modifier": "compile"
          }
        ],
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        }
      },
      {
        "id": "function-map-merge",
        "title": "map-merge()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-map-merge",
        "description": "Reusable merge method \n",
        "commentRange": {
          "start": 263,
          "end": 294
        },
        "context": {
          "type": "function",
          "name": "map-merge",
          "code": "\n  @if ($mode == \"deep\") {\n    @return map.deep-merge($original, $changes);\n  } @else if ($mode == \"overwrite\") {\n    @return $changes;\n  } @else {\n    @return map.merge($original, $changes);\n  }\n",
          "line": {
            "start": 296,
            "end": 304
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "original",
            "description": "Source map"
          },
          {
            "type": "Map",
            "name": "changes",
            "description": "Changes to merge into source map"
          },
          {
            "type": "String",
            "name": "mode",
            "description": "How to merge changes (merge [defualt], deep, or overwrite)"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "$map-1: (\n  \"inner-map\" : (\n    \"color\" : \"green\",\n    \"secondary-color\" : \"green\"\n  ),\n  \"color\" : \"green\",\n  \"secondary-color\" : \"green\"\n);\n$map-2: (\n  \"inner-map\" : (\n    \"color\" : \"red\"\n  ),\n  \"color\" : \"red\",\n);\n.result-default {\n  $merged-map: ulu.utils-map-merge($map-1, $map-2);\n  content: meta.inspect($merged-map);\n}\n.result-deep {\n  $merged-map-deep: ulu.utils-map-merge($map-1, $map-2, \"deep\");\n  content: meta.inspect($merged-map-deep);\n}\n.result-overwrite {\n  $merged-map-overwrite: ulu.utils-map-merge($map-1, $map-2, \"overwrite\");\n  content: meta.inspect($merged-map-overwrite);\n}",
            "description": "Example usage",
            "modifier": "compile"
          }
        ],
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        },
        "usedBy": [
          {
            "description": "Update the breakpoint sizes map\n",
            "context": {
              "type": "mixin",
              "name": "set-sizes",
              "code": "\n  $sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 66,
                "end": 68
              }
            }
          },
          {
            "description": "Set button styles \n- See $styles for example of structure of map\n",
            "context": {
              "type": "mixin",
              "name": "set-styles",
              "code": "\n  $styles: utils.map-merge($styles, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 166,
                "end": 168
              }
            }
          },
          {
            "description": "Set Button Sizes\n- See $sizes for example of structure of map\n",
            "context": {
              "type": "mixin",
              "name": "set-sizes",
              "code": "\n  $sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 175,
                "end": 177
              }
            }
          },
          {
            "description": "Set color contexts\n",
            "context": {
              "type": "mixin",
              "name": "set-contexts",
              "code": "\n  $contexts: utils.map-merge($contexts, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 150,
                "end": 152
              }
            }
          },
          {
            "description": "Sets rule margins\n",
            "context": {
              "type": "mixin",
              "name": "set-rule-margins",
              "code": "\n  $rule-margins: utils.map-merge($rule-margins, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 124,
                "end": 126
              }
            }
          },
          {
            "description": "Change widths config\n",
            "context": {
              "type": "mixin",
              "name": "set-widths",
              "code": "\n  $widths: utils.map-merge($widths, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 75,
                "end": 77
              }
            }
          },
          {
            "description": "Change max-widths config\n",
            "context": {
              "type": "mixin",
              "name": "set-max-widths",
              "code": "\n  $max-widths: utils.map-merge($max-widths, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 113,
                "end": 115
              }
            }
          },
          {
            "description": "Set layout containers\n- See the $containers variable for example of container properties\n",
            "context": {
              "type": "mixin",
              "name": "set-containers",
              "code": "\n  $containers: utils.map-merge($containers, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 146,
                "end": 148
              }
            }
          },
          {
            "description": "Set the theme variations\n",
            "context": {
              "type": "mixin",
              "name": "set-tokens",
              "code": "\n  $tokens: utils.map-merge($tokens, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 53,
                "end": 55
              }
            }
          },
          {
            "description": "Configure the typography sizes\n",
            "context": {
              "type": "mixin",
              "name": "set-sizes",
              "code": "\n  $sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 216,
                "end": 218
              }
            }
          },
          {
            "description": "Update the units config\n",
            "context": {
              "type": "mixin",
              "name": "set",
              "code": "\n  $config: utils.map-merge($config, $changes, $merge-mode) !global;\n",
              "line": {
                "start": 36,
                "end": 38
              }
            }
          },
          {
            "description": "Repeatable pattern in core\n",
            "context": {
              "type": "function",
              "name": "map-merge-or-overwrite",
              "code": "\n  $mode: null;\n  @if $deep {\n    $mode: \"deep\";\n  } @else if $overwrite {\n    $mode: \"overwrite\";\n  }\n  @return map-merge($original, $changes, $mode);\n",
              "line": {
                "start": 372,
                "end": 380
              }
            }
          }
        ]
      },
      {
        "id": "function-list-merge",
        "title": "list-merge()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-list-merge",
        "description": "List merge utility aligned with map-merge, will merge lists (deduplication) or overwrite\n- Used for configuring lists (such as component-set-includes())\n",
        "commentRange": {
          "start": 306,
          "end": 323
        },
        "context": {
          "type": "function",
          "name": "list-merge",
          "code": "\n  @if ($mode == \"overwrite\") {\n    @return $changes;\n  // Unique Merge (Deduplicated)\n  } @else if ($mode == null or $mode == \"merge\") {\n    $result: $original;\n    @each $item in $changes {\n      @if not list.index($result, $item) {\n        $result: list.append($result, $item);\n      }\n    }\n    @return $result;\n  } @else {\n    @warn \"Unknown list-merge mode: '#{ $mode }'. No changes applied. Please use 'overwrite' or 'merge' or null (default)\";\n    @return $original;\n  }\n",
          "line": {
            "start": 325,
            "end": 341
          }
        },
        "parameter": [
          {
            "type": "List",
            "name": "original",
            "description": "The base list"
          },
          {
            "type": "List",
            "name": "changes",
            "description": "The new values to add"
          },
          {
            "type": "String",
            "name": "mode",
            "default": "null",
            "description": "\"overwrite\" or \"merge\" (default null will merge)"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "$list-1: (\"a\", \"b\", \"c\");\n$list-2:(\"a\", \"d\", \"e\");\n\n.result-default {\n  $merged-map: ulu.utils-list-merge($list-1, $list-2);\n  content: meta.inspect($merged-map);\n}\n.result-overwrite {\n  $merged-map-deep: ulu.utils-map-merge($list-1, $list-2, \"overwrite\");\n  content: meta.inspect($merged-map-deep);\n}",
            "description": "Example usage",
            "modifier": "compile"
          }
        ],
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        }
      },
      {
        "id": "function-map-has",
        "title": "map-has()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-map-has",
        "description": "Returns true/false if map has property\n",
        "commentRange": {
          "start": 343,
          "end": 360
        },
        "context": {
          "type": "function",
          "name": "map-has",
          "code": "\n  @if (not is-map($map)) {\n    @error \"map-has(): Incorrect type for $map (should be map) got (#{ $type-passed })\";\n  }\n  @return map.get($map, $key) != null;\n",
          "line": {
            "start": 362,
            "end": 367
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "map",
            "description": "Source map"
          },
          {
            "type": "String",
            "name": "key",
            "description": "Property to check for"
          }
        ],
        "return": {
          "type": "Boolean"
        },
        "example": [
          {
            "type": "scss",
            "code": "$map-1 : (\n  \"has-key\" : true\n);\n$map-2 : (\n  \"missing-key\" : true\n);\n.map-1 {\n  content: ulu.utils-map-has($map-1, \"has-key\");\n}\n.map-2 {\n  content: ulu.utils-map-has($map-2, \"has-key\");\n}",
            "description": "Example usage",
            "modifier": "compile"
          }
        ],
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "is-map"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "throw": [
          "map-has(): Incorrect type for $map (should be map) got (#{ $type-passed })"
        ],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        },
        "usedBy": [
          {
            "description": "Check if a typography size exists\n",
            "context": {
              "type": "function",
              "name": "has-size",
              "code": "\n  @return utils.map-has($sizes, $name);\n",
              "line": {
                "start": 232,
                "end": 234
              }
            }
          }
        ]
      },
      {
        "id": "function-map-merge-or-overwrite",
        "title": "map-merge-or-overwrite()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-map-merge-or-overwrite",
        "description": "Repeatable pattern in core\n",
        "commentRange": {
          "start": 369,
          "end": 370
        },
        "context": {
          "type": "function",
          "name": "map-merge-or-overwrite",
          "code": "\n  $mode: null;\n  @if $deep {\n    $mode: \"deep\";\n  } @else if $overwrite {\n    $mode: \"overwrite\";\n  }\n  @return map-merge($original, $changes, $mode);\n",
          "line": {
            "start": 372,
            "end": 380
          }
        },
        "deprecated": "Left in for compatibility, will be removed, use map-merge with mode",
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "map-merge"
          }
        ],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        }
      },
      {
        "id": "function-fallback",
        "title": "fallback()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-fallback",
        "description": "Utility for providing fallbacks, the first truthy value (non false or null) will be returned\n",
        "commentRange": {
          "start": 382,
          "end": 394
        },
        "context": {
          "type": "function",
          "name": "fallback",
          "code": "\n  @each $arg in $args {\n    @if ($arg) {\n      @return $arg;\n    }\n  }\n  @return null;\n",
          "line": {
            "start": 396,
            "end": 403
          }
        },
        "return": {
          "type": "*",
          "description": "The first truthy value"
        },
        "example": [
          {
            "type": "scss",
            "code": "$fallback-text: \"No input received\";\n.user-name:after {\n  $user-name: \"Johnny\";\n  content: ulu.utils-fallback($user-name, $fallback-text);\n}\n.user-birthdate:after {\n  $user-birthdate: null;\n  content: ulu.utils-fallback($user-birthdate, $fallback-text);\n}",
            "description": "Example usage",
            "modifier": "compile"
          }
        ],
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        },
        "usedBy": [
          {
            "description": "Used to allow global prefixing of classes, and also the ability to \nChange a class used in the system (ie. like a component for example)\n",
            "context": {
              "type": "function",
              "name": "class",
              "code": "\n  // Check if it's a wildcard\n  $wildcard: -get-class-wildcard($class);\n  $override: map.get($-class-overrides, $class);\n  $updated: utils.fallback($override, $wildcard, $class);\n  $name: \"#{ get(\"prefix\") }#{ $updated }\";\n  @if $name-only {\n    @return $name;\n  } @else {\n    @return \".#{ $name }\";\n  }\n",
              "line": {
                "start": 67,
                "end": 78
              }
            }
          }
        ]
      },
      {
        "id": "function-map-fallback",
        "title": "map-fallback()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-map-fallback",
        "description": "Provides fallback values from the same map\n",
        "commentRange": {
          "start": 405,
          "end": 417
        },
        "context": {
          "type": "function",
          "name": "map-fallback",
          "code": "\n  @each $prop in $properties {\n    $value: map.get($map, $prop);\n    @if ($value) {\n      @return $value;\n    }\n  }\n  @return null;\n",
          "line": {
            "start": 419,
            "end": 427
          }
        },
        "return": {
          "type": "*"
        },
        "example": [
          {
            "type": "scss",
            "code": "$map: (\n  \"name\": doug,\n  \"gpa\": \"3\",\n  \"grade\": \"B\",\n);\n.fallback-map {\n  // iterates through properties until it finds one that is a key in the map. \n  content: ulu.utils-map-fallback($map, \"gpa\", \"grade\", \"average\");\n}",
            "description": "Example usage",
            "modifier": "compile"
          }
        ],
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        }
      },
      {
        "id": "function-map-contains-any",
        "title": "map-contains-any()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-map-contains-any",
        "description": "Checks if a map contains one or more of the keys\n",
        "commentRange": {
          "start": 430,
          "end": 446
        },
        "context": {
          "type": "function",
          "name": "map-contains-any",
          "code": "\n  @if (not is-map($map)) {\n    @error \"map-contains-any(): Incorrect type for $map (should be map)\";\n  }\n  @if (not is-list($keys)) {\n    @error \"map-contains-any(): Incorrect type for $keys (should be list)\";\n  }\n  @each $key in $keys {\n    @if map.has-key($map, $key) {\n      @if map.get($options, \"with-value\") {\n        @if map.get($map, $key) != null {\n          @return true;\n        }\n      } @else {\n        @return true;\n      }\n    }\n  }\n  @return false;\n",
          "line": {
            "start": 447,
            "end": 466
          }
        },
        "parameter": [
          {
            "type": "Map",
            "name": "map",
            "description": "The map to check"
          },
          {
            "type": "List",
            "name": "keys",
            "description": "The list of keys to check for"
          },
          {
            "type": "List",
            "name": "options",
            "description": "Options for how this behaves"
          },
          {
            "type": "List",
            "name": "options.with-value",
            "description": "Requires that at least one of the map entries from the list has a value other than null"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "$map : (\n  \"has-key\" : true\n);\n$keys : (\n  \"has-key\",\n  \"needs-key\",\n);\n.map-contains-any-result {\n  content: ulu.utils-map-contains-any($map, $keys);\n}",
            "description": "Example usage",
            "modifier": "compile"
          }
        ],
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "is-map"
          },
          {
            "type": "function",
            "name": "is-list"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "throw": [
          "map-contains-any(): Incorrect type for $map (should be map)",
          "map-contains-any(): Incorrect type for $keys (should be list)"
        ],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        }
      },
      {
        "id": "function-function-fallback",
        "title": "function-fallback()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-function-fallback",
        "description": "Helps in providing a dynamic fallback for modules whose defaults should come from another\n",
        "commentRange": {
          "start": 468,
          "end": 474
        },
        "context": {
          "type": "function",
          "name": "function-fallback",
          "code": "\n  $arguments: null;\n  // If there was already a value return it else resolve through passed function\n  @if ($value == true)  {\n    $function: map.get($lookup, $prop);\n    // Allow user to pass a nested map to route to another property\n    @if (meta.type-of($function) == \"map\") {\n      $functionMap: $function;\n      $function: map.get($functionMap, \"function\");\n      $prop: map.get($functionMap, \"property\");\n      // Arguments will override everything (allow calling functions with args)\n      $arguments: map.get($functionMap, \"arguments\");\n    }\n    @if ($function) { \n      @if ($arguments) {\n        @if (meta.type-of($arguments) == \"list\") {\n          @return meta.call($function, $arguments...);\n        } @else {\n          @error \"Arguments must be a list, use single list for single argument ie '(3,)'\";\n        }\n      } @else {\n        @return meta.call($function, $prop);\n      }\n    } \n  }\n  @return $value;\n",
          "line": {
            "start": 476,
            "end": 502
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "prop",
            "description": "Property trying to get fallback for"
          },
          {
            "type": "*",
            "name": "value",
            "description": "The value that may need the fallback"
          },
          {
            "type": "Map",
            "name": "lookup",
            "description": "Map of properties to functions (use sass:meta > meta.get-function to populate)"
          }
        ],
        "return": {
          "type": "*",
          "description": "The user's original value, or if the value is true get the default value from the provided function"
        },
        "example": [
          {
            "type": "scss",
            "code": "",
            "description": "Example usage",
            "modifier": "compile"
          }
        ],
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "throw": [
          "Arguments must be a list, use single list for single argument ie "
        ],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        },
        "usedBy": [
          {
            "description": "Get a config option\n",
            "context": {
              "type": "function",
              "name": "get",
              "code": "\n  $value: utils.require-map-get($config, $name, \"button [config]\");\n  @return utils.function-fallback($name, $value, $-fallbacks);\n",
              "line": {
                "start": 156,
                "end": 159
              }
            }
          }
        ]
      },
      {
        "id": "function-default",
        "title": "default()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-default",
        "description": "If the value passed is equal to true use the default, else return the value\n",
        "commentRange": {
          "start": 504,
          "end": 506
        },
        "context": {
          "type": "function",
          "name": "default",
          "code": "\n  @return when($value == true, $default, $value);\n",
          "line": {
            "start": 507,
            "end": 509
          }
        },
        "parameter": [
          {
            "type": "*",
            "name": "value",
            "description": "The value to check"
          },
          {
            "type": "*",
            "name": "default",
            "description": "The value to return when true"
          }
        ],
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "when"
          }
        ],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        }
      },
      {
        "id": "function-string-replace",
        "title": "string-replace()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-string-replace",
        "description": "Replaces all or one occurrence of a string within a string\n",
        "commentRange": {
          "start": 511,
          "end": 515
        },
        "context": {
          "type": "function",
          "name": "string-replace",
          "code": "\n\n  $index: string.index($string, $find);\n  \n  @if ($index) {\n    $start: when($index == 1, \"\", string.slice($string, 1, string.length($find) - 1));\n    $end: string.slice($string, $index + string.length($find));\n    $new: $start + $replace;\n    @if ($all) {\n      @return $new + string-replace($end, $find, $replace);\n    } @else {\n      @return $new + $end;\n    }\n  } @else {\n    @return $string;\n  }\n",
          "line": {
            "start": 517,
            "end": 533
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "string",
            "description": "String to operate on"
          },
          {
            "type": "String",
            "name": "find",
            "description": "String to find within string"
          },
          {
            "type": "String",
            "name": "replace",
            "description": "String to replace found strings"
          },
          {
            "type": "Boolean",
            "name": "all",
            "description": "Default true replace all matches, if false replace only first"
          }
        ],
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "when"
          }
        ],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        }
      },
      {
        "id": "function-list-remove",
        "title": "list-remove()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-list-remove",
        "description": "Remove an item from a list (not map)\n- Used for excluding things or as general utility\n",
        "commentRange": {
          "start": 535,
          "end": 539
        },
        "context": {
          "type": "function",
          "name": "list-remove",
          "code": "\n  $new-list: (); \n  @each $item in $list {\n    @if $item != $remove {\n      $new-list: list.append($new-list, $item); \n    }\n  }\n  @return $new-list;\n",
          "line": {
            "start": 541,
            "end": 549
          }
        },
        "parameter": [
          {
            "type": "List",
            "name": "list",
            "description": "String to operate on"
          },
          {
            "type": "*",
            "name": "remove",
            "description": "Element in the list to remove"
          }
        ],
        "return": {
          "type": "List",
          "description": "New list with item removed"
        },
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        }
      },
      {
        "id": "function-list-without",
        "title": "list-without()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-list-without",
        "description": "Remove an item from a list (not map)\n- Used for excluding things or as general utility\n",
        "commentRange": {
          "start": 551,
          "end": 555
        },
        "context": {
          "type": "function",
          "name": "list-without",
          "code": "\n  $new-list: ();\n  @each $item in $list {\n    @if not list.index($removal-list, $item) { \n      $new-list: list.append($new-list, $item);\n    }\n  }\n  @return $new-list;\n",
          "line": {
            "start": 557,
            "end": 565
          }
        },
        "parameter": [
          {
            "type": "List",
            "name": "list",
            "description": "String to operate on"
          },
          {
            "type": "List",
            "name": "remove",
            "description": "List elements that should each be removed"
          }
        ],
        "return": {
          "type": "List",
          "description": "New list with item removed"
        },
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        }
      },
      {
        "id": "function-list-join",
        "title": "list-join()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-list-join",
        "description": "Join a list with a separator\n",
        "commentRange": {
          "start": 567,
          "end": 571
        },
        "context": {
          "type": "function",
          "name": "list-join",
          "code": "\n  $joined: ();\n  $length: list.length($list);\n  @for $i from 1 through $length {\n    $item: list.nth($list, $i);\n    $joined: list.append($joined, $item);\n    @if $i < $length {\n      $joined: list.append($joined, $separator);\n    }\n  }\n  @if ($to-string) {\n    @return #{ $joined };\n  } @else {\n    @return $joined;\n  }\n",
          "line": {
            "start": 573,
            "end": 588
          }
        },
        "parameter": [
          {
            "type": "List",
            "name": "list",
            "description": "List to join"
          },
          {
            "type": "String",
            "name": "separator",
            "default": "\", \"",
            "description": "Separator to use"
          },
          {
            "type": "Boolean",
            "name": "to-string",
            "default": "true",
            "description": "The resulting list with join separator will be converted to a string (false will return new list with separators added between original items"
          }
        ],
        "return": {
          "type": "String|List",
          "description": "If separator was +, the result would be \"value1 + value2\" or (value1, \"+\", value2) depending on $to-string argument"
        },
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        },
        "usedBy": [
          {
            "description": "Joins a list of cssvar names\n- Use to \"+\", \"-\" and then use in calc\n- Accepts standard names (applies prefix) or raw \"var(...)\" / \"calc(...)\" strings\n- Accepts raw values (numbers like 100vh) so they can be used in calculations\n",
            "context": {
              "type": "function",
              "name": "join",
              "code": "\n  $values: ();\n\n  @each $name in $names {\n    // Passthrough with out prefix/use if already contains a raw CSS function\n    $is-already-var: utils.is-string($name) and (string.index($name, \"var(\") or string.index($name, \"calc(\"));\n\n    // Passthrough as-is if already custom property or calc, or if it's a number\n    @if ($is-already-var or utils.is-number($name)) {\n      $values: list.append($values, $name);\n    // Else pass it through use so it has prefix/var\n    } @else {\n      $values: list.append($values, use($name));\n    }\n  }\n\n  @return utils.list-join($values, $separator);\n",
              "line": {
                "start": 201,
                "end": 218
              }
            }
          }
        ]
      },
      {
        "id": "function-get-spacing",
        "title": "get-spacing()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-get-spacing",
        "description": "Resolve spacing info (ie. margin/padding like arguments)\n- Will normalize the argument that may be shorthand or single value\n- Used for programmatic things with single value config options for padding/margin\n\n",
        "commentRange": {
          "start": 590,
          "end": 613
        },
        "context": {
          "type": "function",
          "name": "get-spacing",
          "code": "\n  @if (not is-list($value)) {\n    @return (\n      \"top\" :    $value,\n      \"right\" :  $value,\n      \"bottom\" : $value,\n      \"left\" :   $value,\n    );\n  }\n\n  $length: list.length($value);\n  $top: list.nth($value, 1);  // Top is always the same\n\n  @if ($length > 4) {\n    @error \"Spacing has more than 4 arguments (not correct shorthand)\";\n  }\n\n  @return (\n    \"top\" :    $top,\n    \"right\" :  list.nth($value, when($length >= 2, 2, 1)),\n    \"bottom\" : list.nth($value, when($length >= 3, 3, 1)),\n    \"left\" :   list.nth($value, when($length == 4, 4, when($length >= 2, 2, 1)))\n  );\n",
          "line": {
            "start": 615,
            "end": 638
          }
        },
        "parameter": [
          {
            "type": "Number|List",
            "name": "value",
            "description": "The value to resolve (usually a config option)"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": ".test-spacing-1 {\n  $info: ulu.utils-get-spacing(10px);\n  content: meta.inspect($info);\n}\n.test-spacing-2 {\n  $info: ulu.utils-get-spacing(10px 20px);\n  content: meta.inspect($info);\n}\n.test-spacing-3 {\n  $info: ulu.utils-get-spacing(10px 20px 30px);\n  content: meta.inspect($info);\n}\n.test-spacing-4 {\n  $info: ulu.utils-get-spacing(10px 20px 30px 40px);\n  content: meta.inspect($info);\n}",
            "description": "Testing shorthands",
            "modifier": "compile"
          }
        ],
        "return": {
          "type": "Map",
          "description": "Map with spacing info for each side (top, right, bottom, left)"
        },
        "throw": [
          "Spacing has more than 4 arguments (not correct shorthand)"
        ],
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "is-list"
          },
          {
            "type": "function",
            "name": "when"
          },
          {
            "type": "function",
            "name": "when"
          },
          {
            "type": "function",
            "name": "when"
          },
          {
            "type": "function",
            "name": "when"
          }
        ],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        },
        "usedBy": [
          {
            "description": "Resolve the top spacing value for margin/padding like arguments\n",
            "context": {
              "type": "function",
              "name": "get-spacing-top",
              "code": "\n  @return map.get(get-spacing($value), \"top\");\n",
              "line": {
                "start": 651,
                "end": 653
              }
            }
          },
          {
            "description": "Resolve the right spacing value for margin/padding like arguments\n",
            "context": {
              "type": "function",
              "name": "get-spacing-right",
              "code": "\n  @return map.get(get-spacing($value), \"right\");\n",
              "line": {
                "start": 666,
                "end": 668
              }
            }
          },
          {
            "description": "Resolve the bottom spacing value for margin/padding like arguments\n",
            "context": {
              "type": "function",
              "name": "get-spacing-bottom",
              "code": "\n  @return map.get(get-spacing($value), \"bottom\");\n",
              "line": {
                "start": 681,
                "end": 683
              }
            }
          },
          {
            "description": "Resolve the left spacing value for margin/padding like arguments\n",
            "context": {
              "type": "function",
              "name": "get-spacing-left",
              "code": "\n  @return map.get(get-spacing($value), \"left\");\n",
              "line": {
                "start": 696,
                "end": 698
              }
            }
          }
        ]
      },
      {
        "id": "function-get-spacing-top",
        "title": "get-spacing-top()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-get-spacing-top",
        "description": "Resolve the top spacing value for margin/padding like arguments\n",
        "commentRange": {
          "start": 640,
          "end": 649
        },
        "context": {
          "type": "function",
          "name": "get-spacing-top",
          "code": "\n  @return map.get(get-spacing($value), \"top\");\n",
          "line": {
            "start": 651,
            "end": 653
          }
        },
        "parameter": [
          {
            "type": "Number|List",
            "name": "value",
            "description": "The value to resolve (usually a config option)"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "$user-padding: (1em, 2em, 4em);\n\n.example {\n  top: get-spacing-top($user-padding);\n  // top = 2em\n}",
            "description": "Example of getting top value"
          }
        ],
        "return": {
          "type": "Number"
        },
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get-spacing"
          }
        ],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        }
      },
      {
        "id": "function-get-spacing-right",
        "title": "get-spacing-right()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-get-spacing-right",
        "description": "Resolve the right spacing value for margin/padding like arguments\n",
        "commentRange": {
          "start": 655,
          "end": 664
        },
        "context": {
          "type": "function",
          "name": "get-spacing-right",
          "code": "\n  @return map.get(get-spacing($value), \"right\");\n",
          "line": {
            "start": 666,
            "end": 668
          }
        },
        "parameter": [
          {
            "type": "Number|List",
            "name": "value",
            "description": "The value to resolve (usually a config option)"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "$user-padding: (1em, 2em, 4em);\n\n.example {\n  right: get-spacing-right($user-padding);\n  // right = 2em\n}",
            "description": "Example of getting right value"
          }
        ],
        "return": {
          "type": "Number"
        },
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get-spacing"
          }
        ],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        }
      },
      {
        "id": "function-get-spacing-bottom",
        "title": "get-spacing-bottom()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-get-spacing-bottom",
        "description": "Resolve the bottom spacing value for margin/padding like arguments\n",
        "commentRange": {
          "start": 670,
          "end": 679
        },
        "context": {
          "type": "function",
          "name": "get-spacing-bottom",
          "code": "\n  @return map.get(get-spacing($value), \"bottom\");\n",
          "line": {
            "start": 681,
            "end": 683
          }
        },
        "parameter": [
          {
            "type": "Number|List",
            "name": "value",
            "description": "The value to resolve (usually a config option)"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "$user-padding: (1em, 2em, 4em);\n\n.example {\n  bottom: get-spacing-bottom($user-padding);\n  // bottom = 2em\n}",
            "description": "Example of getting bottom value"
          }
        ],
        "return": {
          "type": "Number"
        },
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get-spacing"
          }
        ],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        }
      },
      {
        "id": "function-get-spacing-left",
        "title": "get-spacing-left()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-get-spacing-left",
        "description": "Resolve the left spacing value for margin/padding like arguments\n",
        "commentRange": {
          "start": 685,
          "end": 694
        },
        "context": {
          "type": "function",
          "name": "get-spacing-left",
          "code": "\n  @return map.get(get-spacing($value), \"left\");\n",
          "line": {
            "start": 696,
            "end": 698
          }
        },
        "parameter": [
          {
            "type": "Number|List",
            "name": "value",
            "description": "The value to resolve (usually a config option)"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": "$user-padding: (1em, 2em, 4em);\n\n.example {\n  left: get-spacing-left($user-padding);\n  // left = 2em\n}",
            "description": "Example of getting left value"
          }
        ],
        "return": {
          "type": "Number"
        },
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get-spacing"
          }
        ],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        }
      },
      {
        "id": "function-border-info",
        "title": "border-info()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-border-info",
        "description": "Get's the info about a border shorthand\n",
        "commentRange": {
          "start": 700,
          "end": 719
        },
        "context": {
          "type": "function",
          "name": "border-info",
          "code": "\n  $width: 0;\n  $style: solid;\n  $color: null;\n\n  $items: when(is-list($border), $border, ($border,));\n  $length: list.length($items);\n\n  @if ($length == 1) {\n    // [style]\n    $style: list.nth($items, 1);\n  } @else if ($length == 2) {\n    // [width, style]\n    $width: list.nth($items, 1);\n    $style: list.nth($items, 2);\n  } @else if ($length >= 3) {\n    // Assume [width, style, color]\n    $width: list.nth($items, 1);\n    $style: list.nth($items, 2);\n    $color: list.nth($items, 3);\n  }\n\n  @return (\n    \"width\": $width,\n    \"style\": $style,\n    \"color\": $color,\n  );\n",
          "line": {
            "start": 721,
            "end": 748
          }
        },
        "parameter": [
          {
            "type": "List|String|Number",
            "name": "border",
            "description": "The border property (ie. 1px solid red)"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": ".test-border-1 {\n  $info: ulu.utils-border-info(solid);\n  content: meta.inspect($info);\n}\n.test-border-2 {\n  $info: ulu.utils-border-info(1px solid);\n  content: meta.inspect($info);\n}\n.test-border-3 {\n  $info: ulu.utils-border-info(1px solid red);\n  content: meta.inspect($info);\n}\n.test-border-var {\n  $info: ulu.utils-border-info(1px solid var(--ulu-color-primary));\n  content: meta.inspect($info);\n}",
            "description": "Testing shorthands and custom properties",
            "modifier": "compile"
          }
        ],
        "return": {
          "type": "Map",
          "description": "Map with info about the border with the following keys (width, style, color)"
        },
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "when"
          },
          {
            "type": "function",
            "name": "is-list"
          }
        ],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        }
      },
      {
        "id": "function-strip-unit",
        "title": "strip-unit()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-strip-unit",
        "description": "Strips the unit from the number\n- Normally this shouldn't be needed\n",
        "commentRange": {
          "start": 750,
          "end": 756
        },
        "context": {
          "type": "function",
          "name": "strip-unit",
          "code": "\n  @if (is-number($value)) {\n    @if (math.is-unitless($value)) {\n      @return $value;\n    } @else {\n      @return math.div($value, ($value * 0 + 1));\n    }\n  } @else {\n    @error \"Expected number, got #{ $value }\";\n  }\n",
          "line": {
            "start": 758,
            "end": 768
          }
        },
        "link": [
          {
            "url": "https://stackoverflow.com/questions/12328259/how-do-you-strip-the-unit-from-any-number-in-sass/12335841#12335841",
            "caption": "Original source (Miriam Suzanne)"
          }
        ],
        "example": [
          {
            "type": "scss",
            "code": ".test {\n  line-height: ulu.utils-strip-unit(4rem);\n}",
            "description": "Example usage",
            "modifier": "compile"
          }
        ],
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "is-number"
          }
        ],
        "throw": [
          "Expected number, got #{ $value }"
        ],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        },
        "usedBy": [
          {
            "description": "Forces conversion to unitless line-height\n",
            "context": {
              "type": "function",
              "name": "unitless-line-height",
              "code": "\n  // Font size is rems, line-height is unknown\n  @if (math.is-unitless($line-height)) {\n    @return $line-height;\n  }\n  $unit: math.unit($line-height);\n  @if ($unit == \"em\") {\n    @return utils.strip-unit($line-height);\n  } @else if ($unit == \"pixels\" or $unit == \"rem\") {\n    $calc: math.div(rem($line-height), rem($font-size));\n    @return utils.strip-unit($calc);\n  } @else {\n    @error \"ULU: Unable to convert to unitless line-height for: #{ $line-height }\";\n  }\n",
              "line": {
                "start": 240,
                "end": 254
              }
            }
          },
          {
            "description": "Forces conversion to unitless line-height\n",
            "context": {
              "type": "function",
              "name": "unitless-line-height",
              "code": "\n  // Font size is rems, line-height is unknown\n  @if (math.is-unitless($line-height)) {\n    @return $line-height;\n  }\n  $unit: math.unit($line-height);\n  @if ($unit == \"em\") {\n    @return utils.strip-unit($line-height);\n  } @else if ($unit == \"pixels\" or $unit == \"rem\") {\n    $calc: math.div(rem($line-height), rem($font-size));\n    @return utils.strip-unit($calc);\n  } @else {\n    @error \"ULU: Unable to convert to unitless line-height for: #{ $line-height }\";\n  }\n",
              "line": {
                "start": 240,
                "end": 254
              }
            }
          },
          {
            "description": "Returns number unit info, and strips the unit\n",
            "context": {
              "type": "function",
              "name": "number-info",
              "code": "\n\n  @if (meta.type-of($number) == 'number') {\n    @if (math.is-unitless($number)) {\n      @return (\n        \"unit\": null,\n        \"value\": $number,\n        \"invalid\" : false\n      );\n    } @else {\n      @return (\n        \"unit\": math.unit($number),\n        \"value\": strip-unit($number),\n        \"invalid\" : false\n      );\n    }\n  } @else {\n    @if ($errors) {\n      @error \"Expected Number, got #{ meta.type-of($number) } for #{ $number }\";\n    }\n    @return (\n      \"unit\": null,\n      \"value\": $number,\n      \"invalid\" : true\n    );\n  }\n",
              "line": {
                "start": 197,
                "end": 223
              }
            }
          },
          {
            "description": "Returns true if number passed is even\n- Allows unit and unitless numbers\n",
            "context": {
              "type": "function",
              "name": "is-even",
              "code": "\n  @if (is-number($number)) {\n    @return strip-unit($number) % 2 == 0;\n  } @else {\n    @error \"Expected Number, got #{ $number }\";\n  }\n",
              "line": {
                "start": 946,
                "end": 952
              }
            }
          }
        ]
      },
      {
        "id": "function-ratio-scale-size",
        "title": "ratio-scale-size()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-ratio-scale-size",
        "description": "Calculate the size of something at a given scale (percentage/exponential)\n",
        "commentRange": {
          "start": 770,
          "end": 775
        },
        "context": {
          "type": "function",
          "name": "ratio-scale-size",
          "code": "\n  @return $base * math.pow($ratio, math.div($size, $sizes));\n",
          "line": {
            "start": 777,
            "end": 779
          }
        },
        "parameter": [
          {
            "type": "Number",
            "name": "base",
            "description": "The number the scale starts at"
          },
          {
            "type": "Number",
            "name": "ratio",
            "description": "The amount the scale changes over one set"
          },
          {
            "type": "Number",
            "name": "sizes",
            "description": "The number of steps in the scale"
          },
          {
            "type": "Number",
            "name": "size",
            "description": "The step you are trying to calculate"
          }
        ],
        "return": {
          "type": "Number"
        },
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [
          {
            "type": "variable",
            "name": "sizes"
          }
        ],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        },
        "usedBy": [
          {
            "description": "Get scale of the base font-size\n",
            "context": {
              "type": "function",
              "name": "scale",
              "code": "\n  @return utils.ratio-scale-size(get(\"font-size\"), get(\"size-ratio\"), get(\"scale-steps\"), $step);\n",
              "line": {
                "start": 90,
                "end": 92
              }
            }
          },
          {
            "description": "Get scale of the line-height\n",
            "context": {
              "type": "function",
              "name": "scale-line-height",
              "code": "\n  @return utils.ratio-scale-size(get(\"line-height\"), get(\"size-line-height-ratio\"), get(\"scale-steps\"), $step);\n",
              "line": {
                "start": 99,
                "end": 101
              }
            }
          }
        ]
      },
      {
        "id": "function-pixel-to-em",
        "title": "pixel-to-em()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-pixel-to-em",
        "description": "Convert from pixel to em\n",
        "commentRange": {
          "start": 781,
          "end": 784
        },
        "context": {
          "type": "function",
          "name": "pixel-to-em",
          "code": "\n  @return math.div($pixels, $base) + 1em;\n",
          "line": {
            "start": 786,
            "end": 788
          }
        },
        "parameter": [
          {
            "type": "Number",
            "name": "pixels",
            "description": "The number the scale starts at"
          },
          {
            "type": "Number",
            "name": "base",
            "description": "How many pixels equal 1em"
          }
        ],
        "return": {
          "type": "Number",
          "description": "Em Conversion"
        },
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        }
      },
      {
        "id": "mixin-responsive-property",
        "title": "responsive-property()",
        "groupName": "utils",
        "path": "/sass/core/utils/#mixin-responsive-property",
        "description": "Provides user with a fallback for a calc that's just an enhancement\n",
        "commentRange": {
          "start": 790,
          "end": 793
        },
        "context": {
          "type": "mixin",
          "name": "responsive-property",
          "code": "\n  #{ $property } : $value;\n  #{ $property } : calc(#{ $value } + #{ $responsive-change });\n",
          "line": {
            "start": 795,
            "end": 802
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "property",
            "description": "The CSS property to set"
          },
          {
            "type": "*",
            "name": "value",
            "description": "The value to set on the property"
          },
          {
            "type": "Css",
            "name": "responsive-change",
            "description": "The amount to change (vw or vh units) (combined with unit past)"
          }
        ],
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        }
      },
      {
        "id": "function-hypotenuse",
        "title": "hypotenuse()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-hypotenuse",
        "description": "Calculates the hypotenuse of a triangle\n- Can be used to get length between two corners of a rectangle\n",
        "commentRange": {
          "start": 804,
          "end": 808
        },
        "context": {
          "type": "function",
          "name": "hypotenuse",
          "code": "\n  @return math.sqrt(math.pow($width, 2) + math.pow($height, 2));\n",
          "line": {
            "start": 810,
            "end": 812
          }
        },
        "parameter": [
          {
            "type": "Number",
            "name": "width",
            "description": "The width of the triangle"
          },
          {
            "type": "Number",
            "name": "height",
            "description": "The height of the triangle"
          }
        ],
        "return": {
          "type": "Number",
          "description": "Hypotenuse of a triangle"
        },
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        }
      },
      {
        "id": "function-box-shadow-info",
        "title": "box-shadow-info()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-box-shadow-info",
        "description": "Get's the info about a box shadow \n",
        "commentRange": {
          "start": 814,
          "end": 817
        },
        "context": {
          "type": "function",
          "name": "box-shadow-info",
          "code": "\n  @if (not is-list($shadow)) {\n    @error \"Box shadow passed is not correct type (list)\";\n  }\n  $result: (\n    \"inset\": false,\n    \"offset-x\": 0,\n    \"offset-y\": 0,\n    \"blur\": 0,\n    \"spread\": 0,\n    \"color\": null,\n  );\n\n  $number-keys: (\"offset-x\", \"offset-y\", \"blur\", \"spread\");\n  $number-index: 1;\n\n  @each $value in $shadow {\n    $type: meta.type-of($value);\n    @if $type == \"color\" {\n      $result: map.merge($result, (\"color\": $value));\n    } @else if $type == \"string\" and $value == inset {\n      $result: map.merge($result, (\"inset\": true));\n    } @else if $type == \"number\" and $number-index <= 4 {\n      // Add each back in by key in the order they appear\n      // if not found it's the default\n      $result: map.merge($result, (list.nth($number-keys, $number-index): $value));\n      $number-index: $number-index + 1;\n    }\n  }\n  \n  @return $result;\n",
          "line": {
            "start": 819,
            "end": 850
          }
        },
        "parameter": [
          {
            "type": "List",
            "name": "shadow",
            "description": "The box shadow property (ie. 0 0 4px red)"
          }
        ],
        "return": {
          "type": "Map",
          "description": "Map with info about the shadow with the following keys (inset, offset-x, offset-y, blur, spread, color)"
        },
        "throw": [
          "Box shadow passed is not correct type (list)"
        ],
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "is-list"
          }
        ],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        },
        "usedBy": [
          {
            "description": "Get's the extent (how far the shadow extends past the box's edge)\n- This will only work on box-shadows that have matching units for the numbers\n",
            "context": {
              "type": "function",
              "name": "box-shadow-extent",
              "code": "\n  $info: box-shadow-info($shadow);\n  $extent: map.get($info, \"spread\") + map.get($info, \"blur\");\n  $offset-x: map.get($info, \"offset-x\");\n  $offset-y: map.get($info, \"offset-y\");\n  @if (not $side) {\n    @return $extent;\n  } @else {\n    @if ($side == \"top\") {\n      @return $extent - $offset-y;\n    } @else if ($side == \"bottom\") {\n      @return $extent + $offset-y;\n    } @else if ($side == \"left\") {\n      @return $extent - $offset-x;\n    } @else if ($side == \"right\") {\n      @return $extent + $offset-x;\n    }\n  }\n",
              "line": {
                "start": 858,
                "end": 876
              }
            }
          }
        ]
      },
      {
        "id": "function-box-shadow-extent",
        "title": "box-shadow-extent()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-box-shadow-extent",
        "description": "Get's the extent (how far the shadow extends past the box's edge)\n- This will only work on box-shadows that have matching units for the numbers\n",
        "commentRange": {
          "start": 852,
          "end": 856
        },
        "context": {
          "type": "function",
          "name": "box-shadow-extent",
          "code": "\n  $info: box-shadow-info($shadow);\n  $extent: map.get($info, \"spread\") + map.get($info, \"blur\");\n  $offset-x: map.get($info, \"offset-x\");\n  $offset-y: map.get($info, \"offset-y\");\n  @if (not $side) {\n    @return $extent;\n  } @else {\n    @if ($side == \"top\") {\n      @return $extent - $offset-y;\n    } @else if ($side == \"bottom\") {\n      @return $extent + $offset-y;\n    } @else if ($side == \"left\") {\n      @return $extent - $offset-x;\n    } @else if ($side == \"right\") {\n      @return $extent + $offset-x;\n    }\n  }\n",
          "line": {
            "start": 858,
            "end": 876
          }
        },
        "parameter": [
          {
            "type": "List",
            "name": "shadow",
            "description": "The box shadow property (ie. 0 0 4px red)"
          },
          {
            "type": "String",
            "name": "side",
            "description": "Optionally pass the side of box to get extend for, if not specified offsets are ignored and just the extent of the shadow is passed"
          }
        ],
        "return": {
          "type": "Number",
          "description": "The size the shadow extends past it's box"
        },
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "box-shadow-info"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          }
        ],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        }
      },
      {
        "id": "function-is-list",
        "title": "is-list()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-is-list",
        "description": "Determines if value passed is a list\n",
        "commentRange": {
          "start": 878,
          "end": 880
        },
        "context": {
          "type": "function",
          "name": "is-list",
          "code": "\n  @return meta.type-of($value) == \"list\";\n",
          "line": {
            "start": 882,
            "end": 884
          }
        },
        "parameter": [
          {
            "type": "*",
            "name": "value",
            "description": "Value to check"
          }
        ],
        "return": {
          "type": "Boolean",
          "description": "Whether the item was type list"
        },
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        },
        "usedBy": [
          {
            "description": "Checks if a map contains one or more of the keys\n",
            "context": {
              "type": "function",
              "name": "map-contains-any",
              "code": "\n  @if (not is-map($map)) {\n    @error \"map-contains-any(): Incorrect type for $map (should be map)\";\n  }\n  @if (not is-list($keys)) {\n    @error \"map-contains-any(): Incorrect type for $keys (should be list)\";\n  }\n  @each $key in $keys {\n    @if map.has-key($map, $key) {\n      @if map.get($options, \"with-value\") {\n        @if map.get($map, $key) != null {\n          @return true;\n        }\n      } @else {\n        @return true;\n      }\n    }\n  }\n  @return false;\n",
              "line": {
                "start": 447,
                "end": 466
              }
            }
          },
          {
            "description": "Resolve spacing info (ie. margin/padding like arguments)\n- Will normalize the argument that may be shorthand or single value\n- Used for programmatic things with single value config options for padding/margin\n\n",
            "context": {
              "type": "function",
              "name": "get-spacing",
              "code": "\n  @if (not is-list($value)) {\n    @return (\n      \"top\" :    $value,\n      \"right\" :  $value,\n      \"bottom\" : $value,\n      \"left\" :   $value,\n    );\n  }\n\n  $length: list.length($value);\n  $top: list.nth($value, 1);  // Top is always the same\n\n  @if ($length > 4) {\n    @error \"Spacing has more than 4 arguments (not correct shorthand)\";\n  }\n\n  @return (\n    \"top\" :    $top,\n    \"right\" :  list.nth($value, when($length >= 2, 2, 1)),\n    \"bottom\" : list.nth($value, when($length >= 3, 3, 1)),\n    \"left\" :   list.nth($value, when($length == 4, 4, when($length >= 2, 2, 1)))\n  );\n",
              "line": {
                "start": 615,
                "end": 638
              }
            }
          },
          {
            "description": "Get's the info about a border shorthand\n",
            "context": {
              "type": "function",
              "name": "border-info",
              "code": "\n  $width: 0;\n  $style: solid;\n  $color: null;\n\n  $items: when(is-list($border), $border, ($border,));\n  $length: list.length($items);\n\n  @if ($length == 1) {\n    // [style]\n    $style: list.nth($items, 1);\n  } @else if ($length == 2) {\n    // [width, style]\n    $width: list.nth($items, 1);\n    $style: list.nth($items, 2);\n  } @else if ($length >= 3) {\n    // Assume [width, style, color]\n    $width: list.nth($items, 1);\n    $style: list.nth($items, 2);\n    $color: list.nth($items, 3);\n  }\n\n  @return (\n    \"width\": $width,\n    \"style\": $style,\n    \"color\": $color,\n  );\n",
              "line": {
                "start": 721,
                "end": 748
              }
            }
          },
          {
            "description": "Get's the info about a box shadow \n",
            "context": {
              "type": "function",
              "name": "box-shadow-info",
              "code": "\n  @if (not is-list($shadow)) {\n    @error \"Box shadow passed is not correct type (list)\";\n  }\n  $result: (\n    \"inset\": false,\n    \"offset-x\": 0,\n    \"offset-y\": 0,\n    \"blur\": 0,\n    \"spread\": 0,\n    \"color\": null,\n  );\n\n  $number-keys: (\"offset-x\", \"offset-y\", \"blur\", \"spread\");\n  $number-index: 1;\n\n  @each $value in $shadow {\n    $type: meta.type-of($value);\n    @if $type == \"color\" {\n      $result: map.merge($result, (\"color\": $value));\n    } @else if $type == \"string\" and $value == inset {\n      $result: map.merge($result, (\"inset\": true));\n    } @else if $type == \"number\" and $number-index <= 4 {\n      // Add each back in by key in the order they appear\n      // if not found it's the default\n      $result: map.merge($result, (list.nth($number-keys, $number-index): $value));\n      $number-index: $number-index + 1;\n    }\n  }\n  \n  @return $result;\n",
              "line": {
                "start": 819,
                "end": 850
              }
            }
          }
        ]
      },
      {
        "id": "function-is-map",
        "title": "is-map()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-is-map",
        "description": "Determines if value passed is a map\n",
        "commentRange": {
          "start": 886,
          "end": 888
        },
        "context": {
          "type": "function",
          "name": "is-map",
          "code": "\n  $type: meta.type-of($value);\n  @if ($type == \"list\") {\n    @return list.length($value) == 0;\n  } @else {\n    @return meta.type-of($value) == \"map\";\n  }\n",
          "line": {
            "start": 890,
            "end": 897
          }
        },
        "parameter": [
          {
            "type": "*",
            "name": "value",
            "description": "Value to check"
          }
        ],
        "return": {
          "type": "Boolean",
          "description": "Whether the item was type map"
        },
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        },
        "usedBy": [
          {
            "description": "Returns true/false if map has property\n",
            "context": {
              "type": "function",
              "name": "map-has",
              "code": "\n  @if (not is-map($map)) {\n    @error \"map-has(): Incorrect type for $map (should be map) got (#{ $type-passed })\";\n  }\n  @return map.get($map, $key) != null;\n",
              "line": {
                "start": 362,
                "end": 367
              }
            }
          },
          {
            "description": "Checks if a map contains one or more of the keys\n",
            "context": {
              "type": "function",
              "name": "map-contains-any",
              "code": "\n  @if (not is-map($map)) {\n    @error \"map-contains-any(): Incorrect type for $map (should be map)\";\n  }\n  @if (not is-list($keys)) {\n    @error \"map-contains-any(): Incorrect type for $keys (should be list)\";\n  }\n  @each $key in $keys {\n    @if map.has-key($map, $key) {\n      @if map.get($options, \"with-value\") {\n        @if map.get($map, $key) != null {\n          @return true;\n        }\n      } @else {\n        @return true;\n      }\n    }\n  }\n  @return false;\n",
              "line": {
                "start": 447,
                "end": 466
              }
            }
          },
          {
            "description": "Always returns a map\n",
            "context": {
              "type": "function",
              "name": "ensure-map",
              "code": "\n  @return when(is-map($value), $value, ());\n",
              "line": {
                "start": 966,
                "end": 968
              }
            }
          }
        ]
      },
      {
        "id": "function-is-number",
        "title": "is-number()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-is-number",
        "description": "Determines if value passed is a number\n",
        "commentRange": {
          "start": 899,
          "end": 901
        },
        "context": {
          "type": "function",
          "name": "is-number",
          "code": "\n  @return meta.type-of($value) == \"number\";\n",
          "line": {
            "start": 903,
            "end": 905
          }
        },
        "parameter": [
          {
            "type": "*",
            "name": "value",
            "description": "Value to check"
          }
        ],
        "return": {
          "type": "Boolean",
          "description": "Whether the item was type number"
        },
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        },
        "usedBy": [
          {
            "description": "Joins a list of cssvar names\n- Use to \"+\", \"-\" and then use in calc\n- Accepts standard names (applies prefix) or raw \"var(...)\" / \"calc(...)\" strings\n- Accepts raw values (numbers like 100vh) so they can be used in calculations\n",
            "context": {
              "type": "function",
              "name": "join",
              "code": "\n  $values: ();\n\n  @each $name in $names {\n    // Passthrough with out prefix/use if already contains a raw CSS function\n    $is-already-var: utils.is-string($name) and (string.index($name, \"var(\") or string.index($name, \"calc(\"));\n\n    // Passthrough as-is if already custom property or calc, or if it's a number\n    @if ($is-already-var or utils.is-number($name)) {\n      $values: list.append($values, $name);\n    // Else pass it through use so it has prefix/var\n    } @else {\n      $values: list.append($values, use($name));\n    }\n  }\n\n  @return utils.list-join($values, $separator);\n",
              "line": {
                "start": 201,
                "end": 218
              }
            }
          },
          {
            "description": "Strips the unit from the number\n- Normally this shouldn't be needed\n",
            "context": {
              "type": "function",
              "name": "strip-unit",
              "code": "\n  @if (is-number($value)) {\n    @if (math.is-unitless($value)) {\n      @return $value;\n    } @else {\n      @return math.div($value, ($value * 0 + 1));\n    }\n  } @else {\n    @error \"Expected number, got #{ $value }\";\n  }\n",
              "line": {
                "start": 758,
                "end": 768
              }
            }
          },
          {
            "description": "Returns true if number passed is even\n- Allows unit and unitless numbers\n",
            "context": {
              "type": "function",
              "name": "is-even",
              "code": "\n  @if (is-number($number)) {\n    @return strip-unit($number) % 2 == 0;\n  } @else {\n    @error \"Expected Number, got #{ $number }\";\n  }\n",
              "line": {
                "start": 946,
                "end": 952
              }
            }
          },
          {
            "description": "For legacy aspect ratio conversion\n- For a given value if it's a percentage number convert to css aspect ratio like 16/9\n",
            "context": {
              "type": "function",
              "name": "normalize-aspect-ratio",
              "code": "\n  @if is-number($value) and not math.is-unitless($value) {\n    $info: number-info($value);\n    @if ($info) {\n      $u: map.get($info, \"unit\");\n      $v: map.get($info, \"value\");\n      @if $u == \"%\" {\n        @return string.unquote(\"100 / #{ $v }\");\n      }\n    }\n  }\n  @if is-string($value) {\n    @return string.unquote($value);\n  }\n  @return $value;\n",
              "line": {
                "start": 999,
                "end": 1014
              }
            }
          }
        ]
      },
      {
        "id": "function-is-string",
        "title": "is-string()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-is-string",
        "description": "Determines if value passed is a string\n",
        "commentRange": {
          "start": 907,
          "end": 909
        },
        "context": {
          "type": "function",
          "name": "is-string",
          "code": "\n  @return meta.type-of($value) == \"string\";\n",
          "line": {
            "start": 911,
            "end": 913
          }
        },
        "parameter": [
          {
            "type": "*",
            "name": "value",
            "description": "Value to check"
          }
        ],
        "return": {
          "type": "Boolean",
          "description": "Whether the item was type string"
        },
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        },
        "usedBy": [
          {
            "description": "Joins a list of cssvar names\n- Use to \"+\", \"-\" and then use in calc\n- Accepts standard names (applies prefix) or raw \"var(...)\" / \"calc(...)\" strings\n- Accepts raw values (numbers like 100vh) so they can be used in calculations\n",
            "context": {
              "type": "function",
              "name": "join",
              "code": "\n  $values: ();\n\n  @each $name in $names {\n    // Passthrough with out prefix/use if already contains a raw CSS function\n    $is-already-var: utils.is-string($name) and (string.index($name, \"var(\") or string.index($name, \"calc(\"));\n\n    // Passthrough as-is if already custom property or calc, or if it's a number\n    @if ($is-already-var or utils.is-number($name)) {\n      $values: list.append($values, $name);\n    // Else pass it through use so it has prefix/var\n    } @else {\n      $values: list.append($values, use($name));\n    }\n  }\n\n  @return utils.list-join($values, $separator);\n",
              "line": {
                "start": 201,
                "end": 218
              }
            }
          },
          {
            "description": "For legacy aspect ratio conversion\n- For a given value if it's a percentage number convert to css aspect ratio like 16/9\n",
            "context": {
              "type": "function",
              "name": "normalize-aspect-ratio",
              "code": "\n  @if is-number($value) and not math.is-unitless($value) {\n    $info: number-info($value);\n    @if ($info) {\n      $u: map.get($info, \"unit\");\n      $v: map.get($info, \"value\");\n      @if $u == \"%\" {\n        @return string.unquote(\"100 / #{ $v }\");\n      }\n    }\n  }\n  @if is-string($value) {\n    @return string.unquote($value);\n  }\n  @return $value;\n",
              "line": {
                "start": 999,
                "end": 1014
              }
            }
          }
        ]
      },
      {
        "id": "function-is-color",
        "title": "is-color()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-is-color",
        "description": "Determines if value passed is a color\n",
        "commentRange": {
          "start": 915,
          "end": 917
        },
        "context": {
          "type": "function",
          "name": "is-color",
          "code": "\n  @return meta.type-of($value) == \"color\";\n",
          "line": {
            "start": 919,
            "end": 921
          }
        },
        "parameter": [
          {
            "type": "*",
            "name": "value",
            "description": "Value to check"
          }
        ],
        "return": {
          "type": "Boolean",
          "description": "Whether the item was type color"
        },
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        }
      },
      {
        "id": "function-is-even",
        "title": "is-even()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-is-even",
        "description": "Returns true if number passed is even\n- Allows unit and unitless numbers\n",
        "commentRange": {
          "start": 941,
          "end": 944
        },
        "context": {
          "type": "function",
          "name": "is-even",
          "code": "\n  @if (is-number($number)) {\n    @return strip-unit($number) % 2 == 0;\n  } @else {\n    @error \"Expected Number, got #{ $number }\";\n  }\n",
          "line": {
            "start": 946,
            "end": 952
          }
        },
        "parameter": [
          {
            "type": "Number",
            "name": "number",
            "description": "The number to check"
          }
        ],
        "return": {
          "type": "Boolean",
          "description": "Whether or not it is an even number"
        },
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "is-number"
          },
          {
            "type": "function",
            "name": "strip-unit"
          }
        ],
        "throw": [
          "Expected Number, got #{ $number }"
        ],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        },
        "usedBy": [
          {
            "description": "Returns true if number passed is odd\n",
            "context": {
              "type": "function",
              "name": "is-odd",
              "code": "\n  @return not is-even($number);\n",
              "line": {
                "start": 958,
                "end": 960
              }
            }
          }
        ]
      },
      {
        "id": "function-is-odd",
        "title": "is-odd()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-is-odd",
        "description": "Returns true if number passed is odd\n",
        "commentRange": {
          "start": 954,
          "end": 956
        },
        "context": {
          "type": "function",
          "name": "is-odd",
          "code": "\n  @return not is-even($number);\n",
          "line": {
            "start": 958,
            "end": 960
          }
        },
        "parameter": [
          {
            "type": "Number",
            "name": "number",
            "description": "The number to check"
          }
        ],
        "return": {
          "type": "Boolean",
          "description": "Whether or not it is an odd number"
        },
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "is-even"
          }
        ],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        }
      },
      {
        "id": "function-ensure-map",
        "title": "ensure-map()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-ensure-map",
        "description": "Always returns a map\n",
        "commentRange": {
          "start": 962,
          "end": 964
        },
        "context": {
          "type": "function",
          "name": "ensure-map",
          "code": "\n  @return when(is-map($value), $value, ());\n",
          "line": {
            "start": 966,
            "end": 968
          }
        },
        "parameter": [
          {
            "type": "*",
            "name": "value",
            "description": "The value to check if is map"
          }
        ],
        "return": {
          "type": "Map",
          "description": "The $value if it was a map, else empty map"
        },
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "when"
          },
          {
            "type": "function",
            "name": "is-map"
          }
        ],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        }
      },
      {
        "id": "function-is-end",
        "title": "is-end()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-is-end",
        "description": "Returns true if edge passed is an end (top/bottom)\n",
        "commentRange": {
          "start": 970,
          "end": 973
        },
        "context": {
          "type": "function",
          "name": "is-end",
          "code": "\n  @if ($edge == \"top\" or $edge == \"bottom\") {\n    @return true;\n  } @else if ($edge == \"left\" or $edge == \"right\") {\n    @return false;\n  } @else {\n    @error \"Expected side to be top/bottom/left/right, got #{ $edge }\";\n  }\n",
          "line": {
            "start": 975,
            "end": 983
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "edge",
            "description": "The edge string to test"
          }
        ],
        "return": {
          "type": "Boolean",
          "description": "Whether the edge was an end (versus side/x-axis)"
        },
        "throw": [
          "Expected side to be top/bottom/left/right, got #{ $edge }"
        ],
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        },
        "usedBy": [
          {
            "description": "Returns true if edge passed is an side (left/right)\n",
            "context": {
              "type": "function",
              "name": "is-side",
              "code": "\n  @return not is-end($edge);\n",
              "line": {
                "start": 990,
                "end": 992
              }
            }
          }
        ]
      },
      {
        "id": "function-is-side",
        "title": "is-side()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-is-side",
        "description": "Returns true if edge passed is an side (left/right)\n",
        "commentRange": {
          "start": 985,
          "end": 988
        },
        "context": {
          "type": "function",
          "name": "is-side",
          "code": "\n  @return not is-end($edge);\n",
          "line": {
            "start": 990,
            "end": 992
          }
        },
        "parameter": [
          {
            "type": "String",
            "name": "edge",
            "description": "The edge string to test"
          }
        ],
        "return": {
          "type": "Boolean",
          "description": "Whether the edge was an side (versus end/y-axis)"
        },
        "throw": [
          "If $edge is not a valid value (not top/bottom/left/right)"
        ],
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "is-end"
          }
        ],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        }
      },
      {
        "id": "function-normalize-aspect-ratio",
        "title": "normalize-aspect-ratio()",
        "groupName": "utils",
        "path": "/sass/core/utils/#function-normalize-aspect-ratio",
        "description": "For legacy aspect ratio conversion\n- For a given value if it's a percentage number convert to css aspect ratio like 16/9\n",
        "commentRange": {
          "start": 994,
          "end": 997
        },
        "context": {
          "type": "function",
          "name": "normalize-aspect-ratio",
          "code": "\n  @if is-number($value) and not math.is-unitless($value) {\n    $info: number-info($value);\n    @if ($info) {\n      $u: map.get($info, \"unit\");\n      $v: map.get($info, \"value\");\n      @if $u == \"%\" {\n        @return string.unquote(\"100 / #{ $v }\");\n      }\n    }\n  }\n  @if is-string($value) {\n    @return string.unquote($value);\n  }\n  @return $value;\n",
          "line": {
            "start": 999,
            "end": 1014
          }
        },
        "parameter": [
          {
            "type": "String|Number",
            "name": "value",
            "description": "The ratio value to normalize."
          }
        ],
        "return": {
          "type": "String",
          "description": "Either the original value or a converted value depending on if it was a percentage number"
        },
        "group": [
          "utils"
        ],
        "access": "public",
        "require": [
          {
            "type": "function",
            "name": "is-number"
          },
          {
            "type": "function",
            "name": "number-info"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "get"
          },
          {
            "type": "function",
            "name": "is-string"
          }
        ],
        "file": {
          "path": "_utils.scss",
          "name": "_utils.scss"
        }
      },
      {
        "id": "module:utils",
        "longname": "module:utils",
        "name": "utils",
        "kind": "module",
        "description": "Public API for the utility modules.\n\nThis file re-exports the internal implementations from the `utils` directory\nwith new names where appropriate, defining the public-facing API for the\nlibrary bundle.\n\nFor internal library usage, import directly from the specific file within\nthe `utils` directory (e.g., `import { ... } from './dom.js'`).",
        "customTags": [
          {
            "tag": "internal",
            "value": "Naming Convention\nTo ensure tree-shaking works correctly while avoiding name collisions in the\nfinal library, the following naming convention is used for re-exporting:\n\n1. Generic Names: Functions with highly generic names (e.g., `log`, `set`, `defaults`)\n   MUST be prefixed with a name derived from their module to prevent conflicts.\n   Example: `export { log as classLoggerLog } from \"./class-logger.js\";`\n\n2. Descriptive Names: Functions with specific, descriptive names that are unlikely\n   to cause conflicts (e.g., `newId`, `createFloatingUi`, `configureIcons`)\n   can be re-exported directly without a prefix for better readability.\n   Example: `export { newId } from \"./id.js\";`"
          }
        ],
        "meta": {
          "lineno": 1,
          "filename": "index.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 290
      }
    ],
    "core/component": [
      {
        "id": "module:core/component",
        "longname": "module:core/component",
        "name": "core/component",
        "kind": "module",
        "description": "Core classes and mechanisms that define how UI components are created and managed within the library",
        "meta": {
          "lineno": 1,
          "filename": "component.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/core"
        },
        "order": 0
      }
    ],
    "core/events": [
      {
        "id": "module:core/events",
        "longname": "module:core/events",
        "name": "core/events",
        "kind": "module",
        "description": "Internal implementation of global event handling.",
        "meta": {
          "lineno": 1,
          "filename": "events.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/core"
        },
        "order": 14
      }
    ],
    "core": [
      {
        "id": "module:core",
        "longname": "module:core",
        "name": "core",
        "kind": "module",
        "description": "Public API for the core modules.\n\nThis file re-exports the internal implementations from the `core` directory\nwith new names where appropriate, defining the public-facing API for the\nlibrary bundle.\n\nFor internal library usage, import directly from the specific file within\nthe `core` directory (e.g., `import { ... } from './settings.js'`).",
        "meta": {
          "lineno": 1,
          "filename": "index.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/core"
        },
        "order": 22
      }
    ],
    "core/settings": [
      {
        "id": "module:core/settings",
        "longname": "module:core/settings",
        "name": "core/settings",
        "kind": "module",
        "description": "Internal implementation for managing shared configuration.",
        "meta": {
          "lineno": 1,
          "filename": "settings.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/core"
        },
        "order": 23
      }
    ],
    "ui/breakpoints": [
      {
        "id": "module:ui/breakpoints",
        "longname": "module:ui/breakpoints",
        "name": "ui/breakpoints",
        "kind": "module",
        "meta": {
          "lineno": 1,
          "filename": "breakpoints.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 32
      }
    ],
    "ui/collapsible": [
      {
        "id": "module:ui/collapsible",
        "longname": "module:ui/collapsible",
        "name": "ui/collapsible",
        "kind": "module",
        "meta": {
          "lineno": 1,
          "filename": "collapsible.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 54
      }
    ],
    "ui/details-group": [
      {
        "id": "module:ui/details-group",
        "longname": "module:ui/details-group",
        "name": "ui/details-group",
        "kind": "module",
        "description": "Manages groups of details (ie. onlyOneOpen at a time)",
        "meta": {
          "lineno": 1,
          "filename": "details-group.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 63
      }
    ],
    "ui/dialog": [
      {
        "id": "module:ui/dialog",
        "longname": "module:ui/dialog",
        "name": "ui/dialog",
        "kind": "module",
        "meta": {
          "lineno": 1,
          "filename": "dialog.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 72
      }
    ],
    "ui/flipcard": [
      {
        "id": "module:ui/flipcard",
        "longname": "module:ui/flipcard",
        "name": "ui/flipcard",
        "kind": "module",
        "meta": {
          "lineno": 1,
          "filename": "flipcard.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 90
      }
    ],
    "ui/grid": [
      {
        "id": "module:ui/grid",
        "longname": "module:ui/grid",
        "name": "ui/grid",
        "kind": "module",
        "meta": {
          "lineno": 1,
          "filename": "grid.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 96
      }
    ],
    "ui": [
      {
        "id": "module:ui",
        "longname": "module:ui",
        "name": "ui",
        "kind": "module",
        "description": "Public API for the UI modules.\n\nThis file re-exports the internal implementations from the `ui` directory\nwith new names where appropriate, defining the public-facing API for the\nlibrary bundle.\n\nFor internal library usage, import directly from the specific file within\nthe `ui` directory (e.g., `import { ... } from './dialog.js'`).",
        "customTags": [
          {
            "tag": "internal",
            "value": "How to Name Exports\n\nEach export is renamed with a prefix based on its source module's name\n(e.g., `init` from `dialog.js` becomes `dialogInit`). This is a critical\npart of the library's bundling strategy, which creates a single, \"flat\"\nmodule with uniquely named exports.\n\nThis approach:\n1. Prevents name collisions between modules that might use the same export\n   names (like `init` or `defaults`).\n2. Allows bundlers in consuming projects to perform dead-code elimination\n   (tree-shaking) with maximum effectiveness.\n\nHow To Add New Exports\n\nWhen adding a new export, follow the naming convention:\n`[moduleName][OriginalExportName]` (using camelCase).\n\nFor example, to export `myFunction` from `./foo.js`, you would add:\n`myFunction as fooMyFunction`\n\nPlease keep the exports within each block alphabetized."
          }
        ],
        "meta": {
          "lineno": 1,
          "filename": "index.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 99
      }
    ],
    "ui/modal-builder": [
      {
        "id": "module:ui/modal-builder",
        "longname": "module:ui/modal-builder",
        "name": "ui/modal-builder",
        "kind": "module",
        "description": "Note this module needs to be initialized before dialogs!",
        "meta": {
          "lineno": 1,
          "filename": "modal-builder.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 100
      }
    ],
    "ui/overflow-scroller-pager": [
      {
        "id": "module:ui/overflow-scroller-pager",
        "longname": "module:ui/overflow-scroller-pager",
        "name": "ui/overflow-scroller-pager",
        "kind": "module",
        "meta": {
          "lineno": 1,
          "filename": "overflow-scroller-pager.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 108
      }
    ],
    "ui/overflow-scroller": [
      {
        "id": "module:ui/overflow-scroller",
        "longname": "module:ui/overflow-scroller",
        "name": "ui/overflow-scroller",
        "kind": "module",
        "meta": {
          "lineno": 1,
          "filename": "overflow-scroller.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 110
      }
    ],
    "ui/page": [
      {
        "id": "module:ui/page",
        "longname": "module:ui/page",
        "name": "ui/page",
        "kind": "module",
        "description": "General/Document Related \n- Add custom properties for scrollbar",
        "meta": {
          "lineno": 1,
          "filename": "page.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 111
      }
    ],
    "ui/popover": [
      {
        "id": "module:ui/popover",
        "longname": "module:ui/popover",
        "name": "ui/popover",
        "kind": "module",
        "meta": {
          "lineno": 1,
          "filename": "popover.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 113
      }
    ],
    "ui/print-details": [
      {
        "id": "module:ui/print-details",
        "longname": "module:ui/print-details",
        "name": "ui/print-details",
        "kind": "module",
        "meta": {
          "lineno": 1,
          "filename": "print-details.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 119
      }
    ],
    "ui/print": [
      {
        "id": "module:ui/print",
        "longname": "module:ui/print",
        "name": "ui/print",
        "kind": "module",
        "meta": {
          "lineno": 1,
          "filename": "print.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 122
      }
    ],
    "ui/programmatic-modal": [
      {
        "id": "module:ui/programmatic-modal",
        "longname": "module:ui/programmatic-modal",
        "name": "ui/programmatic-modal",
        "kind": "module",
        "meta": {
          "lineno": 1,
          "filename": "programmatic-modal.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 127
      }
    ],
    "ui/proxy-click": [
      {
        "id": "module:ui/proxy-click",
        "longname": "module:ui/proxy-click",
        "name": "ui/proxy-click",
        "kind": "module",
        "description": "Used for cards and things that look like they should be clickable \neven though the link in their content is the only clickable element. This way \nthe entire cards content doesn't need to be in a link (which isn't accessible). \n\nThe script allows only for clicks with a duration of 250ms to avoid conflict \nwith a user selecting text. Works with either links or buttons because it just \nuses the elements .click(). Uses data-attributes for selection by default.",
        "meta": {
          "lineno": 1,
          "filename": "proxy-click.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 128
      }
    ],
    "ui/resizer": [
      {
        "id": "module:ui/resizer",
        "longname": "module:ui/resizer",
        "name": "ui/resizer",
        "kind": "module",
        "meta": {
          "lineno": 1,
          "filename": "resizer.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 135
      }
    ],
    "ui/scroll-slider": [
      {
        "id": "module:ui/scroll-slider",
        "longname": "module:ui/scroll-slider",
        "name": "ui/scroll-slider",
        "kind": "module",
        "meta": {
          "lineno": 1,
          "filename": "scroll-slider.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 157
      }
    ],
    "ui/scrollpoint": [
      {
        "id": "module:ui/scrollpoint",
        "longname": "module:ui/scrollpoint",
        "name": "ui/scrollpoint",
        "kind": "module",
        "description": "Module that uses intersection observer to add scrollpoint like behavior.",
        "meta": {
          "lineno": 1,
          "filename": "scrollpoint.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 161
      }
    ],
    "ui/slider": [
      {
        "id": "module:ui/slider",
        "longname": "module:ui/slider",
        "name": "ui/slider",
        "kind": "module",
        "meta": {
          "lineno": 1,
          "filename": "slider.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 183
      }
    ],
    "ui/tab-manager": [
      {
        "id": "module:ui/tab-manager",
        "longname": "module:ui/tab-manager",
        "name": "ui/tab-manager",
        "kind": "module",
        "meta": {
          "lineno": 1,
          "filename": "tab-manager.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 199
      }
    ],
    "ui/tabs": [
      {
        "id": "module:ui/tabs",
        "longname": "module:ui/tabs",
        "name": "ui/tabs",
        "kind": "module",
        "meta": {
          "lineno": 1,
          "filename": "tabs.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 212
      }
    ],
    "ui/theme-toggle": [
      {
        "id": "module:ui/theme-toggle",
        "longname": "module:ui/theme-toggle",
        "name": "ui/theme-toggle",
        "kind": "module",
        "meta": {
          "lineno": 1,
          "filename": "theme-toggle.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 217
      }
    ],
    "ui/tooltip": [
      {
        "id": "module:ui/tooltip",
        "longname": "module:ui/tooltip",
        "name": "ui/tooltip",
        "kind": "module",
        "meta": {
          "lineno": 1,
          "filename": "tooltip.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 244
      }
    ],
    "utils/class-logger": [
      {
        "id": "module:utils/class-logger",
        "longname": "module:utils/class-logger",
        "name": "utils/class-logger",
        "kind": "module",
        "meta": {
          "lineno": 1,
          "filename": "class-logger.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 259
      }
    ],
    "utils/css": [
      {
        "id": "module:utils/css",
        "longname": "module:utils/css",
        "name": "utils/css",
        "kind": "module",
        "meta": {
          "lineno": 1,
          "filename": "css.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 265
      }
    ],
    "utils/dialog": [
      {
        "id": "module:utils/dialog",
        "longname": "module:utils/dialog",
        "name": "utils/dialog",
        "kind": "module",
        "description": "Utility functions for dialogs",
        "meta": {
          "lineno": 1,
          "filename": "dialog.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 267
      }
    ],
    "utils/dom": [
      {
        "id": "module:utils/dom",
        "longname": "module:utils/dom",
        "name": "utils/dom",
        "kind": "module",
        "meta": {
          "lineno": 1,
          "filename": "dom.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 269
      }
    ],
    "utils/file-save": [
      {
        "id": "module:utils/file-save",
        "longname": "module:utils/file-save",
        "name": "utils/file-save",
        "kind": "module",
        "meta": {
          "lineno": 1,
          "filename": "file-save.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 273
      }
    ],
    "utils/floating-ui": [
      {
        "id": "module:utils/floating-ui",
        "longname": "module:utils/floating-ui",
        "name": "utils/floating-ui",
        "kind": "module",
        "meta": {
          "lineno": 1,
          "filename": "floating-ui.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 281
      }
    ],
    "utils/font-awesome": [
      {
        "id": "module:utils/font-awesome",
        "longname": "module:utils/font-awesome",
        "name": "utils/font-awesome",
        "kind": "module",
        "description": "Utility module for setting up Font Awesome",
        "meta": {
          "lineno": 1,
          "filename": "font-awesome.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 283
      }
    ],
    "utils/id": [
      {
        "id": "module:utils/id",
        "longname": "module:utils/id",
        "name": "utils/id",
        "kind": "module",
        "meta": {
          "lineno": 1,
          "filename": "id.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 285
      }
    ],
    "utils/iframe": [
      {
        "id": "module:utils/iframe",
        "longname": "module:utils/iframe",
        "name": "utils/iframe",
        "kind": "module",
        "meta": {
          "lineno": 1,
          "filename": "iframe.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 288
      }
    ],
    "utils/pause-youtube-video": [
      {
        "id": "module:utils/pause-youtube-video",
        "longname": "module:utils/pause-youtube-video",
        "name": "utils/pause-youtube-video",
        "kind": "module",
        "meta": {
          "lineno": 1,
          "filename": "pause-youtube-video.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 291
      }
    ],
    "module:core/component.ComponentInitializer": [
      {
        "id": "module:core/component.ComponentInitializer()",
        "longname": "module:core/component.ComponentInitializer",
        "name": "exports.ComponentInitializer",
        "kind": "constructor",
        "description": "Create a new instance of ComponentInitializer",
        "memberof": "module:core/component.ComponentInitializer",
        "params": [
          {
            "type": {
              "names": [
                "Object"
              ]
            },
            "description": "Options for configuring the component initializer.",
            "name": "options"
          },
          {
            "type": {
              "names": [
                "String"
              ]
            },
            "description": "Type of component (used for logs).",
            "name": "options.type"
          },
          {
            "type": {
              "names": [
                "String"
              ]
            },
            "description": "Prefix and base attribute name (used for base attribute and further element attribute names).",
            "name": "options.baseAttribute"
          }
        ],
        "order": 2
      },
      {
        "id": "module:core/component.ComponentInitializer#init",
        "longname": "module:core/component.ComponentInitializer#init",
        "name": "init",
        "kind": "function",
        "scope": "instance",
        "description": "Initializes the component based on the provided configuration.",
        "memberof": "module:core/component.ComponentInitializer",
        "params": [
          {
            "type": {
              "names": [
                "Object"
              ]
            },
            "description": "The initialization configuration.",
            "name": "config"
          },
          {
            "type": {
              "names": [
                "function"
              ]
            },
            "description": "The setup function to call for each element.",
            "name": "config.setup"
          },
          {
            "type": {
              "names": [
                "String"
              ]
            },
            "description": "[null] The optional key to use with attribute selector.",
            "name": "config.key"
          },
          {
            "type": {
              "names": [
                "Boolean"
              ]
            },
            "description": "[null] Whether to retrieve element data.",
            "name": "config.withData"
          },
          {
            "type": {
              "names": [
                "Array"
              ]
            },
            "description": "[null] An array of core event names (e.g., 'pageModified') that should trigger a re-initialization.",
            "name": "config.coreEvents"
          },
          {
            "type": {
              "names": [
                "HTMLElement"
              ]
            },
            "description": "[document] The context to query within.",
            "name": "config.context"
          }
        ],
        "meta": {
          "lineno": 51,
          "filename": "component.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/core"
        },
        "order": 3
      },
      {
        "id": "module:core/component.ComponentInitializer#setupElements",
        "longname": "module:core/component.ComponentInitializer#setupElements",
        "name": "setupElements",
        "kind": "function",
        "scope": "instance",
        "description": "Processes the elements based on the provided configuration.",
        "memberof": "module:core/component.ComponentInitializer",
        "params": [
          {
            "type": {
              "names": [
                "object"
              ]
            },
            "description": "The initialization configuration.",
            "name": "config"
          },
          {
            "type": {
              "names": [
                "function"
              ]
            },
            "description": "The setup function to call for each element.",
            "name": "config.setup"
          },
          {
            "type": {
              "names": [
                "string"
              ]
            },
            "description": "The optional key to use with attribute selector.",
            "name": "config.key"
          },
          {
            "type": {
              "names": [
                "boolean"
              ]
            },
            "description": "[false] Whether to retrieve element data.",
            "name": "config.withData"
          },
          {
            "type": {
              "names": [
                "HTMLElement"
              ]
            },
            "description": "[document] The context to query within.",
            "name": "config.context"
          }
        ],
        "meta": {
          "lineno": 73,
          "filename": "component.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/core"
        },
        "order": 4
      },
      {
        "id": "module:core/component.ComponentInitializer#getAttribute",
        "longname": "module:core/component.ComponentInitializer#getAttribute",
        "name": "getAttribute",
        "kind": "function",
        "scope": "instance",
        "description": "Get an attribute name",
        "memberof": "module:core/component.ComponentInitializer",
        "params": [
          {
            "type": {
              "names": [
                "String"
              ]
            },
            "description": "Optional key, if no key will return baseAttribute if key will return key added to base",
            "name": "key"
          }
        ],
        "returns": [
          {
            "type": {
              "names": [
                "String"
              ]
            },
            "description": "String like data-ulu-dialog or data-ulu-dialog-element"
          }
        ],
        "meta": {
          "lineno": 83,
          "filename": "component.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/core"
        },
        "order": 5
      },
      {
        "id": "module:core/component.ComponentInitializer#attributeSelector",
        "longname": "module:core/component.ComponentInitializer#attributeSelector",
        "name": "attributeSelector",
        "kind": "function",
        "scope": "instance",
        "description": "Create an attribute selector",
        "memberof": "module:core/component.ComponentInitializer",
        "params": [
          {
            "type": {
              "names": [
                "String"
              ]
            },
            "description": "Optional key (see getAttribute)",
            "name": "key"
          }
        ],
        "meta": {
          "lineno": 91,
          "filename": "component.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/core"
        },
        "order": 6
      },
      {
        "id": "module:core/component.ComponentInitializer#attributeSelectorInitial",
        "longname": "module:core/component.ComponentInitializer#attributeSelectorInitial",
        "name": "attributeSelectorInitial",
        "kind": "function",
        "scope": "instance",
        "description": "Create an attribute selector for initial",
        "memberof": "module:core/component.ComponentInitializer",
        "params": [],
        "returns": [
          {
            "type": {
              "names": [
                "String"
              ]
            }
          }
        ],
        "meta": {
          "lineno": 98,
          "filename": "component.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/core"
        },
        "order": 7
      },
      {
        "id": "module:core/component.ComponentInitializer#queryAllInitial",
        "longname": "module:core/component.ComponentInitializer#queryAllInitial",
        "name": "queryAllInitial",
        "kind": "function",
        "scope": "instance",
        "description": "Queries all main elements of a component that have not been initialized and extracts their data attributes.",
        "memberof": "module:core/component.ComponentInitializer",
        "params": [
          {
            "type": {
              "names": [
                "HTMLElement"
              ]
            },
            "description": "The context to query within.",
            "name": "context"
          },
          {
            "type": {
              "names": [
                "Boolean"
              ]
            },
            "description": "Include dataset from element (as optional JSON)",
            "name": "withData"
          },
          {
            "type": {
              "names": [
                "Node"
              ]
            },
            "description": "Element to query elements from",
            "name": "context"
          }
        ],
        "returns": [
          {
            "type": {
              "names": [
                "Array.<{element: HTMLElement, data: object, initialize: function()}>"
              ]
            },
            "description": "An array of objects containing the elements, their data, and convenience function initialize() which when called will set the init attribute on the element"
          }
        ],
        "meta": {
          "lineno": 108,
          "filename": "component.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/core"
        },
        "order": 8
      },
      {
        "id": "module:core/component.ComponentInitializer#initializeElement",
        "longname": "module:core/component.ComponentInitializer#initializeElement",
        "name": "initializeElement",
        "kind": "function",
        "scope": "instance",
        "description": "Sets the init attribute on an element, marking it as initialized.",
        "memberof": "module:core/component.ComponentInitializer",
        "params": [
          {
            "type": {
              "names": [
                "HTMLElement"
              ]
            },
            "description": "The element to initialize.",
            "name": "element"
          }
        ],
        "meta": {
          "lineno": 120,
          "filename": "component.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/core"
        },
        "order": 9
      },
      {
        "id": "module:core/component.ComponentInitializer#getData",
        "longname": "module:core/component.ComponentInitializer#getData",
        "name": "getData",
        "kind": "function",
        "scope": "instance",
        "description": "Get an elements dataset value as JSON or other value",
        "memberof": "module:core/component.ComponentInitializer",
        "params": [],
        "returns": [
          {
            "type": {
              "names": [
                "*"
              ]
            },
            "description": "The value of the dataset, if JSON will return object else will return string value or undefined"
          }
        ],
        "meta": {
          "lineno": 127,
          "filename": "component.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/core"
        },
        "order": 10
      },
      {
        "id": "module:core/component.ComponentInitializer#log",
        "longname": "module:core/component.ComponentInitializer#log",
        "name": "log",
        "kind": "function",
        "scope": "instance",
        "description": "Will output namespaced console logs for the given initializer",
        "memberof": "module:core/component.ComponentInitializer",
        "params": [],
        "meta": {
          "lineno": 134,
          "filename": "component.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/core"
        },
        "order": 11
      },
      {
        "id": "module:core/component.ComponentInitializer#warn",
        "longname": "module:core/component.ComponentInitializer#warn",
        "name": "warn",
        "kind": "function",
        "scope": "instance",
        "description": "Will output namespaced console warnings for the given initializer",
        "memberof": "module:core/component.ComponentInitializer",
        "params": [],
        "meta": {
          "lineno": 140,
          "filename": "component.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/core"
        },
        "order": 12
      },
      {
        "id": "module:core/component.ComponentInitializer#logError",
        "longname": "module:core/component.ComponentInitializer#logError",
        "name": "logError",
        "kind": "function",
        "scope": "instance",
        "description": "Will output namespaced console error for the given initializer",
        "memberof": "module:core/component.ComponentInitializer",
        "params": [],
        "meta": {
          "lineno": 146,
          "filename": "component.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/core"
        },
        "order": 13
      }
    ],
    "module:ui/breakpoints.BreakpointManager": [
      {
        "id": "module:ui/breakpoints.BreakpointManager()",
        "longname": "module:ui/breakpoints.BreakpointManager",
        "name": "exports.BreakpointManager",
        "kind": "constructor",
        "memberof": "module:ui/breakpoints.BreakpointManager",
        "params": [
          {
            "type": {
              "names": [
                "Object"
              ]
            },
            "description": "Configuration object",
            "name": "config"
          },
          {
            "type": {
              "names": [
                "Array"
              ]
            },
            "description": "Array of strings that correspond to the breakpoints setup in the styles, Breakpoints from smallest to largest, defaults to [small, medium, large]",
            "name": "config.order"
          },
          {
            "type": {
              "names": [
                "Array"
              ]
            },
            "description": "Property to grab breakpoint from (default is --breakpoint)",
            "name": "config.customProperty"
          },
          {
            "type": {
              "names": [
                "Array"
              ]
            },
            "description": "Use the legacy method of grabbing breakpoint from pseudo element, default uses custom property",
            "name": "config.valueFromPseudo"
          },
          {
            "type": {
              "names": [
                "Node"
              ]
            },
            "description": "The element to retrieve active breakpoint from stylesheet. (default is html) For using the old pseudo method, adjust this to document.body",
            "name": "config.element"
          },
          {
            "type": {
              "names": [
                "String"
              ]
            },
            "description": "Change pseudo selector used to get the breakpoint from the pseudo's content property",
            "name": "config.pseudoSelector"
          }
        ],
        "order": 34
      },
      {
        "id": "module:ui/breakpoints.BreakpointManager#onChange",
        "longname": "module:ui/breakpoints.BreakpointManager#onChange",
        "name": "onChange",
        "kind": "function",
        "scope": "instance",
        "description": "Add a callback for every time a breakpoint changes\n- Not recommended, possibly use to watch for changes, etc\n- For more control use instance.at(name) with breakpoint methods",
        "memberof": "module:ui/breakpoints.BreakpointManager",
        "params": [
          {
            "type": {
              "names": [
                "function"
              ]
            },
            "description": "Function to call, passed one argument current instance which can be used to get information about breakpoints",
            "name": "callback"
          }
        ],
        "meta": {
          "lineno": 75,
          "filename": "breakpoints.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 35
      },
      {
        "id": "module:ui/breakpoints.BreakpointManager#removeOnChange",
        "longname": "module:ui/breakpoints.BreakpointManager#removeOnChange",
        "name": "removeOnChange",
        "kind": "function",
        "scope": "instance",
        "description": "Remove change callback",
        "memberof": "module:ui/breakpoints.BreakpointManager",
        "params": [
          {
            "type": {
              "names": [
                "function"
              ]
            },
            "description": "Function to remove",
            "name": "callback"
          }
        ],
        "meta": {
          "lineno": 82,
          "filename": "breakpoints.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 36
      },
      {
        "id": "module:ui/breakpoints.BreakpointManager#getBreakpointInPseudo",
        "longname": "module:ui/breakpoints.BreakpointManager#getBreakpointInPseudo",
        "name": "getBreakpointInPseudo",
        "kind": "function",
        "scope": "instance",
        "description": "Get breakpoint from a pseudo element",
        "memberof": "module:ui/breakpoints.BreakpointManager",
        "params": [],
        "meta": {
          "lineno": 88,
          "filename": "breakpoints.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 37
      },
      {
        "id": "module:ui/breakpoints.BreakpointManager#getBreakpointInProperty",
        "longname": "module:ui/breakpoints.BreakpointManager#getBreakpointInProperty",
        "name": "getBreakpointInProperty",
        "kind": "function",
        "scope": "instance",
        "description": "Get breakpoint from a custom property",
        "memberof": "module:ui/breakpoints.BreakpointManager",
        "params": [],
        "meta": {
          "lineno": 94,
          "filename": "breakpoints.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 38
      },
      {
        "id": "module:ui/breakpoints.BreakpointManager#getBreakpoint",
        "longname": "module:ui/breakpoints.BreakpointManager#getBreakpoint",
        "name": "getBreakpoint",
        "kind": "function",
        "scope": "instance",
        "description": "Get breakpoint from element (design note: user could override prototype)",
        "memberof": "module:ui/breakpoints.BreakpointManager",
        "params": [],
        "meta": {
          "lineno": 100,
          "filename": "breakpoints.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 39
      },
      {
        "id": "module:ui/breakpoints.BreakpointManager#update",
        "longname": "module:ui/breakpoints.BreakpointManager#update",
        "name": "update",
        "kind": "function",
        "scope": "instance",
        "description": "Updates the active breakpoint by checking the element and executes handlers on change",
        "memberof": "module:ui/breakpoints.BreakpointManager",
        "params": [],
        "meta": {
          "lineno": 110,
          "filename": "breakpoints.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 40
      },
      {
        "id": "module:ui/breakpoints.BreakpointManager#at",
        "longname": "module:ui/breakpoints.BreakpointManager#at",
        "name": "at",
        "kind": "function",
        "scope": "instance",
        "description": "Get a breakpoint by key",
        "memberof": "module:ui/breakpoints.BreakpointManager",
        "params": [
          {
            "type": {
              "names": [
                "String"
              ]
            },
            "description": "The name of the breakpoint to get",
            "name": "name"
          }
        ],
        "returns": [
          {
            "type": {
              "names": [
                "Breakpoint"
              ]
            },
            "description": "Breakpoint to act on (see Breakpoint class)"
          }
        ],
        "meta": {
          "lineno": 155,
          "filename": "breakpoints.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 41
      }
    ],
    "module:ui/collapsible.Collapsible": [
      {
        "id": "module:ui/collapsible.Collapsible()",
        "longname": "module:ui/collapsible.Collapsible",
        "name": "exports.Collapsible",
        "kind": "constructor",
        "memberof": "module:ui/collapsible.Collapsible",
        "params": [
          {
            "type": {
              "names": [
                "Object"
              ]
            },
            "description": "Elements object",
            "name": "elements"
          },
          {
            "type": {
              "names": [
                "Node"
              ]
            },
            "description": "Trigger button/element that opens/closes collapsible",
            "name": "elements.trigger"
          },
          {
            "type": {
              "names": [
                "Node"
              ]
            },
            "description": "The content element that the trigger reveals",
            "name": "elements.content"
          },
          {
            "type": {
              "names": [
                "Object"
              ]
            },
            "description": "Configuration options (see defaults)",
            "name": "config"
          }
        ],
        "returns": [
          {
            "type": {
              "names": [
                "Object"
              ]
            },
            "description": "Collapsible instance"
          }
        ],
        "order": 60
      },
      {
        "id": "module:ui/collapsible.Collapsible#setupTemporaryHandlers",
        "longname": "module:ui/collapsible.Collapsible#setupTemporaryHandlers",
        "name": "setupTemporaryHandlers",
        "kind": "function",
        "scope": "instance",
        "description": "Setup handlers needed for closing once open",
        "memberof": "module:ui/collapsible.Collapsible",
        "params": [],
        "meta": {
          "lineno": 140,
          "filename": "collapsible.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 61
      },
      {
        "id": "module:ui/collapsible.Collapsible#destroyTemporaryHandlers",
        "longname": "module:ui/collapsible.Collapsible#destroyTemporaryHandlers",
        "name": "destroyTemporaryHandlers",
        "kind": "function",
        "scope": "instance",
        "description": "Destroy handlers attached for closing once open",
        "memberof": "module:ui/collapsible.Collapsible",
        "params": [],
        "meta": {
          "lineno": 164,
          "filename": "collapsible.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 62
      }
    ],
    "module:ui/resizer.Resizer": [
      {
        "id": "module:ui/resizer.Resizer()",
        "longname": "module:ui/resizer.Resizer",
        "name": "exports.Resizer",
        "kind": "constructor",
        "memberof": "module:ui/resizer.Resizer",
        "params": [
          {
            "type": {
              "names": [
                "Node"
              ]
            },
            "description": "Container to be resized",
            "name": "container"
          },
          {
            "type": {
              "names": [
                "HTMLElement"
              ]
            },
            "description": "Resize handle element (should be focusable like a button)",
            "name": "control"
          },
          {
            "type": {
              "names": [
                "Object"
              ]
            },
            "description": "Options to configure the resizer.",
            "name": "config"
          },
          {
            "type": {
              "names": [
                "Boolean"
              ]
            },
            "optional": true,
            "defaultvalue": false,
            "description": "Enable non-essential debugging logs.",
            "name": "config.debug"
          },
          {
            "type": {
              "names": [
                "Boolean"
              ]
            },
            "optional": true,
            "defaultvalue": 1,
            "description": "Amount to increase size by (ie. pointer movement * multiplier).",
            "name": "config.multiplier"
          },
          {
            "type": {
              "names": [
                "Boolean"
              ]
            },
            "optional": true,
            "defaultvalue": false,
            "description": "When script is activated by handle, remove the element's max-width/max-height and allow the resize to exceed them.",
            "name": "config.overrideMaxDimensions"
          },
          {
            "type": {
              "names": [
                "\"left\"",
                "\"right\"",
                "null"
              ]
            },
            "optional": true,
            "defaultvalue": null,
            "description": "Horizontal resizing direction.",
            "name": "config.fromX"
          },
          {
            "type": {
              "names": [
                "\"top\"",
                "\"bottom\"",
                "null"
              ]
            },
            "optional": true,
            "defaultvalue": null,
            "description": "Vertical resizing direction.",
            "name": "config.fromY"
          },
          {
            "type": {
              "names": [
                "number"
              ]
            },
            "optional": true,
            "defaultvalue": 10,
            "description": "The step in pixels for keyboard resizing.",
            "name": "config.keyboardStep"
          },
          {
            "type": {
              "names": [
                "number"
              ]
            },
            "optional": true,
            "defaultvalue": 200,
            "description": "Debounce time for keyboard resize end.",
            "name": "config.keyboardDebounceTime"
          },
          {
            "type": {
              "names": [
                "boolean"
              ]
            },
            "optional": true,
            "defaultvalue": true,
            "description": "If true, the Resizer will automatically bind its own events.",
            "name": "config.manageEvents"
          },
          {
            "type": {
              "names": [
                "boolean"
              ]
            },
            "optional": true,
            "defaultvalue": false,
            "description": "If true, the Resizer will manage the control's aria-label.",
            "name": "config.manageAriaLabel"
          },
          {
            "type": {
              "names": [
                "boolean"
              ]
            },
            "optional": true,
            "defaultvalue": true,
            "description": "If true, pointer events will enable resizing.",
            "name": "config.enablePointerResizing"
          },
          {
            "type": {
              "names": [
                "boolean"
              ]
            },
            "optional": true,
            "defaultvalue": true,
            "description": "If true, keyboard events will enable resizing.",
            "name": "config.enableKeyboardResizing"
          }
        ],
        "order": 147
      },
      {
        "longname": "",
        "name": "",
        "kind": "function",
        "description": "Resets all internal state properties to their default/inactive values.\nThis centralizes state cleanup and initial setup.",
        "memberof": "module:ui/resizer.Resizer",
        "params": [],
        "access": "private",
        "meta": {
          "lineno": 157,
          "filename": "resizer.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 148
      },
      {
        "longname": "",
        "name": "",
        "kind": "function",
        "description": "Initiates a resize operation.\nThis sets initial dimensions and dispatches the 'resizer:start' event.",
        "memberof": "module:ui/resizer.Resizer",
        "params": [
          {
            "type": {
              "names": [
                "Object"
              ]
            },
            "description": "Additional details about the initiating event.",
            "name": "eventDetails"
          }
        ],
        "access": "private",
        "meta": {
          "lineno": 200,
          "filename": "resizer.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 150
      },
      {
        "longname": "",
        "name": "",
        "kind": "function",
        "description": "Ends a resize operation.\nDispatches 'resizer:end' event and resets internal state.",
        "memberof": "module:ui/resizer.Resizer",
        "params": [],
        "access": "private",
        "meta": {
          "lineno": 244,
          "filename": "resizer.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 151
      },
      {
        "longname": "",
        "name": "",
        "kind": "function",
        "description": "Core logic for calculating and applying the new size of the container.\nThis method is called by both pointer and keyboard event handlers.",
        "memberof": "module:ui/resizer.Resizer",
        "params": [
          {
            "type": {
              "names": [
                "number"
              ]
            },
            "description": "The total horizontal displacement from the start of the resize.",
            "name": "totalDeltaX"
          },
          {
            "type": {
              "names": [
                "number"
              ]
            },
            "description": "The total vertical displacement from the start of the resize.",
            "name": "totalDeltaY"
          },
          {
            "type": {
              "names": [
                "Event"
              ]
            },
            "description": "The original DOM event (PointerEvent or KeyboardEvent) that triggered the update.",
            "name": "originalEvent"
          }
        ],
        "access": "private",
        "meta": {
          "lineno": 261,
          "filename": "resizer.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 152
      },
      {
        "id": "module:ui/resizer.Resizer#destroy",
        "longname": "module:ui/resizer.Resizer#destroy",
        "name": "destroy",
        "kind": "function",
        "scope": "instance",
        "description": "Cleans up event listeners and internal state to prevent memory leaks.",
        "memberof": "module:ui/resizer.Resizer",
        "params": [],
        "meta": {
          "lineno": 170,
          "filename": "resizer.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 149
      },
      {
        "id": "module:ui/resizer.Resizer#onPointerdown",
        "longname": "module:ui/resizer.Resizer#onPointerdown",
        "name": "onPointerdown",
        "kind": "function",
        "scope": "instance",
        "description": "Public handler for pointerdown events. Call this method from your own event listeners\nif `manageEvents` is false. Its logic will only execute if `enablePointerResizing` is true.",
        "memberof": "module:ui/resizer.Resizer",
        "params": [
          {
            "type": {
              "names": [
                "PointerEvent"
              ]
            },
            "description": "The pointerdown event.",
            "name": "e"
          }
        ],
        "meta": {
          "lineno": 301,
          "filename": "resizer.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 153
      },
      {
        "id": "module:ui/resizer.Resizer#onKeydown",
        "longname": "module:ui/resizer.Resizer#onKeydown",
        "name": "onKeydown",
        "kind": "function",
        "scope": "instance",
        "description": "Public handler for keydown events. Call this method from your own event listeners\nif `manageEvents` is false. Its logic will only execute if `enableKeyboardResizing` is true.",
        "memberof": "module:ui/resizer.Resizer",
        "params": [
          {
            "type": {
              "names": [
                "KeyboardEvent"
              ]
            },
            "description": "The keydown event.",
            "name": "e"
          }
        ],
        "meta": {
          "lineno": 347,
          "filename": "resizer.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 154
      },
      {
        "id": "module:ui/resizer.Resizer#getAriaLabel",
        "longname": "module:ui/resizer.Resizer#getAriaLabel",
        "name": "getAriaLabel",
        "kind": "function",
        "scope": "instance",
        "description": "Generates an accessible label for the resize control based on its configuration.\nThis is a convenience function that can be used by the consumer if `manageAriaLabel` is false.",
        "memberof": "module:ui/resizer.Resizer",
        "params": [],
        "returns": [
          {
            "type": {
              "names": [
                "string"
              ]
            },
            "description": "The suggested aria-label for the control."
          }
        ],
        "meta": {
          "lineno": 412,
          "filename": "resizer.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 155
      },
      {
        "id": "module:ui/resizer.Resizer#dispatchEvent",
        "longname": "module:ui/resizer.Resizer#dispatchEvent",
        "name": "dispatchEvent",
        "kind": "function",
        "scope": "instance",
        "description": "Dispatches a custom event on the container element.",
        "memberof": "module:ui/resizer.Resizer",
        "params": [
          {
            "type": {
              "names": [
                "string"
              ]
            },
            "description": "The event type (e.g., \"resizer:start\", \"resizer:update\", \"resizer:end\").",
            "name": "type"
          },
          {
            "type": {
              "names": [
                "Object"
              ]
            },
            "optional": true,
            "defaultvalue": "{}",
            "description": "Optional data to attach to the event's detail property.",
            "name": "data"
          }
        ],
        "meta": {
          "lineno": 429,
          "filename": "resizer.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 156
      }
    ],
    "module:ui/scrollpoint.Scrollpoint": [
      {
        "id": "module:ui/scrollpoint.Scrollpoint()",
        "longname": "module:ui/scrollpoint.Scrollpoint",
        "name": "exports.Scrollpoint",
        "kind": "constructor",
        "description": "Setup a new scrollpoint",
        "memberof": "module:ui/scrollpoint.Scrollpoint",
        "params": [
          {
            "type": {
              "names": [
                "Node"
              ]
            },
            "description": "The element to create the scrollpoint for",
            "name": "element"
          },
          {
            "type": {
              "names": [
                "Object"
              ]
            },
            "description": "Options to configure the scrollpoint see Scrollpoint.defaults for more information on settings",
            "name": "config"
          }
        ],
        "order": 181
      },
      {
        "id": "module:ui/scrollpoint.Scrollpoint#onObserve",
        "longname": "module:ui/scrollpoint.Scrollpoint#onObserve",
        "name": "onObserve",
        "kind": "function",
        "scope": "instance",
        "description": "IntersectionObserver Callback\n- Should set the state",
        "memberof": "module:ui/scrollpoint.Scrollpoint",
        "params": [],
        "meta": {
          "lineno": 176,
          "filename": "scrollpoint.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 182
      }
    ],
    "module:ui/tab-manager.TabManager": [
      {
        "id": "module:ui/tab-manager.TabManager()",
        "longname": "module:ui/tab-manager.TabManager",
        "name": "exports.TabManager",
        "kind": "constructor",
        "memberof": "module:ui/tab-manager.TabManager",
        "params": [
          {
            "type": {
              "names": [
                "HTMLElement"
              ]
            },
            "description": "The element with role=\"tablist\"",
            "name": "tablistElement"
          },
          {
            "type": {
              "names": [
                "Partial.<TabManagerOptions>"
              ]
            },
            "optional": true,
            "description": "Configuration options.",
            "name": "options"
          }
        ],
        "order": 203
      },
      {
        "id": "module:ui/tab-manager.TabManager#defaults",
        "longname": "module:ui/tab-manager.TabManager#defaults",
        "name": "defaults",
        "kind": "member",
        "scope": "instance",
        "description": "Default options for TabManager.",
        "memberof": "module:ui/tab-manager.TabManager",
        "type": {
          "names": [
            "TabManagerOptions"
          ]
        },
        "meta": {
          "lineno": 31,
          "filename": "tab-manager.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 201
      },
      {
        "id": "module:ui/tab-manager.TabManager#setupAttributes",
        "longname": "module:ui/tab-manager.TabManager#setupAttributes",
        "name": "setupAttributes",
        "kind": "function",
        "scope": "instance",
        "description": "Sets the necessary ARIA attributes and initial states for tabs and panels.",
        "memberof": "module:ui/tab-manager.TabManager",
        "params": [],
        "access": "private",
        "meta": {
          "lineno": 103,
          "filename": "tab-manager.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 204
      },
      {
        "id": "module:ui/tab-manager.TabManager#attachListeners",
        "longname": "module:ui/tab-manager.TabManager#attachListeners",
        "name": "attachListeners",
        "kind": "function",
        "scope": "instance",
        "description": "Attaches click and keydown event listeners to each tab.",
        "memberof": "module:ui/tab-manager.TabManager",
        "params": [],
        "access": "private",
        "meta": {
          "lineno": 134,
          "filename": "tab-manager.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 205
      },
      {
        "id": "module:ui/tab-manager.TabManager#handleClick",
        "longname": "module:ui/tab-manager.TabManager#handleClick",
        "name": "handleClick",
        "kind": "function",
        "scope": "instance",
        "description": "Handles click events on tabs, activating the corresponding panel.",
        "memberof": "module:ui/tab-manager.TabManager",
        "params": [
          {
            "type": {
              "names": [
                "MouseEvent"
              ]
            },
            "description": "The click event.",
            "name": "e"
          }
        ],
        "access": "private",
        "meta": {
          "lineno": 146,
          "filename": "tab-manager.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 206
      },
      {
        "id": "module:ui/tab-manager.TabManager#handleKeydown",
        "longname": "module:ui/tab-manager.TabManager#handleKeydown",
        "name": "handleKeydown",
        "kind": "function",
        "scope": "instance",
        "description": "Handles keyboard navigation (arrows, Home, End) on the tab list.",
        "memberof": "module:ui/tab-manager.TabManager",
        "params": [
          {
            "type": {
              "names": [
                "KeyboardEvent"
              ]
            },
            "description": "The keydown event.",
            "name": "e"
          }
        ],
        "access": "private",
        "meta": {
          "lineno": 156,
          "filename": "tab-manager.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 207
      },
      {
        "id": "module:ui/tab-manager.TabManager#activate",
        "longname": "module:ui/tab-manager.TabManager#activate",
        "name": "activate",
        "kind": "function",
        "scope": "instance",
        "description": "Activates a tab. Can be called with an index or a tab ID string.",
        "memberof": "module:ui/tab-manager.TabManager",
        "params": [
          {
            "type": {
              "names": [
                "Number",
                "String"
              ]
            },
            "description": "The index or ID of the tab to activate.",
            "name": "indexOrId"
          },
          {
            "type": {
              "names": [
                "Boolean"
              ]
            },
            "optional": true,
            "defaultvalue": true,
            "description": "If false, will not fire onChange or set URL hash.",
            "name": "triggerActions"
          }
        ],
        "meta": {
          "lineno": 195,
          "filename": "tab-manager.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 208
      },
      {
        "id": "module:ui/tab-manager.TabManager#activateById",
        "longname": "module:ui/tab-manager.TabManager#activateById",
        "name": "activateById",
        "kind": "function",
        "scope": "instance",
        "description": "Public method to activate a tab by its ID.",
        "memberof": "module:ui/tab-manager.TabManager",
        "params": [
          {
            "type": {
              "names": [
                "String"
              ]
            },
            "description": "The ID of the tab element to activate.",
            "name": "id"
          }
        ],
        "meta": {
          "lineno": 245,
          "filename": "tab-manager.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 209
      },
      {
        "id": "module:ui/tab-manager.TabManager#updatePanelHeights",
        "longname": "module:ui/tab-manager.TabManager#updatePanelHeights",
        "name": "updatePanelHeights",
        "kind": "function",
        "scope": "instance",
        "description": "Calculates and applies equal heights to all panels.\nWaits for images within panels to load before calculating.",
        "memberof": "module:ui/tab-manager.TabManager",
        "params": [],
        "meta": {
          "lineno": 253,
          "filename": "tab-manager.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 210
      },
      {
        "id": "module:ui/tab-manager.TabManager#destroy",
        "longname": "module:ui/tab-manager.TabManager#destroy",
        "name": "destroy",
        "kind": "function",
        "scope": "instance",
        "description": "Removes event listeners, cleans up ARIA attributes, and resets the DOM to its pre-initialized state.",
        "memberof": "module:ui/tab-manager.TabManager",
        "params": [],
        "meta": {
          "lineno": 294,
          "filename": "tab-manager.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 211
      }
    ],
    "module:utils/file-save.FileSave": [
      {
        "id": "module:utils/file-save.FileSave()",
        "longname": "module:utils/file-save.FileSave",
        "name": "exports.FileSave",
        "kind": "constructor",
        "memberof": "module:utils/file-save.FileSave",
        "params": [
          {
            "type": {
              "names": [
                "*"
              ]
            },
            "description": "Data to put in blob file",
            "name": "data"
          },
          {
            "type": {
              "names": [
                "FileSaveOptions"
              ]
            },
            "description": "Options for file, see defaults (ie. type, filename)",
            "name": "options"
          }
        ],
        "order": 276
      },
      {
        "id": "module:utils/file-save.FileSave#destroy",
        "longname": "module:utils/file-save.FileSave#destroy",
        "name": "destroy",
        "kind": "function",
        "scope": "instance",
        "description": "Remove the blob url",
        "memberof": "module:utils/file-save.FileSave",
        "params": [],
        "meta": {
          "lineno": 40,
          "filename": "file-save.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 277
      },
      {
        "id": "module:utils/file-save.FileSave#getUrl",
        "longname": "module:utils/file-save.FileSave#getUrl",
        "name": "getUrl",
        "kind": "function",
        "scope": "instance",
        "description": "Get the blob url",
        "memberof": "module:utils/file-save.FileSave",
        "params": [],
        "meta": {
          "lineno": 46,
          "filename": "file-save.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 278
      },
      {
        "id": "module:utils/file-save.FileSave#createLink",
        "longname": "module:utils/file-save.FileSave#createLink",
        "name": "createLink",
        "kind": "function",
        "scope": "instance",
        "description": "Create link element with blob as href",
        "memberof": "module:utils/file-save.FileSave",
        "params": [
          {
            "type": {
              "names": [
                "String"
              ]
            },
            "description": "The text to put in the link",
            "name": "text"
          }
        ],
        "meta": {
          "lineno": 53,
          "filename": "file-save.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 279
      },
      {
        "id": "module:utils/file-save.FileSave.isBrowserSupported",
        "longname": "module:utils/file-save.FileSave.isBrowserSupported",
        "name": "isBrowserSupported",
        "kind": "function",
        "scope": "static",
        "description": "Check for Compatibility (optional, implement on user side)",
        "memberof": "module:utils/file-save.FileSave",
        "params": [],
        "meta": {
          "lineno": 64,
          "filename": "file-save.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 280
      }
    ],
    "module:ui/flipcard.Flipcard": [
      {
        "id": "module:ui/flipcard.Flipcard#defaults",
        "longname": "module:ui/flipcard.Flipcard#defaults",
        "name": "defaults",
        "kind": "member",
        "scope": "instance",
        "description": "Default options for Flipcard",
        "memberof": "module:ui/flipcard.Flipcard",
        "meta": {
          "lineno": 42,
          "filename": "flipcard.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 93
      },
      {
        "id": "module:ui/flipcard.Flipcard#onProxyClick",
        "longname": "module:ui/flipcard.Flipcard#onProxyClick",
        "name": "onProxyClick",
        "kind": "function",
        "scope": "instance",
        "description": "Click handler on everything on container\n- Determines if click was something that should be ignored (link, etc)",
        "memberof": "module:ui/flipcard.Flipcard",
        "params": [],
        "meta": {
          "lineno": 112,
          "filename": "flipcard.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 95
      }
    ],
    "module:ui/slider.Slider": [
      {
        "id": "module:ui/slider.Slider#defaults",
        "longname": "module:ui/slider.Slider#defaults",
        "name": "defaults",
        "kind": "member",
        "scope": "instance",
        "description": "Default options for slider",
        "memberof": "module:ui/slider.Slider",
        "meta": {
          "lineno": 126,
          "filename": "slider.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 187
      },
      {
        "id": "module:ui/slider.Slider#handleResize",
        "longname": "module:ui/slider.Slider#handleResize",
        "name": "handleResize",
        "kind": "function",
        "scope": "instance",
        "description": "Sliding mechanism needs translate updated on resize",
        "memberof": "module:ui/slider.Slider",
        "params": [],
        "meta": {
          "lineno": 191,
          "filename": "slider.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 189
      },
      {
        "id": "module:ui/slider.Slider#previous",
        "longname": "module:ui/slider.Slider#previous",
        "name": "previous",
        "kind": "function",
        "scope": "instance",
        "description": "Goto to the previous slide",
        "memberof": "module:ui/slider.Slider",
        "params": [],
        "meta": {
          "lineno": 200,
          "filename": "slider.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 190
      },
      {
        "id": "module:ui/slider.Slider#next",
        "longname": "module:ui/slider.Slider#next",
        "name": "next",
        "kind": "function",
        "scope": "instance",
        "description": "Goto to the next slide",
        "memberof": "module:ui/slider.Slider",
        "params": [],
        "meta": {
          "lineno": 211,
          "filename": "slider.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 191
      },
      {
        "id": "module:ui/slider.Slider#ensureTransitionEnds",
        "longname": "module:ui/slider.Slider#ensureTransitionEnds",
        "name": "ensureTransitionEnds",
        "kind": "function",
        "scope": "instance",
        "description": "Makes sure that no matter what the callback is called if transition event\ndoesn't start or fails to finish/cancel",
        "memberof": "module:ui/slider.Slider",
        "params": [
          {
            "type": {
              "names": [
                "number"
              ]
            },
            "name": "element"
          },
          {
            "type": {
              "names": [
                "number"
              ]
            },
            "description": "Duration to wait for complete",
            "name": "duration"
          },
          {
            "type": {
              "names": [
                "function"
              ]
            },
            "description": "Css changes to begin/start transition",
            "name": "beginTransition"
          }
        ],
        "meta": {
          "lineno": 225,
          "filename": "slider.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 192
      },
      {
        "id": "module:ui/slider.Slider#translateTo",
        "longname": "module:ui/slider.Slider#translateTo",
        "name": "translateTo",
        "kind": "function",
        "scope": "instance",
        "description": "Translate the track to X",
        "memberof": "module:ui/slider.Slider",
        "params": [],
        "meta": {
          "lineno": 263,
          "filename": "slider.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 193
      },
      {
        "id": "module:ui/slider.Slider#setVisibility",
        "longname": "module:ui/slider.Slider#setVisibility",
        "name": "setVisibility",
        "kind": "function",
        "scope": "instance",
        "description": "Show's a specific slide and hides others, except when passing true to show all\nthen all slides will visible",
        "memberof": "module:ui/slider.Slider",
        "params": [],
        "meta": {
          "lineno": 277,
          "filename": "slider.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 194
      },
      {
        "id": "module:ui/slider.Slider#fadeSlide",
        "longname": "module:ui/slider.Slider#fadeSlide",
        "name": "fadeSlide",
        "kind": "function",
        "scope": "instance",
        "description": "Perform a fade on a single slide",
        "memberof": "module:ui/slider.Slider",
        "params": [],
        "meta": {
          "lineno": 290,
          "filename": "slider.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 195
      },
      {
        "id": "module:ui/slider.Slider#slideTransition",
        "longname": "module:ui/slider.Slider#slideTransition",
        "name": "slideTransition",
        "kind": "function",
        "scope": "instance",
        "description": "Handler for the entire slide transition",
        "memberof": "module:ui/slider.Slider",
        "params": [],
        "meta": {
          "lineno": 301,
          "filename": "slider.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "async": true,
        "order": 196
      },
      {
        "id": "module:ui/slider.Slider#fadeTransition",
        "longname": "module:ui/slider.Slider#fadeTransition",
        "name": "fadeTransition",
        "kind": "function",
        "scope": "instance",
        "description": "Handler for the entire fade transition",
        "memberof": "module:ui/slider.Slider",
        "params": [],
        "meta": {
          "lineno": 357,
          "filename": "slider.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "async": true,
        "order": 197
      },
      {
        "id": "module:ui/slider.Slider#noTransition",
        "longname": "module:ui/slider.Slider#noTransition",
        "name": "noTransition",
        "kind": "function",
        "scope": "instance",
        "description": "Handler for the entire NO transition",
        "memberof": "module:ui/slider.Slider",
        "params": [],
        "meta": {
          "lineno": 371,
          "filename": "slider.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 198
      }
    ],
    "module:ui/tooltip.Tooltip": [
      {
        "id": "module:ui/tooltip.Tooltip#defaults",
        "longname": "module:ui/tooltip.Tooltip#defaults",
        "name": "defaults",
        "kind": "member",
        "scope": "instance",
        "description": "Defaults options",
        "memberof": "module:ui/tooltip.Tooltip",
        "meta": {
          "lineno": 51,
          "filename": "tooltip.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 247
      }
    ],
    "module:ui/breakpoints~BreakpointDirection": [
      {
        "id": "module:ui/breakpoints~BreakpointDirection#change",
        "longname": "module:ui/breakpoints~BreakpointDirection#change",
        "name": "change",
        "kind": "function",
        "scope": "instance",
        "description": "Change the state of the direction",
        "memberof": "module:ui/breakpoints~BreakpointDirection",
        "params": [],
        "meta": {
          "lineno": 178,
          "filename": "breakpoints.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 43
      },
      {
        "id": "module:ui/breakpoints~BreakpointDirection#_call",
        "longname": "module:ui/breakpoints~BreakpointDirection#_call",
        "name": "_call",
        "kind": "function",
        "scope": "instance",
        "description": "Calls all functions in handlers or",
        "memberof": "module:ui/breakpoints~BreakpointDirection",
        "params": [],
        "meta": {
          "lineno": 188,
          "filename": "breakpoints.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 44
      },
      {
        "id": "module:ui/breakpoints~BreakpointDirection#getHandlers",
        "longname": "module:ui/breakpoints~BreakpointDirection#getHandlers",
        "name": "getHandlers",
        "kind": "function",
        "scope": "instance",
        "description": "Returns handlers in normalized object format on/off",
        "memberof": "module:ui/breakpoints~BreakpointDirection",
        "params": [],
        "meta": {
          "lineno": 196,
          "filename": "breakpoints.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 45
      },
      {
        "id": "module:ui/breakpoints~BreakpointDirection#add",
        "longname": "module:ui/breakpoints~BreakpointDirection#add",
        "name": "add",
        "kind": "function",
        "scope": "instance",
        "description": "Adds a handler for the direction, optionally use object to add off state handler",
        "memberof": "module:ui/breakpoints~BreakpointDirection",
        "params": [
          {
            "type": {
              "names": [
                "function",
                "Object"
              ]
            },
            "description": "Function to be executed when direction is active, read object description for on/off",
            "name": "handler"
          },
          {
            "type": {
              "names": [
                "function",
                "Object"
              ]
            },
            "description": "Function to be executed when direction is active",
            "name": "handler.on"
          },
          {
            "type": {
              "names": [
                "function",
                "Object"
              ]
            },
            "description": "Function to be executed when direction was active and is now changed to inactive",
            "name": "handler.off"
          }
        ],
        "meta": {
          "lineno": 205,
          "filename": "breakpoints.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 46
      },
      {
        "id": "module:ui/breakpoints~BreakpointDirection#remove",
        "longname": "module:ui/breakpoints~BreakpointDirection#remove",
        "name": "remove",
        "kind": "function",
        "scope": "instance",
        "description": "Removes a handler",
        "memberof": "module:ui/breakpoints~BreakpointDirection",
        "params": [],
        "meta": {
          "lineno": 222,
          "filename": "breakpoints.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 47
      }
    ],
    "module:ui/breakpoints~Breakpoint": [
      {
        "id": "module:ui/breakpoints~Breakpoint#_setDirection",
        "longname": "module:ui/breakpoints~Breakpoint#_setDirection",
        "name": "_setDirection",
        "kind": "function",
        "scope": "instance",
        "description": "Private method used inrternally for managing direction activation\n- Each direction manages it's own state and handlers",
        "memberof": "module:ui/breakpoints~Breakpoint",
        "params": [
          {
            "type": {
              "names": [
                "String"
              ]
            },
            "description": "The directional key",
            "name": "direction"
          },
          {
            "type": {
              "names": [
                "Boolean"
              ]
            },
            "description": "State of that direction to set",
            "name": "active"
          }
        ],
        "meta": {
          "lineno": 252,
          "filename": "breakpoints.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 49
      },
      {
        "id": "module:ui/breakpoints~Breakpoint#max",
        "longname": "module:ui/breakpoints~Breakpoint#max",
        "name": "max",
        "kind": "function",
        "scope": "instance",
        "description": "Attach handler to be executed from the breakpoint and to all breakpoints below (inclusive).\nThis corresponds to a `max-width` media query in SCSS.",
        "memberof": "module:ui/breakpoints~Breakpoint",
        "params": [
          {
            "type": {
              "names": [
                "function"
              ]
            },
            "description": "Handler to be executed",
            "name": "handler"
          }
        ],
        "meta": {
          "lineno": 260,
          "filename": "breakpoints.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 50
      },
      {
        "id": "module:ui/breakpoints~Breakpoint#min",
        "longname": "module:ui/breakpoints~Breakpoint#min",
        "name": "min",
        "kind": "function",
        "scope": "instance",
        "description": "Attach handler to be executed from the breakpoint and to all breakpoints above (inclusive).\nThis corresponds to a `min-width` media query in SCSS.",
        "memberof": "module:ui/breakpoints~Breakpoint",
        "params": [
          {
            "type": {
              "names": [
                "function"
              ]
            },
            "description": "Handler to be executed",
            "name": "handler"
          }
        ],
        "meta": {
          "lineno": 268,
          "filename": "breakpoints.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 51
      },
      {
        "id": "module:ui/breakpoints~Breakpoint#only",
        "longname": "module:ui/breakpoints~Breakpoint#only",
        "name": "only",
        "kind": "function",
        "scope": "instance",
        "description": "Attach a handler to fire when the breakpoint is within the key",
        "memberof": "module:ui/breakpoints~Breakpoint",
        "params": [
          {
            "type": {
              "names": [
                "function"
              ]
            },
            "description": "Handler to be executed",
            "name": "handler"
          }
        ],
        "meta": {
          "lineno": 275,
          "filename": "breakpoints.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 52
      },
      {
        "id": "module:ui/breakpoints~Breakpoint#remove",
        "longname": "module:ui/breakpoints~Breakpoint#remove",
        "name": "remove",
        "kind": "function",
        "scope": "instance",
        "description": "Remove handler",
        "memberof": "module:ui/breakpoints~Breakpoint",
        "params": [
          {
            "type": {
              "names": [
                "function"
              ]
            },
            "description": "Handler to be removed, extended on/off object style can be used",
            "name": "handler"
          },
          {
            "type": {
              "names": [
                "String"
              ]
            },
            "description": "Remove handler only from specified direction, else search all directions",
            "name": "direction"
          }
        ],
        "meta": {
          "lineno": 283,
          "filename": "breakpoints.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 53
      }
    ],
    "module:core/component": [
      {
        "id": "module:core/component.ComponentInitializer",
        "longname": "module:core/component.ComponentInitializer",
        "name": "ComponentInitializer",
        "kind": "class",
        "scope": "static",
        "description": "Class serves as a utility for UI modules, handling the selection of elements and the initialization of corresponding component instances, ensuring consistent setup within the module",
        "memberof": "module:core/component",
        "meta": {
          "lineno": 14,
          "filename": "component.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/core"
        },
        "order": 1
      }
    ],
    "module:ui/breakpoints": [
      {
        "id": "module:ui/breakpoints.BreakpointManager",
        "longname": "module:ui/breakpoints.BreakpointManager",
        "name": "BreakpointManager",
        "kind": "class",
        "scope": "static",
        "description": "Class that provides method for retrieving and acting on breakpoints passed\nfrom CSS (using element pseudo content prop)",
        "memberof": "module:ui/breakpoints",
        "meta": {
          "lineno": 20,
          "filename": "breakpoints.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 33
      },
      {
        "id": "module:ui/breakpoints~BreakpointDirection",
        "longname": "module:ui/breakpoints~BreakpointDirection",
        "name": "BreakpointDirection",
        "kind": "class",
        "scope": "inner",
        "description": "Used to handle a breakpoints direction's handler and state",
        "memberof": "module:ui/breakpoints",
        "meta": {
          "lineno": 167,
          "filename": "breakpoints.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 42
      },
      {
        "id": "module:ui/breakpoints~Breakpoint",
        "longname": "module:ui/breakpoints~Breakpoint",
        "name": "Breakpoint",
        "kind": "class",
        "scope": "inner",
        "description": "Single breakpoint management",
        "memberof": "module:ui/breakpoints",
        "meta": {
          "lineno": 236,
          "filename": "breakpoints.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 48
      }
    ],
    "module:ui/collapsible": [
      {
        "id": "module:ui/collapsible.Collapsible",
        "longname": "module:ui/collapsible.Collapsible",
        "name": "Collapsible",
        "kind": "class",
        "scope": "static",
        "description": "Class for accessible hide/show components",
        "memberof": "module:ui/collapsible",
        "meta": {
          "lineno": 12,
          "filename": "collapsible.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 59
      },
      {
        "id": "module:ui/collapsible~selfManaged",
        "longname": "module:ui/collapsible~selfManaged",
        "name": "selfManaged",
        "kind": "member",
        "scope": "inner",
        "description": "The module won't attach the handlers (you need to do it yourself)",
        "memberof": "module:ui/collapsible",
        "meta": {
          "lineno": 22,
          "filename": "collapsible.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 55
      },
      {
        "id": "module:ui/collapsible~startOpen",
        "longname": "module:ui/collapsible~startOpen",
        "name": "startOpen",
        "kind": "member",
        "scope": "inner",
        "description": "This collapsible starts in open state",
        "memberof": "module:ui/collapsible",
        "meta": {
          "lineno": 27,
          "filename": "collapsible.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 56
      },
      {
        "id": "module:ui/collapsible~openClass",
        "longname": "module:ui/collapsible~openClass",
        "name": "openClass",
        "kind": "member",
        "scope": "inner",
        "description": "Open/active state class",
        "memberof": "module:ui/collapsible",
        "meta": {
          "lineno": 31,
          "filename": "collapsible.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 57
      },
      {
        "id": "module:ui/collapsible~debug",
        "longname": "module:ui/collapsible~debug",
        "name": "debug",
        "kind": "member",
        "scope": "inner",
        "description": "Output debug info",
        "memberof": "module:ui/collapsible",
        "meta": {
          "lineno": 35,
          "filename": "collapsible.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 58
      }
    ],
    "module:ui/flipcard": [
      {
        "id": "module:ui/flipcard.Flipcard",
        "longname": "module:ui/flipcard.Flipcard",
        "name": "Flipcard",
        "kind": "class",
        "scope": "static",
        "description": "Flipcard class (creates flipcard instance and behaviors)",
        "memberof": "module:ui/flipcard",
        "meta": {
          "lineno": 37,
          "filename": "flipcard.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 94
      },
      {
        "id": "module:ui/flipcard.initializer",
        "longname": "module:ui/flipcard.initializer",
        "name": "initializer",
        "kind": "constant",
        "scope": "static",
        "description": "Flipcard Component Initializer",
        "memberof": "module:ui/flipcard",
        "meta": {
          "lineno": 12,
          "filename": "flipcard.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 91
      },
      {
        "id": "module:ui/flipcard.init",
        "longname": "module:ui/flipcard.init",
        "name": "init",
        "kind": "function",
        "scope": "static",
        "description": "Initialize flipcards using data-ulu-flipcard attribute",
        "memberof": "module:ui/flipcard",
        "meta": {
          "lineno": 20,
          "filename": "flipcard.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 92
      }
    ],
    "module:ui/popover": [
      {
        "id": "module:ui/popover.Popover",
        "longname": "module:ui/popover.Popover",
        "name": "Popover",
        "kind": "class",
        "scope": "static",
        "description": "Class that extends Collapsible adding floating-ui for popover behavior",
        "memberof": "module:ui/popover",
        "meta": {
          "lineno": 107,
          "filename": "popover.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 118
      },
      {
        "id": "module:ui/popover.initializer",
        "longname": "module:ui/popover.initializer",
        "name": "initializer",
        "kind": "constant",
        "scope": "static",
        "description": "Popover Component Initializer",
        "memberof": "module:ui/popover",
        "meta": {
          "lineno": 12,
          "filename": "popover.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 114
      },
      {
        "id": "module:ui/popover.instances",
        "longname": "module:ui/popover.instances",
        "name": "instances",
        "kind": "constant",
        "scope": "static",
        "description": "Array of current instances",
        "memberof": "module:ui/popover",
        "meta": {
          "lineno": 25,
          "filename": "popover.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 115
      },
      {
        "id": "module:ui/popover.init",
        "longname": "module:ui/popover.init",
        "name": "init",
        "kind": "function",
        "scope": "static",
        "description": "Initialize default popover",
        "memberof": "module:ui/popover",
        "meta": {
          "lineno": 36,
          "filename": "popover.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 116
      },
      {
        "id": "module:ui/popover.resolve",
        "longname": "module:ui/popover.resolve",
        "name": "resolve",
        "kind": "function",
        "scope": "static",
        "description": "Find the popover's elements",
        "memberof": "module:ui/popover",
        "meta": {
          "lineno": 60,
          "filename": "popover.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 117
      }
    ],
    "module:ui/resizer": [
      {
        "id": "module:ui/resizer.Resizer",
        "longname": "module:ui/resizer.Resizer",
        "name": "Resizer",
        "kind": "class",
        "scope": "static",
        "description": "Class for creating/controlling a container size with a handle/control",
        "memberof": "module:ui/resizer",
        "meta": {
          "lineno": 14,
          "filename": "resizer.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 146
      },
      {
        "id": "module:ui/resizer~multiplier",
        "longname": "module:ui/resizer~multiplier",
        "name": "multiplier",
        "kind": "member",
        "scope": "inner",
        "description": "Amount to increase size by (ie. pointer movement * multiplier)",
        "memberof": "module:ui/resizer",
        "meta": {
          "lineno": 20,
          "filename": "resizer.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 136
      },
      {
        "id": "module:ui/resizer~overrideMaxDimensions",
        "longname": "module:ui/resizer~overrideMaxDimensions",
        "name": "overrideMaxDimensions",
        "kind": "member",
        "scope": "inner",
        "description": "Remove max-width, max-height",
        "memberof": "module:ui/resizer",
        "meta": {
          "lineno": 24,
          "filename": "resizer.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 137
      },
      {
        "id": "module:ui/resizer~fromX",
        "longname": "module:ui/resizer~fromX",
        "name": "fromX",
        "kind": "member",
        "scope": "inner",
        "description": "Specifies the horizontal edge from which resizing occurs.`null` means no horizontal resizing.- Default null",
        "memberof": "module:ui/resizer",
        "type": {
          "names": [
            "\"left\"",
            "\"right\"",
            "null"
          ]
        },
        "meta": {
          "lineno": 31,
          "filename": "resizer.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 138
      },
      {
        "id": "module:ui/resizer~fromY",
        "longname": "module:ui/resizer~fromY",
        "name": "fromY",
        "kind": "member",
        "scope": "inner",
        "description": "Specifies the vertical edge from which resizing occurs.- `null` means no vertical resizing.- Default null",
        "memberof": "module:ui/resizer",
        "type": {
          "names": [
            "\"top\"",
            "\"bottom\"",
            "null"
          ]
        },
        "meta": {
          "lineno": 38,
          "filename": "resizer.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 139
      },
      {
        "id": "module:ui/resizer~keyboardStep",
        "longname": "module:ui/resizer~keyboardStep",
        "name": "keyboardStep",
        "kind": "member",
        "scope": "inner",
        "description": "The step in pixels for keyboard resizing with arrow keys.",
        "memberof": "module:ui/resizer",
        "meta": {
          "lineno": 42,
          "filename": "resizer.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 140
      },
      {
        "id": "module:ui/resizer~keyboardDebounceTime",
        "longname": "module:ui/resizer~keyboardDebounceTime",
        "name": "keyboardDebounceTime",
        "kind": "member",
        "scope": "inner",
        "description": "Debounce time in milliseconds for ending a keyboard resize.",
        "memberof": "module:ui/resizer",
        "meta": {
          "lineno": 46,
          "filename": "resizer.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 141
      },
      {
        "id": "module:ui/resizer~manageEvents",
        "longname": "module:ui/resizer~manageEvents",
        "name": "manageEvents",
        "kind": "member",
        "scope": "inner",
        "description": "If true, the Resizer instance will automatically bind its own DOM event listeners\n(pointerdown, keydown) to the control element. If `false`, the user is\nresponsible for calling `resizerInstance.onPointerdown(event)` and\n`resizerInstance.onKeydown(event)` from their own listeners.\nDefault: true",
        "memberof": "module:ui/resizer",
        "meta": {
          "lineno": 54,
          "filename": "resizer.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 142
      },
      {
        "id": "module:ui/resizer~manageAriaLabel",
        "longname": "module:ui/resizer~manageAriaLabel",
        "name": "manageAriaLabel",
        "kind": "member",
        "scope": "inner",
        "description": "If true, the Resizer instance will automatically manage the `aria-label`\nattribute of the control element. If `false`, the user is responsible\nfor setting this attribute.\nDefault: false",
        "memberof": "module:ui/resizer",
        "meta": {
          "lineno": 61,
          "filename": "resizer.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 143
      },
      {
        "id": "module:ui/resizer~enablePointerResizing",
        "longname": "module:ui/resizer~enablePointerResizing",
        "name": "enablePointerResizing",
        "kind": "member",
        "scope": "inner",
        "description": "If true, pointer events (mouse/touch) will enable resizing.\nDefault: true",
        "memberof": "module:ui/resizer",
        "meta": {
          "lineno": 66,
          "filename": "resizer.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 144
      },
      {
        "id": "module:ui/resizer~enableKeyboardResizing",
        "longname": "module:ui/resizer~enableKeyboardResizing",
        "name": "enableKeyboardResizing",
        "kind": "member",
        "scope": "inner",
        "description": "If true, keyboard events (arrow keys) will enable resizing.\nDefault: true",
        "memberof": "module:ui/resizer",
        "meta": {
          "lineno": 71,
          "filename": "resizer.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 145
      }
    ],
    "module:ui/scrollpoint": [
      {
        "id": "module:ui/scrollpoint.Scrollpoint",
        "longname": "module:ui/scrollpoint.Scrollpoint",
        "name": "Scrollpoint",
        "kind": "class",
        "scope": "static",
        "description": "Single scrollpoint\n- Note \"forward\" and \"reverse\" refer to scroll directions\n  - forward = vertical below / horizontal right\n  - reverse = vertical above / horizontal left",
        "memberof": "module:ui/scrollpoint",
        "todoList": [
          {
            "done": false,
            "task": "Convert margin to offset"
          },
          {
            "done": false,
            "task": "This only goes one direction"
          }
        ],
        "meta": {
          "lineno": 52,
          "filename": "scrollpoint.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 180
      },
      {
        "id": "module:ui/scrollpoint.initializer",
        "longname": "module:ui/scrollpoint.initializer",
        "name": "initializer",
        "kind": "constant",
        "scope": "static",
        "description": "Scrollpoint Component Initializer",
        "memberof": "module:ui/scrollpoint",
        "meta": {
          "lineno": 23,
          "filename": "scrollpoint.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 162
      },
      {
        "id": "module:ui/scrollpoint.init",
        "longname": "module:ui/scrollpoint.init",
        "name": "init",
        "kind": "function",
        "scope": "static",
        "description": "Initialize everything in document\n- This will only initialize elements once, it is safe to call on page changes",
        "memberof": "module:ui/scrollpoint",
        "meta": {
          "lineno": 32,
          "filename": "scrollpoint.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 163
      },
      {
        "id": "module:ui/scrollpoint~root",
        "longname": "module:ui/scrollpoint~root",
        "name": "root",
        "kind": "member",
        "scope": "inner",
        "description": "Default observer root element",
        "memberof": "module:ui/scrollpoint",
        "meta": {
          "lineno": 57,
          "filename": "scrollpoint.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 164
      },
      {
        "id": "module:ui/scrollpoint~rootSelector",
        "longname": "module:ui/scrollpoint~rootSelector",
        "name": "rootSelector",
        "kind": "member",
        "scope": "inner",
        "description": "Use a selector to select the observer root element",
        "memberof": "module:ui/scrollpoint",
        "meta": {
          "lineno": 61,
          "filename": "scrollpoint.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 165
      },
      {
        "id": "module:ui/scrollpoint~debug",
        "longname": "module:ui/scrollpoint~debug",
        "name": "debug",
        "kind": "member",
        "scope": "inner",
        "description": "Log debug info to console",
        "memberof": "module:ui/scrollpoint",
        "meta": {
          "lineno": 65,
          "filename": "scrollpoint.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 166
      },
      {
        "id": "module:ui/scrollpoint~horizontal",
        "longname": "module:ui/scrollpoint~horizontal",
        "name": "horizontal",
        "kind": "member",
        "scope": "inner",
        "description": "Change scroll orientation to horizontal",
        "memberof": "module:ui/scrollpoint",
        "meta": {
          "lineno": 69,
          "filename": "scrollpoint.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 167
      },
      {
        "id": "module:ui/scrollpoint~marginStart",
        "longname": "module:ui/scrollpoint~marginStart",
        "name": "marginStart",
        "kind": "member",
        "scope": "inner",
        "description": "Margin for observer top or left (depending on orientation)",
        "memberof": "module:ui/scrollpoint",
        "meta": {
          "lineno": 73,
          "filename": "scrollpoint.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 168
      },
      {
        "id": "module:ui/scrollpoint~marginEnd",
        "longname": "module:ui/scrollpoint~marginEnd",
        "name": "marginEnd",
        "kind": "member",
        "scope": "inner",
        "description": "Margin for observer bottom or right (depending on orientation)",
        "memberof": "module:ui/scrollpoint",
        "meta": {
          "lineno": 77,
          "filename": "scrollpoint.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 169
      },
      {
        "id": "module:ui/scrollpoint~threshold",
        "longname": "module:ui/scrollpoint~threshold",
        "name": "threshold",
        "kind": "member",
        "scope": "inner",
        "description": "Threshold for observer",
        "memberof": "module:ui/scrollpoint",
        "meta": {
          "lineno": 81,
          "filename": "scrollpoint.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 170
      },
      {
        "id": "module:ui/scrollpoint~exit",
        "longname": "module:ui/scrollpoint~exit",
        "name": "exit",
        "kind": "member",
        "scope": "inner",
        "description": "The point can exited (else persists)",
        "memberof": "module:ui/scrollpoint",
        "meta": {
          "lineno": 85,
          "filename": "scrollpoint.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 171
      },
      {
        "id": "module:ui/scrollpoint~exitForward",
        "longname": "module:ui/scrollpoint~exitForward",
        "name": "exitForward",
        "kind": "member",
        "scope": "inner",
        "description": "The point can exit from the end",
        "memberof": "module:ui/scrollpoint",
        "meta": {
          "lineno": 89,
          "filename": "scrollpoint.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 172
      },
      {
        "id": "module:ui/scrollpoint~exitReverse",
        "longname": "module:ui/scrollpoint~exitReverse",
        "name": "exitReverse",
        "kind": "member",
        "scope": "inner",
        "description": "The point can exit from the start",
        "memberof": "module:ui/scrollpoint",
        "meta": {
          "lineno": 93,
          "filename": "scrollpoint.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 173
      },
      {
        "id": "module:ui/scrollpoint~setClasses",
        "longname": "module:ui/scrollpoint~setClasses",
        "name": "setClasses",
        "kind": "member",
        "scope": "inner",
        "description": "Set state classes",
        "memberof": "module:ui/scrollpoint",
        "meta": {
          "lineno": 97,
          "filename": "scrollpoint.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 174
      },
      {
        "id": "module:ui/scrollpoint~classPrefix",
        "longname": "module:ui/scrollpoint~classPrefix",
        "name": "classPrefix",
        "kind": "member",
        "scope": "inner",
        "description": "Prefix for classes",
        "memberof": "module:ui/scrollpoint",
        "meta": {
          "lineno": 101,
          "filename": "scrollpoint.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 175
      },
      {
        "id": "module:ui/scrollpoint~setAttribute",
        "longname": "module:ui/scrollpoint~setAttribute",
        "name": "setAttribute",
        "kind": "member",
        "scope": "inner",
        "description": "Set attribute for state (less verbose same info as classes)",
        "memberof": "module:ui/scrollpoint",
        "meta": {
          "lineno": 105,
          "filename": "scrollpoint.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 176
      },
      {
        "id": "module:ui/scrollpoint~attributeName",
        "longname": "module:ui/scrollpoint~attributeName",
        "name": "attributeName",
        "kind": "member",
        "scope": "inner",
        "description": "Attribute name to set state info in",
        "memberof": "module:ui/scrollpoint",
        "meta": {
          "lineno": 109,
          "filename": "scrollpoint.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 177
      },
      {
        "id": "module:ui/scrollpoint~syncElements",
        "longname": "module:ui/scrollpoint~syncElements",
        "name": "syncElements",
        "kind": "member",
        "scope": "inner",
        "description": "Elements that should also get active state info (classes or attributes)",
        "memberof": "module:ui/scrollpoint",
        "meta": {
          "lineno": 117,
          "filename": "scrollpoint.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 178
      },
      {
        "id": "module:ui/scrollpoint~onChange",
        "longname": "module:ui/scrollpoint~onChange",
        "name": "onChange",
        "kind": "function",
        "scope": "inner",
        "description": "Callback called when state changes",
        "memberof": "module:ui/scrollpoint",
        "meta": {
          "lineno": 121,
          "filename": "scrollpoint.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 179
      }
    ],
    "module:ui/slider": [
      {
        "id": "module:ui/slider.Slider",
        "longname": "module:ui/slider.Slider",
        "name": "Slider",
        "kind": "class",
        "scope": "static",
        "description": "Class that controls slider",
        "memberof": "module:ui/slider",
        "meta": {
          "lineno": 105,
          "filename": "slider.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 188
      },
      {
        "id": "module:ui/slider.initializer",
        "longname": "module:ui/slider.initializer",
        "name": "initializer",
        "kind": "constant",
        "scope": "static",
        "description": "Slider Component Initializer",
        "memberof": "module:ui/slider",
        "meta": {
          "lineno": 45,
          "filename": "slider.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 184
      },
      {
        "id": "module:ui/slider.init",
        "longname": "module:ui/slider.init",
        "name": "init",
        "kind": "function",
        "scope": "static",
        "description": "Initialize all sliders based on data attribute selectors",
        "memberof": "module:ui/slider",
        "meta": {
          "lineno": 69,
          "filename": "slider.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 185
      },
      {
        "id": "module:ui/slider.setupSlider",
        "longname": "module:ui/slider.setupSlider",
        "name": "setupSlider",
        "kind": "function",
        "scope": "static",
        "description": "Setup single slider instance from querying via data attribute selectors",
        "memberof": "module:ui/slider",
        "params": [
          {
            "type": {
              "names": [
                "Node"
              ]
            },
            "description": "The slide container to query children from",
            "name": "container"
          },
          {
            "type": {
              "names": [
                "Object"
              ]
            },
            "description": "Options for slider class",
            "name": "options"
          }
        ],
        "meta": {
          "lineno": 85,
          "filename": "slider.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 186
      }
    ],
    "module:ui/tab-manager": [
      {
        "id": "module:ui/tab-manager.TabManager",
        "longname": "module:ui/tab-manager.TabManager",
        "name": "TabManager",
        "kind": "class",
        "scope": "static",
        "description": "Class for managing  Aria tabs\n- Designed to be minimal and lightweight but cover all traditional needs\n- Designed for static / traditional webpages (not SPA)\n- Separated from tabs.js so it can be used by itself as needed (tree-shaking)",
        "memberof": "module:ui/tab-manager",
        "meta": {
          "lineno": 26,
          "filename": "tab-manager.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 202
      },
      {
        "id": "module:ui/tab-manager~TabManagerOptions",
        "longname": "module:ui/tab-manager~TabManagerOptions",
        "name": "TabManagerOptions",
        "kind": "typedef",
        "scope": "inner",
        "memberof": "module:ui/tab-manager",
        "type": {
          "names": [
            "Object"
          ]
        },
        "properties": [
          {
            "type": {
              "names": [
                "String",
                "null"
              ]
            },
            "optional": true,
            "defaultvalue": null,
            "description": "\"horizontal\"|\"vertical\", auto-detected if omitted.",
            "name": "orientation"
          },
          {
            "type": {
              "names": [
                "Number"
              ]
            },
            "optional": true,
            "defaultvalue": 0,
            "description": "Index to activate on load.",
            "name": "initialIndex"
          },
          {
            "type": {
              "names": [
                "Boolean"
              ]
            },
            "optional": true,
            "defaultvalue": false,
            "description": "Allow all arrow keys to navigate regardless of orientation.",
            "name": "allArrows"
          },
          {
            "type": {
              "names": [
                "Boolean"
              ]
            },
            "optional": true,
            "defaultvalue": false,
            "description": "Activate tab based on URL hash on initialization.",
            "name": "openByUrlHash"
          },
          {
            "type": {
              "names": [
                "Boolean"
              ]
            },
            "optional": true,
            "defaultvalue": false,
            "description": "Update URL hash when a new tab is activated.",
            "name": "setUrlHash"
          },
          {
            "type": {
              "names": [
                "Boolean"
              ]
            },
            "optional": true,
            "defaultvalue": false,
            "description": "Automatically match the height of all panels.",
            "name": "equalHeights"
          },
          {
            "type": {
              "names": [
                "function",
                "null"
              ]
            },
            "optional": true,
            "defaultvalue": null,
            "description": "Callback fired after initialization: (instance) => {}",
            "name": "onReady"
          },
          {
            "type": {
              "names": [
                "function",
                "null"
              ]
            },
            "optional": true,
            "defaultvalue": null,
            "description": "Callback fired when tab changes: (active, previous) => {}",
            "name": "onChange"
          }
        ],
        "meta": {
          "lineno": 8,
          "filename": "tab-manager.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 200
      }
    ],
    "module:ui/tooltip": [
      {
        "id": "module:ui/tooltip.Tooltip",
        "longname": "module:ui/tooltip.Tooltip",
        "name": "Tooltip",
        "kind": "class",
        "scope": "static",
        "description": "Tooltip\n- Provides basic tooltip functionality\n- Uses floating UI for positioning",
        "memberof": "module:ui/tooltip",
        "meta": {
          "lineno": 47,
          "filename": "tooltip.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 258
      },
      {
        "id": "module:ui/tooltip.initializer",
        "longname": "module:ui/tooltip.initializer",
        "name": "initializer",
        "kind": "constant",
        "scope": "static",
        "description": "Tooltip Component Initializer",
        "memberof": "module:ui/tooltip",
        "meta": {
          "lineno": 15,
          "filename": "tooltip.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 245
      },
      {
        "id": "module:ui/tooltip.init",
        "longname": "module:ui/tooltip.init",
        "name": "init",
        "kind": "function",
        "scope": "static",
        "description": "Initialize default popover",
        "memberof": "module:ui/tooltip",
        "meta": {
          "lineno": 27,
          "filename": "tooltip.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 246
      },
      {
        "id": "module:ui/tooltip~accessible",
        "longname": "module:ui/tooltip~accessible",
        "name": "accessible",
        "kind": "member",
        "scope": "inner",
        "description": "Should the tooltip and content be linked accessibly\n- Note tooltips can only apply to interactive elements! (ie button, input, role=\"...\", etc)",
        "memberof": "module:ui/tooltip",
        "type": {
          "names": [
            "Boolean"
          ]
        },
        "meta": {
          "lineno": 57,
          "filename": "tooltip.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 248
      },
      {
        "id": "module:ui/tooltip~content",
        "longname": "module:ui/tooltip~content",
        "name": "content",
        "kind": "member",
        "scope": "inner",
        "description": "String/markup to insert into tooltip display",
        "memberof": "module:ui/tooltip",
        "type": {
          "names": [
            "String"
          ]
        },
        "meta": {
          "lineno": 62,
          "filename": "tooltip.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 249
      },
      {
        "id": "module:ui/tooltip~fromElement",
        "longname": "module:ui/tooltip~fromElement",
        "name": "fromElement",
        "kind": "member",
        "scope": "inner",
        "description": "Pull content from pre-existing content on page",
        "memberof": "module:ui/tooltip",
        "type": {
          "names": [
            "String",
            "Node"
          ]
        },
        "meta": {
          "lineno": 70,
          "filename": "tooltip.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 250
      },
      {
        "id": "module:ui/tooltip~fromAnchor",
        "longname": "module:ui/tooltip~fromAnchor",
        "name": "fromAnchor",
        "kind": "member",
        "scope": "inner",
        "description": "If used on a link that is an anchor link it will display the content of the anchor like fromElement",
        "memberof": "module:ui/tooltip",
        "meta": {
          "lineno": 74,
          "filename": "tooltip.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 251
      },
      {
        "id": "module:ui/tooltip~endOfDocument",
        "longname": "module:ui/tooltip~endOfDocument",
        "name": "endOfDocument",
        "kind": "member",
        "scope": "inner",
        "description": "Move the content to the bottom of the document",
        "memberof": "module:ui/tooltip",
        "type": {
          "names": [
            "Boolean"
          ]
        },
        "meta": {
          "lineno": 79,
          "filename": "tooltip.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 252
      },
      {
        "id": "module:ui/tooltip~showEvents",
        "longname": "module:ui/tooltip~showEvents",
        "name": "showEvents",
        "kind": "member",
        "scope": "inner",
        "description": "Events to show tooltip on",
        "memberof": "module:ui/tooltip",
        "type": {
          "names": [
            "Array.<String>"
          ]
        },
        "meta": {
          "lineno": 84,
          "filename": "tooltip.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 253
      },
      {
        "id": "module:ui/tooltip~hideEvents",
        "longname": "module:ui/tooltip~hideEvents",
        "name": "hideEvents",
        "kind": "member",
        "scope": "inner",
        "description": "Events to hide tooltip on",
        "memberof": "module:ui/tooltip",
        "type": {
          "names": [
            "Array.<String>"
          ]
        },
        "meta": {
          "lineno": 89,
          "filename": "tooltip.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 254
      },
      {
        "id": "module:ui/tooltip~delay",
        "longname": "module:ui/tooltip~delay",
        "name": "delay",
        "kind": "member",
        "scope": "inner",
        "description": "Delay when using the directive",
        "memberof": "module:ui/tooltip",
        "type": {
          "names": [
            "Number"
          ]
        },
        "meta": {
          "lineno": 94,
          "filename": "tooltip.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 255
      },
      {
        "id": "module:ui/tooltip~template",
        "longname": "module:ui/tooltip~template",
        "name": "template",
        "kind": "function",
        "scope": "inner",
        "description": "Template for the content display",
        "memberof": "module:ui/tooltip",
        "meta": {
          "lineno": 98,
          "filename": "tooltip.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 256
      },
      {
        "id": "module:ui/tooltip~onChange",
        "longname": "module:ui/tooltip~onChange",
        "name": "onChange",
        "kind": "function",
        "scope": "inner",
        "description": "Callback when tooltip is shown or hidden",
        "memberof": "module:ui/tooltip",
        "type": {
          "names": [
            "function"
          ]
        },
        "meta": {
          "lineno": 111,
          "filename": "tooltip.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 257
      }
    ],
    "module:utils/file-save": [
      {
        "id": "module:utils/file-save.FileSave",
        "longname": "module:utils/file-save.FileSave",
        "name": "FileSave",
        "kind": "class",
        "scope": "static",
        "description": "Simple script that is useful for testing\n- Make a file \n- Create a URL to it\n- Gives utility function to create a link to the file (for front end)\n- Gives method to destroy the file when no longer needed\n- User can redefine the program by passing options object matching props.     \nLimited to new browsers that support Blob(), also user preferences or type of browser may limit access to Blob functionality",
        "memberof": "module:utils/file-save",
        "meta": {
          "lineno": 22,
          "filename": "file-save.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 275
      },
      {
        "id": "module:utils/file-save~FileSaveOptions",
        "longname": "module:utils/file-save~FileSaveOptions",
        "name": "FileSaveOptions",
        "kind": "typedef",
        "scope": "inner",
        "description": "Options",
        "memberof": "module:utils/file-save",
        "type": {
          "names": [
            "Object"
          ]
        },
        "properties": [
          {
            "type": {
              "names": [
                "String"
              ]
            },
            "description": "Filename for blob when creating a link (ie createLink) [default \"filesave-file.txt\"]",
            "name": "filename"
          },
          {
            "type": {
              "names": [
                "String"
              ]
            },
            "description": "Filename for blob when creating a link (ie createLink) [default \"text/plain;charset=utf-8\"]",
            "name": "type"
          }
        ],
        "meta": {
          "lineno": 5,
          "filename": "file-save.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 274
      }
    ],
    "module:ui/dialog~defaults": [
      {
        "id": "module:ui/dialog~defaults.nonModal",
        "longname": "module:ui/dialog~defaults.nonModal",
        "name": "nonModal",
        "kind": "member",
        "scope": "static",
        "description": "Use non-modal interface for dialog",
        "memberof": "module:ui/dialog~defaults",
        "meta": {
          "lineno": 34,
          "filename": "dialog.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 77
      },
      {
        "id": "module:ui/dialog~defaults.documentEnd",
        "longname": "module:ui/dialog~defaults.documentEnd",
        "name": "documentEnd",
        "kind": "member",
        "scope": "static",
        "description": "Move the dialog to the document end (hoist out of content)\n- helpful if dialogs are within editor body, etc",
        "memberof": "module:ui/dialog~defaults",
        "meta": {
          "lineno": 39,
          "filename": "dialog.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 78
      },
      {
        "id": "module:ui/dialog~defaults.clickOutsideCloses",
        "longname": "module:ui/dialog~defaults.clickOutsideCloses",
        "name": "clickOutsideCloses",
        "kind": "member",
        "scope": "static",
        "description": "Requires styling that reduces any padding/border on dialog",
        "memberof": "module:ui/dialog~defaults",
        "meta": {
          "lineno": 43,
          "filename": "dialog.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 79
      },
      {
        "id": "module:ui/dialog~defaults.pauseVideos",
        "longname": "module:ui/dialog~defaults.pauseVideos",
        "name": "pauseVideos",
        "kind": "member",
        "scope": "static",
        "description": "Whether or not to pause videos when dialog closes (currently just youtube and native)",
        "memberof": "module:ui/dialog~defaults",
        "meta": {
          "lineno": 47,
          "filename": "dialog.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 80
      },
      {
        "id": "module:ui/dialog~defaults.preventScroll",
        "longname": "module:ui/dialog~defaults.preventScroll",
        "name": "preventScroll",
        "kind": "member",
        "scope": "static",
        "description": "When open and not non-modal, the body is prevented from scrolling (defaults to true).",
        "memberof": "module:ui/dialog~defaults",
        "meta": {
          "lineno": 51,
          "filename": "dialog.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 81
      },
      {
        "id": "module:ui/dialog~defaults.preventScrollShift",
        "longname": "module:ui/dialog~defaults.preventScrollShift",
        "name": "preventScrollShift",
        "kind": "member",
        "scope": "static",
        "description": "Compensate for layout shift when preventing scroll. Which adds padding equal to scrollbars \nwidth while dialog is open",
        "memberof": "module:ui/dialog~defaults",
        "meta": {
          "lineno": 56,
          "filename": "dialog.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 82
      }
    ],
    "module:ui/print~defaults": [
      {
        "id": "module:ui/print~defaults.element",
        "longname": "module:ui/print~defaults.element",
        "name": "element",
        "kind": "member",
        "scope": "static",
        "description": "Print element/selector",
        "memberof": "module:ui/print~defaults",
        "meta": {
          "lineno": 21,
          "filename": "print.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 124
      }
    ],
    "module:ui/theme-toggle~defaults": [
      {
        "id": "module:ui/theme-toggle~defaults.themes",
        "longname": "module:ui/theme-toggle~defaults.themes",
        "name": "themes",
        "kind": "member",
        "scope": "static",
        "description": "Object of each theme that should be toggle/cycled through",
        "memberof": "module:ui/theme-toggle~defaults",
        "meta": {
          "lineno": 44,
          "filename": "theme-toggle.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 220
      },
      {
        "id": "module:ui/theme-toggle~defaults.target",
        "longname": "module:ui/theme-toggle~defaults.target",
        "name": "target",
        "kind": "member",
        "scope": "static",
        "description": "Required this is the element(s) that should be changed by a specific toggle\n- The element should have data-ulu-theme-toggle-target=\"SOME_IDENTIFIER\"",
        "memberof": "module:ui/theme-toggle~defaults",
        "meta": {
          "lineno": 63,
          "filename": "theme-toggle.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 221
      },
      {
        "id": "module:ui/theme-toggle~defaults.group",
        "longname": "module:ui/theme-toggle~defaults.group",
        "name": "group",
        "kind": "member",
        "scope": "static",
        "description": "Optional group to link remote toggles (toggles that follow the main one and can toggle too)",
        "memberof": "module:ui/theme-toggle~defaults",
        "meta": {
          "lineno": 67,
          "filename": "theme-toggle.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 222
      },
      {
        "id": "module:ui/theme-toggle~defaults.initialState",
        "longname": "module:ui/theme-toggle~defaults.initialState",
        "name": "initialState",
        "kind": "member",
        "scope": "static",
        "description": "The initial state for this component\n- May be overridden by saved preference or media query if options are enabled",
        "memberof": "module:ui/theme-toggle~defaults",
        "meta": {
          "lineno": 76,
          "filename": "theme-toggle.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 224
      },
      {
        "id": "module:ui/theme-toggle~defaults.checkMediaQuery",
        "longname": "module:ui/theme-toggle~defaults.checkMediaQuery",
        "name": "checkMediaQuery",
        "kind": "member",
        "scope": "static",
        "description": "Check the OS systems user preference via 'preferenceQuery' option",
        "memberof": "module:ui/theme-toggle~defaults",
        "meta": {
          "lineno": 80,
          "filename": "theme-toggle.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 225
      },
      {
        "id": "module:ui/theme-toggle~defaults.savePreference",
        "longname": "module:ui/theme-toggle~defaults.savePreference",
        "name": "savePreference",
        "kind": "member",
        "scope": "static",
        "description": "Will store the preference in local storage so it persists between page loads",
        "memberof": "module:ui/theme-toggle~defaults",
        "meta": {
          "lineno": 84,
          "filename": "theme-toggle.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 226
      },
      {
        "id": "module:ui/theme-toggle~defaults.storagePrefix",
        "longname": "module:ui/theme-toggle~defaults.storagePrefix",
        "name": "storagePrefix",
        "kind": "member",
        "scope": "static",
        "description": "The key that will be used to store the preference in local storage\n- This will be used as prefix in combination with group if defined",
        "memberof": "module:ui/theme-toggle~defaults",
        "meta": {
          "lineno": 89,
          "filename": "theme-toggle.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 227
      },
      {
        "id": "module:ui/theme-toggle~defaults.debug",
        "longname": "module:ui/theme-toggle~defaults.debug",
        "name": "debug",
        "kind": "member",
        "scope": "static",
        "description": "Output information to console for debugging",
        "memberof": "module:ui/theme-toggle~defaults",
        "meta": {
          "lineno": 93,
          "filename": "theme-toggle.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 228
      },
      {
        "id": "module:ui/theme-toggle~defaults.onChange",
        "longname": "module:ui/theme-toggle~defaults.onChange",
        "name": "onChange",
        "kind": "function",
        "scope": "static",
        "description": "Optional callback to do something when the state changes",
        "memberof": "module:ui/theme-toggle~defaults",
        "meta": {
          "lineno": 71,
          "filename": "theme-toggle.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 223
      }
    ],
    "module:ui/details-group": [
      {
        "id": "module:ui/details-group.initializer",
        "longname": "module:ui/details-group.initializer",
        "name": "initializer",
        "kind": "constant",
        "scope": "static",
        "description": "Dialog Component Initializer",
        "memberof": "module:ui/details-group",
        "meta": {
          "lineno": 11,
          "filename": "details-group.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 64
      },
      {
        "id": "module:ui/details-group.init",
        "longname": "module:ui/details-group.init",
        "name": "init",
        "kind": "function",
        "scope": "static",
        "description": "Initialize everything in document\n- This will only initialize elements once, it is safe to call on page changes",
        "memberof": "module:ui/details-group",
        "meta": {
          "lineno": 26,
          "filename": "details-group.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 65
      },
      {
        "id": "module:ui/details-group.setupGroup",
        "longname": "module:ui/details-group.setupGroup",
        "name": "setupGroup",
        "kind": "function",
        "scope": "static",
        "description": "Sets up a single group of details elements to manage their behavior.",
        "memberof": "module:ui/details-group",
        "params": [
          {
            "type": {
              "names": [
                "HTMLElement"
              ]
            },
            "description": "The parent element containing the details elements.",
            "name": "element"
          },
          {
            "type": {
              "names": [
                "Object"
              ]
            },
            "description": "The options for this group",
            "name": "options"
          }
        ],
        "returns": [
          {
            "type": {
              "names": [
                "DetailsGroupInstance"
              ]
            }
          }
        ],
        "meta": {
          "lineno": 50,
          "filename": "details-group.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 67
      },
      {
        "id": "module:ui/details-group~DetailsGroupInstance",
        "longname": "module:ui/details-group~DetailsGroupInstance",
        "name": "DetailsGroupInstance",
        "kind": "typedef",
        "scope": "inner",
        "memberof": "module:ui/details-group",
        "type": {
          "names": [
            "Object"
          ]
        },
        "properties": [
          {
            "type": {
              "names": [
                "function"
              ]
            },
            "description": "A function to remove event listeners and attributes.",
            "name": "destroy"
          },
          {
            "type": {
              "names": [
                "HTMLElement"
              ]
            },
            "description": "The parent element.",
            "name": "element"
          },
          {
            "type": {
              "names": [
                "function"
              ]
            },
            "description": "A function to initialize the child details elements.",
            "name": "setupChildren"
          }
        ],
        "meta": {
          "lineno": 37,
          "filename": "details-group.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 66
      }
    ],
    "module:ui/dialog": [
      {
        "id": "module:ui/dialog.baseAttribute",
        "longname": "module:ui/dialog.baseAttribute",
        "name": "baseAttribute",
        "kind": "constant",
        "scope": "static",
        "description": "Base attribute for a dialog",
        "memberof": "module:ui/dialog",
        "meta": {
          "lineno": 14,
          "filename": "dialog.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 73
      },
      {
        "id": "module:ui/dialog.initializer",
        "longname": "module:ui/dialog.initializer",
        "name": "initializer",
        "kind": "constant",
        "scope": "static",
        "description": "Dialog Component Initializer",
        "memberof": "module:ui/dialog",
        "meta": {
          "lineno": 19,
          "filename": "dialog.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 74
      },
      {
        "id": "module:ui/dialog.closeAttribute",
        "longname": "module:ui/dialog.closeAttribute",
        "name": "closeAttribute",
        "kind": "constant",
        "scope": "static",
        "description": "Attribute for close buttons within a dialog",
        "memberof": "module:ui/dialog",
        "meta": {
          "lineno": 24,
          "filename": "dialog.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 75
      },
      {
        "id": "module:ui/dialog.defaults",
        "longname": "module:ui/dialog.defaults",
        "name": "defaults",
        "kind": "constant",
        "scope": "static",
        "description": "Dialog Defaults \n- Can be overridden using data-attributes",
        "memberof": "module:ui/dialog",
        "meta": {
          "lineno": 30,
          "filename": "dialog.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 76
      },
      {
        "id": "module:ui/dialog.setDefaults",
        "longname": "module:ui/dialog.setDefaults",
        "name": "setDefaults",
        "kind": "function",
        "scope": "static",
        "memberof": "module:ui/dialog",
        "params": [
          {
            "type": {
              "names": [
                "Object"
              ]
            },
            "description": "Change options used as default for dialogs, can then be overridden by data attribute settings on element",
            "name": "options"
          }
        ],
        "meta": {
          "lineno": 66,
          "filename": "dialog.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 83
      },
      {
        "id": "module:ui/dialog.init",
        "longname": "module:ui/dialog.init",
        "name": "init",
        "kind": "function",
        "scope": "static",
        "description": "Initialize everything in document\n- This will only initialize elements once, it is safe to call on page changes",
        "memberof": "module:ui/dialog",
        "meta": {
          "lineno": 74,
          "filename": "dialog.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 84
      },
      {
        "id": "module:ui/dialog.setupTrigger",
        "longname": "module:ui/dialog.setupTrigger",
        "name": "setupTrigger",
        "kind": "function",
        "scope": "static",
        "description": "Setup click handlers on a trigger",
        "memberof": "module:ui/dialog",
        "params": [
          {
            "type": {
              "names": [
                "Node"
              ]
            },
            "description": "Trigger button element",
            "name": "trigger"
          },
          {
            "type": {
              "names": [
                "String"
              ]
            },
            "description": "The dialog's id to open",
            "name": "dialogId"
          }
        ],
        "meta": {
          "lineno": 102,
          "filename": "dialog.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 85
      },
      {
        "id": "module:ui/dialog.setupDialog",
        "longname": "module:ui/dialog.setupDialog",
        "name": "setupDialog",
        "kind": "function",
        "scope": "static",
        "description": "Setup click handlers for a dialog",
        "memberof": "module:ui/dialog",
        "params": [
          {
            "type": {
              "names": [
                "Node"
              ]
            },
            "name": "dialog"
          }
        ],
        "meta": {
          "lineno": 132,
          "filename": "dialog.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 86
      },
      {
        "id": "module:ui/dialog.getDialogOptions",
        "longname": "module:ui/dialog.getDialogOptions",
        "name": "getDialogOptions",
        "kind": "function",
        "scope": "static",
        "description": "For a given dialog, get it's options (from data attribute)",
        "memberof": "module:ui/dialog",
        "params": [
          {
            "type": {
              "names": [
                "Node"
              ]
            },
            "name": "dialog"
          }
        ],
        "returns": [
          {
            "type": {
              "names": [
                "Object"
              ]
            }
          }
        ],
        "meta": {
          "lineno": 217,
          "filename": "dialog.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 87
      },
      {
        "id": "module:ui/dialog~prepVideos",
        "longname": "module:ui/dialog~prepVideos",
        "name": "prepVideos",
        "kind": "function",
        "scope": "inner",
        "description": "Pause native and youtube videos for a given dialog",
        "memberof": "module:ui/dialog",
        "params": [],
        "meta": {
          "lineno": 224,
          "filename": "dialog.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 88
      },
      {
        "id": "module:ui/dialog~pauseVideos",
        "longname": "module:ui/dialog~pauseVideos",
        "name": "pauseVideos",
        "kind": "function",
        "scope": "inner",
        "description": "Prep videos to be paused for a given dialog",
        "memberof": "module:ui/dialog",
        "params": [],
        "meta": {
          "lineno": 231,
          "filename": "dialog.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 89
      }
    ],
    "module:ui/grid": [
      {
        "id": "module:ui/grid.initializer",
        "longname": "module:ui/grid.initializer",
        "name": "initializer",
        "kind": "constant",
        "scope": "static",
        "description": "Dialog Component Initializer",
        "memberof": "module:ui/grid",
        "meta": {
          "lineno": 11,
          "filename": "grid.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 97
      },
      {
        "id": "module:ui/grid.init",
        "longname": "module:ui/grid.init",
        "name": "init",
        "kind": "function",
        "scope": "static",
        "description": "Sets up document for grid position classes",
        "memberof": "module:ui/grid",
        "params": [
          {
            "type": {
              "names": [
                "Object"
              ]
            },
            "description": "Classes (optional) @see setPositionClasses",
            "name": "classes"
          }
        ],
        "meta": {
          "lineno": 20,
          "filename": "grid.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 98
      }
    ],
    "module:ui/modal-builder": [
      {
        "id": "module:ui/modal-builder.initializer",
        "longname": "module:ui/modal-builder.initializer",
        "name": "initializer",
        "kind": "constant",
        "scope": "static",
        "description": "Modal Builder Component Initializer",
        "memberof": "module:ui/modal-builder",
        "meta": {
          "lineno": 18,
          "filename": "modal-builder.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 101
      },
      {
        "id": "module:ui/modal-builder.setDefaults",
        "longname": "module:ui/modal-builder.setDefaults",
        "name": "setDefaults",
        "kind": "function",
        "scope": "static",
        "memberof": "module:ui/modal-builder",
        "params": [
          {
            "type": {
              "names": [
                "Object"
              ]
            },
            "description": "Change options used as default for dialogs, can then be overridden by data attribute settings on element",
            "name": "options"
          }
        ],
        "meta": {
          "lineno": 157,
          "filename": "modal-builder.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 104
      },
      {
        "id": "module:ui/modal-builder.init",
        "longname": "module:ui/modal-builder.init",
        "name": "init",
        "kind": "function",
        "scope": "static",
        "description": "Initialize everything in document\n- This will only initialize elements once, it is safe to call on page changes",
        "memberof": "module:ui/modal-builder",
        "meta": {
          "lineno": 165,
          "filename": "modal-builder.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 105
      },
      {
        "id": "module:ui/modal-builder.buildModal",
        "longname": "module:ui/modal-builder.buildModal",
        "name": "buildModal",
        "kind": "function",
        "scope": "static",
        "memberof": "module:ui/modal-builder",
        "params": [
          {
            "type": {
              "names": [
                "Node"
              ]
            },
            "description": "Content element of the dialog (what is inserted into the body)",
            "name": "content"
          },
          {
            "type": {
              "names": [
                "Object"
              ]
            },
            "description": "Options for built dialog (see defaults)",
            "name": "options"
          }
        ],
        "meta": {
          "lineno": 180,
          "filename": "modal-builder.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 106
      },
      {
        "id": "module:ui/modal-builder~separateDialogOptions",
        "longname": "module:ui/modal-builder~separateDialogOptions",
        "name": "separateDialogOptions",
        "kind": "function",
        "scope": "inner",
        "description": "Returns JSON string to embed in data-ulu-dialog for dialog handling",
        "memberof": "module:ui/modal-builder",
        "params": [
          {
            "type": {
              "names": [
                "Object"
              ]
            },
            "description": "Config object to pull dialog specific settings from",
            "name": "config"
          }
        ],
        "returns": [
          {
            "type": {
              "names": [
                "Object"
              ]
            }
          }
        ],
        "meta": {
          "lineno": 270,
          "filename": "modal-builder.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 107
      },
      {
        "id": "module:ui/modal-builder~DefaultModalOptions",
        "longname": "module:ui/modal-builder~DefaultModalOptions",
        "name": "DefaultModalOptions",
        "kind": "typedef",
        "scope": "inner",
        "description": "Default builder options (extends dialog defaults, watch name collisions)\n- Decided to extend defaults so the interface in HTML is singular\n- This is sometimes easier to template (merging and serializing options\nin twig for example)",
        "memberof": "module:ui/modal-builder",
        "params": [
          {
            "type": {
              "names": [
                "string"
              ]
            },
            "description": "The ID for the new modal.",
            "name": "template.id"
          },
          {
            "type": {
              "names": [
                "DefaultModalOptions"
              ]
            },
            "description": "The resolved modal options.",
            "name": "template.config"
          }
        ],
        "returns": [
          {
            "type": {
              "names": [
                "string"
              ]
            },
            "description": "The HTML string for the close icon."
          },
          {
            "type": {
              "names": [
                "string"
              ]
            },
            "description": "The HTML string for the resizer icon."
          },
          {
            "type": {
              "names": [
                "string"
              ]
            },
            "description": "Markup for the modal."
          }
        ],
        "type": {
          "names": [
            "object"
          ]
        },
        "properties": [
          {
            "type": {
              "names": [
                "string",
                "null"
              ]
            },
            "description": "The title of the modal. Defaults to `null`.",
            "name": "title"
          },
          {
            "type": {
              "names": [
                "string",
                "null"
              ]
            },
            "description": "The class name for an icon to display in the title. Defaults to `null`.",
            "name": "titleIcon"
          },
          {
            "type": {
              "names": [
                "string"
              ]
            },
            "description": "Extra class/classes to add to title",
            "name": "titleClass"
          },
          {
            "type": {
              "names": [
                "string"
              ]
            },
            "description": "Set the aria-labelledby attribute to a specific title within the modal, to connect to a custom title implementation, if using built in title this will be set automatically",
            "name": "labelledby"
          },
          {
            "type": {
              "names": [
                "string"
              ]
            },
            "description": "Set the aria-describedby on the dialog, elements id, to tie a specific part of the content to be the accessible description",
            "name": "describedby"
          },
          {
            "type": {
              "names": [
                "boolean"
              ]
            },
            "description": "If `true`, the modal will not prevent interaction with elements behind it. Defaults to `false`.",
            "name": "nonModal"
          },
          {
            "type": {
              "names": [
                "boolean"
              ]
            },
            "description": "If `true`, the modal will be appended to the end of the `document.body`. Defaults to `true`.",
            "name": "documentEnd"
          },
          {
            "type": {
              "names": [
                "boolean"
              ]
            },
            "description": "If `true`, the modal will be resizable. Defaults to `false`.",
            "name": "allowResize"
          },
          {
            "type": {
              "names": [
                "\"center\"",
                "\"top-left\"",
                "\"top-center\"",
                "\"top-right\"",
                "\"bottom-left\"",
                "\"bottom-center\"",
                "\"bottom-right\""
              ]
            },
            "description": "The initial position of the modal. Defaults to `\"center\"`.",
            "name": "position"
          },
          {
            "type": {
              "names": [
                "boolean"
              ]
            },
            "description": "If `true`, the modal body will fill the available space. Defaults to `false`.",
            "name": "bodyFills"
          },
          {
            "type": {
              "names": [
                "boolean"
              ]
            },
            "description": "If `true`, no backdrop will be displayed behind the modal. Defaults to `false`.",
            "name": "noBackdrop"
          },
          {
            "type": {
              "names": [
                "\"default\"",
                "\"small\"",
                "\"large\"",
                "\"fullscreen\""
              ]
            },
            "description": "The size of the modal. Defaults to `\"default\"`.",
            "name": "size"
          },
          {
            "type": {
              "names": [
                "boolean"
              ]
            },
            "description": "If `true`, the modal content will be optimized for printing. Defaults to `false`.",
            "name": "print"
          },
          {
            "type": {
              "names": [
                "boolean"
              ]
            },
            "description": "If `true`, the modal will not have a minimum height. Defaults to `false`.",
            "name": "noMinHeight"
          },
          {
            "type": {
              "names": [
                "string"
              ]
            },
            "description": "Additional CSS class(es) to add to the modal. Defaults to `\"\"`.",
            "name": "class"
          },
          {
            "type": {
              "names": [
                "string"
              ]
            },
            "description": "The base CSS class for the modal elements. Defaults to `\"modal\"`.",
            "name": "baseClass"
          },
          {
            "type": {
              "names": [
                "string"
              ]
            },
            "description": "The class name for the close button. Defaults to 'button button--icon' styling.",
            "name": "classClose"
          },
          {
            "type": {
              "names": [
                "string"
              ]
            },
            "description": "The class name for the close icon. Defaults to 'button__icon' styling. Uses the wrapped setting string.",
            "name": "classCloseIcon"
          },
          {
            "type": {
              "names": [
                "string"
              ]
            },
            "description": "The class name for the resizer icon. Uses the wrapped setting string.",
            "name": "classResizerIcon"
          },
          {
            "type": {
              "names": [
                "string",
                "Node"
              ]
            },
            "description": "Element or selector to use as the footer (will be moved to dialog on creation, used for DOM API)",
            "name": "footerElement"
          },
          {
            "type": {
              "names": [
                "string",
                "Node"
              ]
            },
            "description": "Markup to use in the footer",
            "name": "footerHtml"
          },
          {
            "type": {
              "names": [
                "boolean"
              ]
            },
            "description": "Enables debug logging. Defaults to `false`.",
            "name": "debug"
          },
          {
            "type": {
              "names": [
                "boolean"
              ]
            },
            "description": "Opt-in convenience behavior. If the modal body's sole content is an iframe, it automatically applies layout fixes. If the iframe has static width/height attributes (like YouTube), it retains that aspect ratio responsively. Otherwise, it forces the iframe to fill the modal. Defaults to `false`.",
            "name": "autoIframe"
          },
          {
            "type": {
              "names": [
                "function"
              ]
            },
            "description": "A function that returns the HTML for the close icon.",
            "name": "templateCloseIcon"
          },
          {
            "type": {
              "names": [
                "function"
              ]
            },
            "description": "The resolved modal configuration object.",
            "name": "templateCloseIcon.config"
          },
          {
            "type": {
              "names": [
                "function"
              ]
            },
            "description": "A function that returns the HTML for the resizer icon.",
            "name": "templateResizerIcon"
          },
          {
            "type": {
              "names": [
                "function"
              ]
            },
            "description": "The resolved modal configuration object.",
            "name": "templateResizerIcon.config"
          },
          {
            "type": {
              "names": [
                "function"
              ]
            },
            "description": "The default modal template function.",
            "name": "template"
          }
        ],
        "meta": {
          "lineno": 23,
          "filename": "modal-builder.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 102
      }
    ],
    "module:ui/print-details": [
      {
        "id": "module:ui/print-details.attrs",
        "longname": "module:ui/print-details.attrs",
        "name": "attrs",
        "kind": "constant",
        "scope": "static",
        "description": "Default data attributes",
        "memberof": "module:ui/print-details",
        "meta": {
          "lineno": 10,
          "filename": "print-details.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 120
      },
      {
        "id": "module:ui/print-details.init",
        "longname": "module:ui/print-details.init",
        "name": "init",
        "kind": "function",
        "scope": "static",
        "description": "Initialize details print \n- will open details before print\n- will return to previous state after",
        "memberof": "module:ui/print-details",
        "meta": {
          "lineno": 25,
          "filename": "print-details.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 121
      }
    ],
    "module:ui/proxy-click": [
      {
        "id": "module:ui/proxy-click.initializer",
        "longname": "module:ui/proxy-click.initializer",
        "name": "initializer",
        "kind": "constant",
        "scope": "static",
        "description": "Proxy Click Component Initializer",
        "memberof": "module:ui/proxy-click",
        "meta": {
          "lineno": 17,
          "filename": "proxy-click.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 129
      },
      {
        "id": "module:ui/proxy-click.defaults",
        "longname": "module:ui/proxy-click.defaults",
        "name": "defaults",
        "kind": "constant",
        "scope": "static",
        "description": "Default options",
        "memberof": "module:ui/proxy-click",
        "meta": {
          "lineno": 25,
          "filename": "proxy-click.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 130
      },
      {
        "id": "module:ui/proxy-click.setDefaults",
        "longname": "module:ui/proxy-click.setDefaults",
        "name": "setDefaults",
        "kind": "function",
        "scope": "static",
        "memberof": "module:ui/proxy-click",
        "params": [
          {
            "type": {
              "names": [
                "Object"
              ]
            },
            "description": "Change options used as default for dialogs, can then be overridden by data attribute settings on element",
            "name": "options"
          }
        ],
        "meta": {
          "lineno": 38,
          "filename": "proxy-click.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 131
      },
      {
        "id": "module:ui/proxy-click.init",
        "longname": "module:ui/proxy-click.init",
        "name": "init",
        "kind": "function",
        "scope": "static",
        "description": "Initialize everything in document\n- This will only initialize elements once, it is safe to call on page changes",
        "memberof": "module:ui/proxy-click",
        "meta": {
          "lineno": 45,
          "filename": "proxy-click.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 132
      },
      {
        "id": "module:ui/proxy-click.setupProxy",
        "longname": "module:ui/proxy-click.setupProxy",
        "name": "setupProxy",
        "kind": "function",
        "scope": "static",
        "description": "Setup a single proxy click",
        "memberof": "module:ui/proxy-click",
        "params": [
          {
            "type": {
              "names": [
                "Node"
              ]
            },
            "description": "The container who's click should proxy the click of inner element with options.selector (defaults to [data-ulu-proxy-click-source])",
            "name": "proxy"
          },
          {
            "type": {
              "names": [
                "Object"
              ]
            },
            "description": "Options to override defaults",
            "name": "userOptions"
          }
        ],
        "meta": {
          "lineno": 61,
          "filename": "proxy-click.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 133
      },
      {
        "id": "module:ui/proxy-click.attachHandlers",
        "longname": "module:ui/proxy-click.attachHandlers",
        "name": "attachHandlers",
        "kind": "function",
        "scope": "static",
        "description": "Main function for attaching behaviors that enable proxy click",
        "memberof": "module:ui/proxy-click",
        "params": [
          {
            "type": {
              "names": [
                "Node"
              ]
            },
            "description": "The container who's click should proxy the click of inner element with options.selector (defaults to [data-ulu-proxy-click-source])",
            "name": "proxy"
          },
          {
            "type": {
              "names": [
                "Node"
              ]
            },
            "description": "The element who is being proxied and will get clicked if the proxy is clicked (as long as not an interactive element within proxy)",
            "name": "child"
          },
          {
            "type": {
              "names": [
                "Object"
              ]
            },
            "description": "Merged/final options object",
            "name": "config"
          }
        ],
        "meta": {
          "lineno": 77,
          "filename": "proxy-click.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 134
      }
    ],
    "module:ui/scroll-slider": [
      {
        "id": "module:ui/scroll-slider.initializer",
        "longname": "module:ui/scroll-slider.initializer",
        "name": "initializer",
        "kind": "constant",
        "scope": "static",
        "description": "Scroll Slider Component Initializer",
        "memberof": "module:ui/scroll-slider",
        "meta": {
          "lineno": 12,
          "filename": "scroll-slider.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 158
      },
      {
        "id": "module:ui/scroll-slider.init",
        "longname": "module:ui/scroll-slider.init",
        "name": "init",
        "kind": "function",
        "scope": "static",
        "description": "Initialize everything in document\n- This will only initialize elements once, it is safe to call on page changes",
        "memberof": "module:ui/scroll-slider",
        "meta": {
          "lineno": 28,
          "filename": "scroll-slider.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 159
      },
      {
        "id": "module:ui/scroll-slider~setupSlider",
        "longname": "module:ui/scroll-slider~setupSlider",
        "name": "setupSlider",
        "kind": "function",
        "scope": "inner",
        "description": "Setup instance of scroll slider based on data-attributes",
        "memberof": "module:ui/scroll-slider",
        "params": [
          {
            "type": {
              "names": [
                "Node"
              ]
            },
            "description": "The scroll slider container",
            "name": "container"
          }
        ],
        "meta": {
          "lineno": 43,
          "filename": "scroll-slider.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 160
      }
    ],
    "module:ui/tabs": [
      {
        "id": "module:ui/tabs.instances",
        "longname": "module:ui/tabs.instances",
        "name": "instances",
        "kind": "constant",
        "scope": "static",
        "description": "Array of current tab instances (exported if you need to interact with them)",
        "memberof": "module:ui/tabs",
        "type": {
          "names": [
            "Array"
          ]
        },
        "meta": {
          "lineno": 13,
          "filename": "tabs.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 213
      },
      {
        "id": "module:ui/tabs.initializer",
        "longname": "module:ui/tabs.initializer",
        "name": "initializer",
        "kind": "constant",
        "scope": "static",
        "description": "Tabs Component Initializer",
        "memberof": "module:ui/tabs",
        "meta": {
          "lineno": 18,
          "filename": "tabs.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 214
      },
      {
        "id": "module:ui/tabs.init",
        "longname": "module:ui/tabs.init",
        "name": "init",
        "kind": "function",
        "scope": "static",
        "description": "Init all instances currently in document",
        "memberof": "module:ui/tabs",
        "meta": {
          "lineno": 26,
          "filename": "tabs.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 215
      },
      {
        "id": "module:ui/tabs.setup",
        "longname": "module:ui/tabs.setup",
        "name": "setup",
        "kind": "function",
        "scope": "static",
        "description": "Setup a new TabManager instance",
        "memberof": "module:ui/tabs",
        "params": [
          {
            "type": {
              "names": [
                "HTMLElement"
              ]
            },
            "description": "Tablist Element",
            "name": "element"
          },
          {
            "type": {
              "names": [
                "object"
              ]
            },
            "description": "Options to set as defaults",
            "name": "options"
          }
        ],
        "returns": [
          {
            "type": {
              "names": [
                "object"
              ]
            },
            "description": "Instance object"
          }
        ],
        "meta": {
          "lineno": 51,
          "filename": "tabs.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 216
      }
    ],
    "module:ui/theme-toggle": [
      {
        "id": "module:ui/theme-toggle.initializer",
        "longname": "module:ui/theme-toggle.initializer",
        "name": "initializer",
        "kind": "constant",
        "scope": "static",
        "description": "Theme Toggle Component Initializer",
        "memberof": "module:ui/theme-toggle",
        "meta": {
          "lineno": 14,
          "filename": "theme-toggle.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 218
      },
      {
        "id": "module:ui/theme-toggle.defaults",
        "longname": "module:ui/theme-toggle.defaults",
        "name": "defaults",
        "kind": "constant",
        "scope": "static",
        "description": "Default Options \n- Can be overridden using data-attributes",
        "memberof": "module:ui/theme-toggle",
        "meta": {
          "lineno": 40,
          "filename": "theme-toggle.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 219
      },
      {
        "id": "module:ui/theme-toggle.setDefaults",
        "longname": "module:ui/theme-toggle.setDefaults",
        "name": "setDefaults",
        "kind": "function",
        "scope": "static",
        "memberof": "module:ui/theme-toggle",
        "params": [
          {
            "type": {
              "names": [
                "Object"
              ]
            },
            "description": "Change options used as default for dialogs, can then be overridden by data attribute settings on element",
            "name": "options"
          }
        ],
        "meta": {
          "lineno": 103,
          "filename": "theme-toggle.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 229
      },
      {
        "id": "module:ui/theme-toggle.init",
        "longname": "module:ui/theme-toggle.init",
        "name": "init",
        "kind": "function",
        "scope": "static",
        "description": "Initialize everything in document\n- This will only initialize elements once, it is safe to call on page changes",
        "memberof": "module:ui/theme-toggle",
        "meta": {
          "lineno": 111,
          "filename": "theme-toggle.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 230
      },
      {
        "id": "module:ui/theme-toggle.setupToggle",
        "longname": "module:ui/theme-toggle.setupToggle",
        "name": "setupToggle",
        "kind": "function",
        "scope": "static",
        "description": "Sets up a single toggle",
        "memberof": "module:ui/theme-toggle",
        "params": [
          {
            "type": {
              "names": [
                "HTMLElement"
              ]
            },
            "description": "A toggle to be setup",
            "name": "toggle"
          }
        ],
        "meta": {
          "lineno": 126,
          "filename": "theme-toggle.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 231
      },
      {
        "id": "module:ui/theme-toggle~setState",
        "longname": "module:ui/theme-toggle~setState",
        "name": "setState",
        "kind": "function",
        "scope": "inner",
        "description": "Change the state of target/toggle",
        "memberof": "module:ui/theme-toggle",
        "params": [],
        "meta": {
          "lineno": 226,
          "filename": "theme-toggle.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 237
      },
      {
        "id": "module:ui/theme-toggle~resolveInitial",
        "longname": "module:ui/theme-toggle~resolveInitial",
        "name": "resolveInitial",
        "kind": "function",
        "scope": "inner",
        "description": "Function determines what the initial state is\n- Check OS preference, saved preference, or initialState depending on options",
        "memberof": "module:ui/theme-toggle",
        "params": [],
        "returns": [
          {
            "type": {
              "names": [
                "String"
              ]
            },
            "description": "The resolved initial theme's key"
          }
        ],
        "meta": {
          "lineno": 298,
          "filename": "theme-toggle.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 238
      },
      {
        "id": "module:ui/theme-toggle~getMatchingThemeQuery",
        "longname": "module:ui/theme-toggle~getMatchingThemeQuery",
        "name": "getMatchingThemeQuery",
        "kind": "function",
        "scope": "inner",
        "description": "Check each theme for a matching media query",
        "memberof": "module:ui/theme-toggle",
        "params": [],
        "returns": [
          {
            "type": {
              "names": [
                "String"
              ]
            },
            "description": "Matching theme key"
          }
        ],
        "meta": {
          "lineno": 322,
          "filename": "theme-toggle.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 239
      },
      {
        "id": "module:ui/theme-toggle~getNextThemeKey",
        "longname": "module:ui/theme-toggle~getNextThemeKey",
        "name": "getNextThemeKey",
        "kind": "function",
        "scope": "inner",
        "description": "Get the next key in the themes based on the currentKey",
        "memberof": "module:ui/theme-toggle",
        "params": [],
        "meta": {
          "lineno": 335,
          "filename": "theme-toggle.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 240
      },
      {
        "id": "module:ui/theme-toggle~getOtherThemes",
        "longname": "module:ui/theme-toggle~getOtherThemes",
        "name": "getOtherThemes",
        "kind": "function",
        "scope": "inner",
        "description": "Get all other theme object except the current",
        "memberof": "module:ui/theme-toggle",
        "params": [],
        "meta": {
          "lineno": 347,
          "filename": "theme-toggle.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 241
      },
      {
        "id": "module:ui/theme-toggle~concatThemeClasses",
        "longname": "module:ui/theme-toggle~concatThemeClasses",
        "name": "concatThemeClasses",
        "kind": "function",
        "scope": "inner",
        "description": "Concatenates multiple class properties into one array",
        "memberof": "module:ui/theme-toggle",
        "params": [],
        "meta": {
          "lineno": 355,
          "filename": "theme-toggle.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 242
      },
      {
        "id": "module:ui/theme-toggle~getStorageKey",
        "longname": "module:ui/theme-toggle~getStorageKey",
        "name": "getStorageKey",
        "kind": "function",
        "scope": "inner",
        "description": "Creates the storage key (either prefix or prefix with group name)",
        "memberof": "module:ui/theme-toggle",
        "params": [],
        "meta": {
          "lineno": 364,
          "filename": "theme-toggle.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 243
      }
    ],
    "module:core/events": [
      {
        "id": "module:core/events.dispatchCoreEvent",
        "longname": "module:core/events.dispatchCoreEvent",
        "name": "dispatchCoreEvent",
        "kind": "function",
        "scope": "static",
        "description": "Triggers one of the predefined core lifecycle events.",
        "memberof": "module:core/events",
        "params": [
          {
            "type": {
              "names": [
                "String"
              ]
            },
            "description": "Type of core event to dispatch.",
            "name": "type"
          },
          {
            "type": {
              "names": [
                "Node"
              ]
            },
            "description": "Element to trigger the event from.",
            "name": "context"
          }
        ],
        "meta": {
          "lineno": 40,
          "filename": "events.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/core"
        },
        "order": 16
      },
      {
        "id": "module:core/events.getUluEventName",
        "longname": "module:core/events.getUluEventName",
        "name": "getUluEventName",
        "kind": "function",
        "scope": "static",
        "description": "A general-purpose utility to get a ULU-namespaced event name.",
        "memberof": "module:core/events",
        "params": [
          {
            "type": {
              "names": [
                "String"
              ]
            },
            "description": "The base name for the event.",
            "name": "type"
          }
        ],
        "returns": [
          {
            "type": {
              "names": [
                "String"
              ]
            },
            "description": "The `ulu:` prefixed event name."
          }
        ],
        "meta": {
          "lineno": 53,
          "filename": "events.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/core"
        },
        "order": 17
      },
      {
        "id": "module:core/events.getCoreEventName",
        "longname": "module:core/events.getCoreEventName",
        "name": "getCoreEventName",
        "kind": "function",
        "scope": "static",
        "description": "Safely gets the full namespaced name for a predefined core event.",
        "memberof": "module:core/events",
        "params": [
          {
            "type": {
              "names": [
                "String"
              ]
            },
            "description": "The base name of the core event (e.g., 'pageModified').",
            "name": "type"
          }
        ],
        "returns": [
          {
            "type": {
              "names": [
                "String",
                "null"
              ]
            },
            "description": "The full event name if valid, otherwise null."
          }
        ],
        "meta": {
          "lineno": 62,
          "filename": "events.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/core"
        },
        "order": 18
      },
      {
        "id": "module:core/events.createUluEvent",
        "longname": "module:core/events.createUluEvent",
        "name": "createUluEvent",
        "kind": "function",
        "scope": "static",
        "description": "A general-purpose utility to create a ULU-namespaced CustomEvent.",
        "memberof": "module:core/events",
        "params": [
          {
            "type": {
              "names": [
                "String"
              ]
            },
            "description": "Event base name.",
            "name": "type"
          },
          {
            "type": {
              "names": [
                "any"
              ]
            },
            "description": "Custom data to pass with the event.",
            "name": "data"
          },
          {
            "type": {
              "names": [
                "Object"
              ]
            },
            "description": "CustomEvent options.",
            "name": "options"
          }
        ],
        "returns": [
          {
            "type": {
              "names": [
                "CustomEvent"
              ]
            }
          }
        ],
        "meta": {
          "lineno": 77,
          "filename": "events.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/core"
        },
        "order": 19
      },
      {
        "id": "module:core/events~events",
        "longname": "module:core/events~events",
        "name": "events",
        "kind": "constant",
        "scope": "inner",
        "description": "Event object - called on dispatch",
        "memberof": "module:core/events",
        "params": [],
        "meta": {
          "lineno": 18,
          "filename": "events.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/core"
        },
        "order": 15
      },
      {
        "id": "module:core/events~initResize",
        "longname": "module:core/events~initResize",
        "name": "initResize",
        "kind": "function",
        "scope": "inner",
        "description": "Setup resize handler/dispatch",
        "memberof": "module:core/events",
        "params": [],
        "meta": {
          "lineno": 84,
          "filename": "events.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/core"
        },
        "order": 20
      },
      {
        "id": "module:core/events~initPrint",
        "longname": "module:core/events~initPrint",
        "name": "initPrint",
        "kind": "function",
        "scope": "inner",
        "description": "Setup print listeners",
        "memberof": "module:core/events",
        "params": [],
        "meta": {
          "lineno": 91,
          "filename": "events.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/core"
        },
        "order": 21
      }
    ],
    "module:core/settings": [
      {
        "id": "module:core/settings.getDefaultSettings",
        "longname": "module:core/settings.getDefaultSettings",
        "name": "getDefaultSettings",
        "kind": "function",
        "scope": "static",
        "description": "Retrieves a copy of the default settings.",
        "memberof": "module:core/settings",
        "returns": [
          {
            "type": {
              "names": [
                "object"
              ]
            },
            "description": "A copy of the default settings object."
          }
        ],
        "meta": {
          "lineno": 36,
          "filename": "settings.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/core"
        },
        "order": 26
      },
      {
        "id": "module:core/settings.updateSettings",
        "longname": "module:core/settings.updateSettings",
        "name": "updateSettings",
        "kind": "function",
        "scope": "static",
        "description": "Updates multiple configuration settings.",
        "memberof": "module:core/settings",
        "params": [
          {
            "type": {
              "names": [
                "object"
              ]
            },
            "description": "An object containing the settings to update.",
            "name": "changes"
          }
        ],
        "meta": {
          "lineno": 44,
          "filename": "settings.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/core"
        },
        "order": 27
      },
      {
        "id": "module:core/settings.getSettings",
        "longname": "module:core/settings.getSettings",
        "name": "getSettings",
        "kind": "function",
        "scope": "static",
        "description": "Retrieves a copy of the current configuration settings.",
        "memberof": "module:core/settings",
        "returns": [
          {
            "type": {
              "names": [
                "object"
              ]
            },
            "description": "A copy of the current settings object."
          }
        ],
        "meta": {
          "lineno": 52,
          "filename": "settings.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/core"
        },
        "order": 28
      },
      {
        "id": "module:core/settings.getSetting",
        "longname": "module:core/settings.getSetting",
        "name": "getSetting",
        "kind": "function",
        "scope": "static",
        "description": "Retrieves a specific configuration setting by key.",
        "memberof": "module:core/settings",
        "params": [
          {
            "type": {
              "names": [
                "string"
              ]
            },
            "description": "The key of the setting to retrieve.",
            "name": "key"
          }
        ],
        "returns": [
          {
            "type": {
              "names": [
                "*"
              ]
            },
            "description": "The value of the setting, or undefined if not found."
          }
        ],
        "meta": {
          "lineno": 61,
          "filename": "settings.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/core"
        },
        "order": 29
      },
      {
        "id": "module:core/settings.updateSetting",
        "longname": "module:core/settings.updateSetting",
        "name": "updateSetting",
        "kind": "function",
        "scope": "static",
        "description": "Updates a specific configuration setting.",
        "memberof": "module:core/settings",
        "params": [
          {
            "type": {
              "names": [
                "string"
              ]
            },
            "description": "The key of the setting to update.",
            "name": "key"
          },
          {
            "type": {
              "names": [
                "*"
              ]
            },
            "description": "The new value for the setting.",
            "name": "value"
          }
        ],
        "meta": {
          "lineno": 74,
          "filename": "settings.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/core"
        },
        "order": 30
      },
      {
        "id": "module:core/settings.wrapSettingString",
        "longname": "module:core/settings.wrapSettingString",
        "name": "wrapSettingString",
        "kind": "function",
        "scope": "static",
        "description": "Creates a wrapped string representation of a configuration setting.\nThis function returns an object with a `toString()` method that, when called,\nretrieves the current value of the specified setting. This allows the setting\nto be used as a string literal, dynamically retrieving its value.",
        "memberof": "module:core/settings",
        "params": [
          {
            "type": {
              "names": [
                "String"
              ]
            },
            "description": "The key of the setting to wrap.",
            "name": "key"
          },
          {
            "type": {
              "names": [
                "function"
              ]
            },
            "description": "Optional function to transform the setting's\nvalue when its string representation is requested.",
            "name": "transform"
          }
        ],
        "returns": [
          {
            "type": {
              "names": [
                "Object"
              ]
            },
            "description": "An object with a `toString()` method that returns the\n(optionally transformed) setting value as a string."
          }
        ],
        "meta": {
          "lineno": 90,
          "filename": "settings.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/core"
        },
        "order": 31
      },
      {
        "id": "module:core/settings~defaults",
        "longname": "module:core/settings~defaults",
        "name": "defaults",
        "kind": "constant",
        "scope": "inner",
        "memberof": "module:core/settings",
        "params": [],
        "type": {
          "names": [
            "Defaults"
          ]
        },
        "meta": {
          "lineno": 20,
          "filename": "settings.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/core"
        },
        "order": 25
      },
      {
        "id": "module:core/settings~Defaults",
        "longname": "module:core/settings~Defaults",
        "name": "Defaults",
        "kind": "typedef",
        "scope": "inner",
        "description": "Default settings",
        "memberof": "module:core/settings",
        "type": {
          "names": [
            "object"
          ]
        },
        "properties": [
          {
            "type": {
              "names": [
                "string"
              ]
            },
            "description": "The CSS class string for the close icon",
            "name": "iconClassClose"
          },
          {
            "type": {
              "names": [
                "string"
              ]
            },
            "description": "The CSS class string for the drag X icon",
            "name": "iconClassDragX"
          },
          {
            "type": {
              "names": [
                "string"
              ]
            },
            "description": "The CSS class string for the dragging in both directions",
            "name": "iconClassDragBoth"
          },
          {
            "type": {
              "names": [
                "string"
              ]
            },
            "description": "The CSS class string for the previous icon",
            "name": "iconClassPrevious"
          },
          {
            "type": {
              "names": [
                "string"
              ]
            },
            "description": "The CSS class string for the next icon",
            "name": "iconClassNext"
          },
          {
            "type": {
              "names": [
                "string"
              ]
            },
            "description": "The prefix to use for CSS custom properties",
            "name": "cssvarPrefix"
          }
        ],
        "meta": {
          "lineno": 6,
          "filename": "settings.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/core"
        },
        "order": 24
      }
    ],
    "module:ui/modal-builder~defaults": [
      {
        "id": "module:ui/modal-builder~defaults.template",
        "longname": "module:ui/modal-builder~defaults.template",
        "name": "template",
        "kind": "function",
        "scope": "static",
        "description": "Default modal template",
        "memberof": "module:ui/modal-builder~defaults",
        "params": [
          {
            "type": {
              "names": [
                "String"
              ]
            },
            "description": "ID for new modal",
            "name": "id"
          },
          {
            "type": {
              "names": [
                "Object"
              ]
            },
            "description": "Resolved options",
            "name": "config"
          }
        ],
        "returns": [
          {
            "type": {
              "names": [
                "String"
              ]
            },
            "description": "Markup for modal"
          }
        ],
        "meta": {
          "lineno": 104,
          "filename": "modal-builder.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 103
      }
    ],
    "module:ui/overflow-scroller-pager": [
      {
        "id": "module:ui/overflow-scroller-pager.createPager",
        "longname": "module:ui/overflow-scroller-pager.createPager",
        "name": "createPager",
        "kind": "function",
        "scope": "static",
        "description": "Function to be used in overflow scrollers \"amount\" option. This function will\ndetermine how many items can fit in the viewport, taking into account scroll padding left, \nand will set the scroll amount to paginate between items. Items size can be anything \n(ie. one per screen vs 3.5 per screen will both work). This seperated from the plugin \nfor tree shaking incase it's unneeded. Currently this is only setup for horizontal scrolling\n\nNote: This is setup to return the function, incase configuration is needed in the future \nit can be passed to the create function",
        "memberof": "module:ui/overflow-scroller-pager",
        "returns": [
          {
            "type": {
              "names": [
                "function"
              ]
            },
            "description": "A function to be used in overflow scrollers \"amount\" configuration property"
          }
        ],
        "meta": {
          "lineno": 17,
          "filename": "overflow-scroller-pager.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 109
      }
    ],
    "module:ui/page": [
      {
        "id": "module:ui/page.init",
        "longname": "module:ui/page.init",
        "name": "init",
        "kind": "function",
        "scope": "static",
        "description": "Initialize page module",
        "memberof": "module:ui/page",
        "meta": {
          "lineno": 12,
          "filename": "page.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 112
      }
    ],
    "module:ui/print": [
      {
        "id": "module:ui/print.init",
        "longname": "module:ui/print.init",
        "name": "init",
        "kind": "function",
        "scope": "static",
        "description": "Initialize everything in document\n- This will only initialize elements once, it is safe to call on page changes",
        "memberof": "module:ui/print",
        "meta": {
          "lineno": 28,
          "filename": "print.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 125
      },
      {
        "id": "module:ui/print~defaults",
        "longname": "module:ui/print~defaults",
        "name": "defaults",
        "kind": "constant",
        "scope": "inner",
        "description": "Default options",
        "memberof": "module:ui/print",
        "params": [],
        "meta": {
          "lineno": 17,
          "filename": "print.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 123
      },
      {
        "id": "module:ui/print~setupTrigger",
        "longname": "module:ui/print~setupTrigger",
        "name": "setupTrigger",
        "kind": "function",
        "scope": "inner",
        "description": "Setup a single trigger (can be used manually without attr if needed)",
        "memberof": "module:ui/print",
        "params": [],
        "meta": {
          "lineno": 42,
          "filename": "print.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 126
      }
    ],
    "module:utils/class-logger": [
      {
        "id": "module:utils/class-logger.set",
        "longname": "module:utils/class-logger.set",
        "name": "set",
        "kind": "function",
        "scope": "static",
        "description": "Changes to make to configuration",
        "memberof": "module:utils/class-logger",
        "params": [
          {
            "type": {
              "names": [
                "Object"
              ]
            },
            "name": "changes"
          }
        ],
        "meta": {
          "lineno": 36,
          "filename": "class-logger.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 261
      },
      {
        "id": "module:utils/class-logger.log",
        "longname": "module:utils/class-logger.log",
        "name": "log",
        "kind": "function",
        "scope": "static",
        "description": "Proxy Console.log",
        "memberof": "module:utils/class-logger",
        "params": [
          {
            "type": {
              "names": [
                "Object"
              ]
            },
            "description": "Class instance (optional), will rely on classes (debug) property for output",
            "name": "context"
          },
          {
            "type": {
              "names": [
                "any"
              ]
            },
            "variable": true,
            "name": "messages"
          }
        ],
        "meta": {
          "lineno": 45,
          "filename": "class-logger.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 262
      },
      {
        "id": "module:utils/class-logger.logWarning",
        "longname": "module:utils/class-logger.logWarning",
        "name": "logWarning",
        "kind": "function",
        "scope": "static",
        "description": "Proxy Console.warn",
        "memberof": "module:utils/class-logger",
        "params": [
          {
            "type": {
              "names": [
                "Object"
              ]
            },
            "description": "Class instance (optional), will rely on classes (debug) property for output",
            "name": "context"
          },
          {
            "type": {
              "names": [
                "any"
              ]
            },
            "variable": true,
            "name": "messages"
          }
        ],
        "meta": {
          "lineno": 56,
          "filename": "class-logger.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 263
      },
      {
        "id": "module:utils/class-logger.logError",
        "longname": "module:utils/class-logger.logError",
        "name": "logError",
        "kind": "function",
        "scope": "static",
        "description": "Proxy Console.error",
        "memberof": "module:utils/class-logger",
        "params": [
          {
            "type": {
              "names": [
                "Object"
              ]
            },
            "description": "Class instance (optional), will rely on classes (debug) property for output",
            "name": "context"
          },
          {
            "type": {
              "names": [
                "any"
              ]
            },
            "variable": true,
            "name": "messages"
          }
        ],
        "meta": {
          "lineno": 67,
          "filename": "class-logger.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 264
      },
      {
        "id": "module:utils/class-logger~config",
        "longname": "module:utils/class-logger~config",
        "name": "config",
        "kind": "constant",
        "scope": "inner",
        "description": "Global Configuration Object",
        "memberof": "module:utils/class-logger",
        "params": [],
        "meta": {
          "lineno": 10,
          "filename": "class-logger.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 260
      }
    ],
    "module:utils/css": [
      {
        "id": "module:utils/css.getCustomProperty",
        "longname": "module:utils/css.getCustomProperty",
        "name": "getCustomProperty",
        "kind": "function",
        "scope": "static",
        "description": "Generates a CSS custom property name with a given prefix.",
        "memberof": "module:utils/css",
        "params": [
          {
            "type": {
              "names": [
                "string"
              ]
            },
            "description": "The prefix to apply to the custom property name.",
            "name": "prefix"
          },
          {
            "type": {
              "names": [
                "string"
              ]
            },
            "description": "The base name of the custom property.",
            "name": "propertyName"
          }
        ],
        "returns": [
          {
            "type": {
              "names": [
                "string"
              ]
            },
            "description": "The fully formed CSS custom property name (e.g., \"--prefix-propertyName\")."
          }
        ],
        "meta": {
          "lineno": 11,
          "filename": "css.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 266
      }
    ],
    "module:utils/dialog": [
      {
        "id": "module:utils/dialog.observeDialogToggle",
        "longname": "module:utils/dialog.observeDialogToggle",
        "name": "observeDialogToggle",
        "kind": "function",
        "scope": "static",
        "description": "Workaround for poor Safari support of the dialog 'toggle' event.\nWatches for changes to the 'open' attribute and fires a callback.",
        "memberof": "module:utils/dialog",
        "params": [
          {
            "type": {
              "names": [
                "HTMLDialogElement"
              ]
            },
            "description": "The dialog element to observe",
            "name": "dialog"
          },
          {
            "type": {
              "names": [
                "function"
              ]
            },
            "description": "Function to call when the open state changes. Receives boolean indicating open state.",
            "name": "callback"
          }
        ],
        "returns": [
          {
            "type": {
              "names": [
                "Object"
              ]
            },
            "description": "Object with a destroy method to disconnect the observer"
          }
        ],
        "meta": {
          "lineno": 14,
          "filename": "dialog.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 268
      }
    ],
    "module:utils/dom": [
      {
        "id": "module:utils/dom.dataAttributeToDatasetKey",
        "longname": "module:utils/dom.dataAttributeToDatasetKey",
        "name": "dataAttributeToDatasetKey",
        "kind": "function",
        "scope": "static",
        "description": "Converts a data attribute name to its corresponding dataset property name.",
        "memberof": "module:utils/dom",
        "params": [
          {
            "type": {
              "names": [
                "string"
              ]
            },
            "description": "The data attribute name (e.g., \"data-ulu-dialog\").",
            "name": "dataAttribute"
          }
        ],
        "returns": [
          {
            "type": {
              "names": [
                "string"
              ]
            },
            "description": "- The dataset property name (e.g., \"uluDialog\")."
          }
        ],
        "meta": {
          "lineno": 12,
          "filename": "dom.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 270
      },
      {
        "id": "module:utils/dom.setPositionClasses",
        "longname": "module:utils/dom.setPositionClasses",
        "name": "setPositionClasses",
        "kind": "function",
        "scope": "static",
        "description": "Sets up the positional classes that would come from the equal\n  height module. Needs to be rerun by user when layout changes\n  or new instances are added to the screen\n  - Used for gutter crops\n  - Used for rule placement\n  - **Devs** Remember that default classes should match sass defaults",
        "memberof": "module:utils/dom",
        "params": [
          {
            "type": {
              "names": [
                "Node"
              ]
            },
            "description": "The grid parent <data-grid=\"\">",
            "name": "parent"
          },
          {
            "type": {
              "names": [
                "Object"
              ]
            },
            "description": "Override the default equal heights classes",
            "name": "classes"
          }
        ],
        "meta": {
          "lineno": 26,
          "filename": "dom.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 271
      },
      {
        "id": "module:utils/dom.resolveClasses",
        "longname": "module:utils/dom.resolveClasses",
        "name": "resolveClasses",
        "kind": "function",
        "scope": "static",
        "description": "Resolves a class input (string or array) into a consistent array of class names.",
        "memberof": "module:utils/dom",
        "params": [
          {
            "type": {
              "names": [
                "string",
                "Array.<string>"
              ]
            },
            "description": "The class input, which can be a string, an array of strings, or any other value.",
            "name": "input"
          }
        ],
        "examples": [
          "resolveClassArray(\"fas fa-check  my-class\"); // Returns [\"fas\", \"fa-check\", \"my-class\"]\nresolveClassArray([\"another-class\", \"yet-another-class\"]); // Returns [\"another-class\", \"yet-another-class\"]\nresolveClassArray(\"single-class\"); // Returns [\"single-class\"]"
        ],
        "returns": [
          {
            "type": {
              "names": [
                "Array.<string>"
              ]
            },
            "description": "An array of class names. Returns an empty array for invalid or falsy input."
          }
        ],
        "meta": {
          "lineno": 70,
          "filename": "dom.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 272
      }
    ],
    "module:utils/floating-ui": [
      {
        "id": "module:utils/floating-ui.createFloatingUi",
        "longname": "module:utils/floating-ui.createFloatingUi",
        "name": "createFloatingUi",
        "kind": "function",
        "scope": "static",
        "memberof": "module:utils/floating-ui",
        "params": [
          {
            "type": {
              "names": [
                "Object"
              ]
            },
            "description": "Elements (trigger, content, and optionally contentArrow)",
            "name": "elements"
          },
          {
            "type": {
              "names": [
                "*"
              ]
            },
            "description": "Configuration options for floatingUi",
            "name": "options"
          }
        ],
        "returns": [
          {
            "type": {
              "names": [
                "function"
              ]
            },
            "description": "floating cleanup function call when no longer needed"
          }
        ],
        "meta": {
          "lineno": 33,
          "filename": "floating-ui.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 282
      }
    ],
    "module:utils/font-awesome": [
      {
        "id": "module:utils/font-awesome.configureIcons",
        "longname": "module:utils/font-awesome.configureIcons",
        "name": "configureIcons",
        "kind": "function",
        "scope": "static",
        "description": "Sets icon settings to Font Awesome icons",
        "memberof": "module:utils/font-awesome",
        "meta": {
          "lineno": 11,
          "filename": "font-awesome.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 284
      }
    ],
    "module:utils/id": [
      {
        "id": "module:utils/id.newId",
        "longname": "module:utils/id.newId",
        "name": "newId",
        "kind": "function",
        "scope": "static",
        "description": "Create new uid",
        "memberof": "module:utils/id",
        "meta": {
          "lineno": 10,
          "filename": "id.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 286
      },
      {
        "id": "module:utils/id.ensureId",
        "longname": "module:utils/id.ensureId",
        "name": "ensureId",
        "kind": "function",
        "scope": "static",
        "description": "Sets an ID if element doesn't have one vie newUid",
        "memberof": "module:utils/id",
        "params": [
          {
            "type": {
              "names": [
                "Node"
              ]
            },
            "description": "Element to make sure has an id",
            "name": "element"
          }
        ],
        "meta": {
          "lineno": 18,
          "filename": "id.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 287
      }
    ],
    "module:utils/iframe": [
      {
        "id": "module:utils/iframe.getSoleIframeLayout",
        "longname": "module:utils/iframe.getSoleIframeLayout",
        "name": "getSoleIframeLayout",
        "kind": "function",
        "scope": "static",
        "description": "Checks if an element's sole content is an iframe, and determines its layout type.\nUseful for determining if layout fixes should be applied to containers.",
        "memberof": "module:utils/iframe",
        "params": [
          {
            "type": {
              "names": [
                "HTMLElement"
              ]
            },
            "description": "The container to check",
            "name": "container"
          }
        ],
        "returns": [
          {
            "type": {
              "names": [
                "Object",
                "null"
              ]
            },
            "description": "Returns an object with iframe details, or null if not a sole iframe"
          }
        ],
        "meta": {
          "lineno": 15,
          "filename": "iframe.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 289
      }
    ],
    "module:utils/pause-youtube-video": [
      {
        "id": "module:utils/pause-youtube-video.pauseVideos",
        "longname": "module:utils/pause-youtube-video.pauseVideos",
        "name": "pauseVideos",
        "kind": "function",
        "scope": "static",
        "description": "Somewhat hacky way to pause the video\n- https://www.digitalredpanther.com/blog/play-pause-stop-youtube-embed\n- Actual JS API documentation (Didn't follow this for now) (https://developers.google.com/youtube/iframe_api_reference)",
        "memberof": "module:utils/pause-youtube-video",
        "params": [
          {
            "type": {
              "names": [
                "Element",
                "Node"
              ]
            },
            "description": "The DOM element to search for and pause videos within",
            "name": "context"
          },
          {
            "type": {
              "names": [
                "String"
              ]
            },
            "description": "The YouTube API command. Defaults to 'stopVideo' to preserve legacy behavior.",
            "name": "command"
          }
        ],
        "meta": {
          "lineno": 20,
          "filename": "pause-youtube-video.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 292
      },
      {
        "id": "module:utils/pause-youtube-video.prepVideos",
        "longname": "module:utils/pause-youtube-video.prepVideos",
        "name": "prepVideos",
        "kind": "function",
        "scope": "static",
        "description": "Prep videos to be paused\n- Add query parameters for js API\n- Removes all other query parameters from iframe.src",
        "memberof": "module:utils/pause-youtube-video",
        "meta": {
          "lineno": 36,
          "filename": "pause-youtube-video.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/utils"
        },
        "order": 293
      }
    ],
    "module:ui/details-group.setupGroup": [
      {
        "id": "module:ui/details-group.setupGroup~queryChildren",
        "longname": "module:ui/details-group.setupGroup~queryChildren",
        "name": "queryChildren",
        "kind": "function",
        "scope": "inner",
        "description": "Queries all current children in element",
        "memberof": "module:ui/details-group.setupGroup",
        "params": [],
        "ignore": true,
        "meta": {
          "lineno": 65,
          "filename": "details-group.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 68
      },
      {
        "id": "module:ui/details-group.setupGroup~setupChildren",
        "longname": "module:ui/details-group.setupGroup~setupChildren",
        "name": "setupChildren",
        "kind": "function",
        "scope": "inner",
        "description": "Sets up any children not already setup in group",
        "memberof": "module:ui/details-group.setupGroup",
        "params": [],
        "meta": {
          "lineno": 72,
          "filename": "details-group.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 69
      },
      {
        "id": "module:ui/details-group.setupGroup~toggleHandler",
        "longname": "module:ui/details-group.setupGroup~toggleHandler",
        "name": "toggleHandler",
        "kind": "function",
        "scope": "inner",
        "description": "Toggle handler for child details element\n- For things like one open at a time",
        "memberof": "module:ui/details-group.setupGroup",
        "params": [],
        "ignore": true,
        "meta": {
          "lineno": 88,
          "filename": "details-group.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 70
      },
      {
        "id": "module:ui/details-group.setupGroup~destroy",
        "longname": "module:ui/details-group.setupGroup~destroy",
        "name": "destroy",
        "kind": "function",
        "scope": "inner",
        "description": "Function removes all handlers and init attributes",
        "memberof": "module:ui/details-group.setupGroup",
        "params": [],
        "meta": {
          "lineno": 103,
          "filename": "details-group.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 71
      }
    ],
    "module:ui/theme-toggle.setupToggle": [
      {
        "id": "module:ui/theme-toggle.setupToggle~toggleState",
        "longname": "module:ui/theme-toggle.setupToggle~toggleState",
        "name": "toggleState",
        "kind": "function",
        "scope": "inner",
        "description": "Instance function to get the next theme in cycle",
        "memberof": "module:ui/theme-toggle.setupToggle",
        "params": [],
        "meta": {
          "lineno": 156,
          "filename": "theme-toggle.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 232
      },
      {
        "id": "module:ui/theme-toggle.setupToggle~onToggleClick",
        "longname": "module:ui/theme-toggle.setupToggle~onToggleClick",
        "name": "onToggleClick",
        "kind": "function",
        "scope": "inner",
        "description": "Handler for click for both toggle and remote toggles",
        "memberof": "module:ui/theme-toggle.setupToggle",
        "params": [],
        "meta": {
          "lineno": 170,
          "filename": "theme-toggle.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 233
      },
      {
        "id": "module:ui/theme-toggle.setupToggle~attachRemotes",
        "longname": "module:ui/theme-toggle.setupToggle~attachRemotes",
        "name": "attachRemotes",
        "kind": "function",
        "scope": "inner",
        "description": "Utility to attach remote handlers\n- Used initially and when page is modified",
        "memberof": "module:ui/theme-toggle.setupToggle",
        "params": [],
        "meta": {
          "lineno": 178,
          "filename": "theme-toggle.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 234
      },
      {
        "id": "module:ui/theme-toggle.setupToggle~cleanupRemotes",
        "longname": "module:ui/theme-toggle.setupToggle~cleanupRemotes",
        "name": "cleanupRemotes",
        "kind": "function",
        "scope": "inner",
        "description": "This only cleans up remotes that are still in DOM\n- For ones that have been removed we don't store any references to them",
        "memberof": "module:ui/theme-toggle.setupToggle",
        "params": [],
        "meta": {
          "lineno": 191,
          "filename": "theme-toggle.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 235
      },
      {
        "id": "module:ui/theme-toggle.setupToggle~destroy",
        "longname": "module:ui/theme-toggle.setupToggle~destroy",
        "name": "destroy",
        "kind": "function",
        "scope": "inner",
        "description": "Function to cleanup listeners and remove init attributes",
        "memberof": "module:ui/theme-toggle.setupToggle",
        "params": [],
        "meta": {
          "lineno": 203,
          "filename": "theme-toggle.js",
          "path": "/Users/joescherben/Personal/Projects/ULU/frontend/lib/js/ui"
        },
        "order": 236
      }
    ]
  },
  "guides": {
    "advanced/creating-js-components": {
      "title": "Creating JS Components",
      "description": "Guide for advanced/creating-js-components",
      "content": "@ulu/frontend provides a standardized way to create UI components using the `ComponentInitializer` class. This utility handles the boilerplate of finding elements, parsing configuration, and managing the component lifecycle.\n\n## The Component Initializer\n\nThe `ComponentInitializer` is the bridge between your HTML (data attributes) and your JavaScript class.\n\n### 1. Setup the Initializer\n\nCreate an instance of `ComponentInitializer` for your component. You define a `type` (for logging) and a `baseAttribute` (the data attribute to scan for).\n\n```javascript\nimport { ComponentInitializer } from \"@ulu/frontend\";\n\nexport const initializer = new ComponentInitializer({ \n  type: \"my-component\", \n  baseAttribute: \"data-ulu-my-component\" \n});\n```\n\n### 2. Create the Init Function\n\nExport an `init()` function that calls `initializer.init()`. This function tells the library how to instantiate your component for each found element.\n\n```javascript\nimport { MyComponent } from \"./my-component-class.js\";\n\nexport function init() {\n  initializer.init({\n    // Automatically parse the element's dataset as JSON options\n    withData: true,\n    // Re-run this setup when the page content changes (e.g., AJAX)\n    coreEvents: [\"pageModified\"],\n    // The setup callback runs for each new element found\n    setup({ element, data, initialize }) {\n      // Instantiate your class\n      new MyComponent(element, data);\n      \n      // Mark the element as initialized (prevents double-init)\n      initialize();\n    }\n  });\n}\n```\n\n## Parsing Attributes\n\nThe initializer provides helpers to generate attribute selectors based on your `baseAttribute`.\n\n-   `initializer.getAttribute(key)`: Returns `data-ulu-my-component-key`.\n-   `initializer.attributeSelector(key)`: Returns `[data-ulu-my-component-key]`.\n\n**Example:**\n\n```javascript\n// In your component class\nconst contentSelector = initializer.attributeSelector(\"content\"); // [data-ulu-my-component-content]\nconst contentElement = this.element.querySelector(contentSelector);\n```\n\n## Complete Example\n\n**HTML:**\n```html\n<div data-ulu-counter='{ \"start\": 10 }'>\n  <span data-ulu-counter-display></span>\n  <button data-ulu-counter-btn>Increment</button>\n</div>\n```\n\n**JavaScript:**\n```javascript\nimport { ComponentInitializer } from \"@ulu/frontend\";\n\nconst initializer = new ComponentInitializer({ \n  type: \"counter\", \n  baseAttribute: \"data-ulu-counter\" \n});\n\nexport class Counter {\n  constructor(element, options) {\n    this.element = element;\n    this.count = options.start || 0;\n    this.display = element.querySelector(initializer.attributeSelector(\"display\"));\n    this.btn = element.querySelector(initializer.attributeSelector(\"btn\"));\n    \n    this.update();\n    this.btn.addEventListener(\"click\", () => this.increment());\n  }\n\n  increment() {\n    this.count++;\n    this.update();\n  }\n\n  update() {\n    this.display.textContent = this.count;\n  }\n}\n\nexport function init() {\n  initializer.init({\n    withData: true,\n    coreEvents: [\"pageModified\"],\n    setup({ element, data, initialize }) {\n      new Counter(element, data);\n      initialize();\n    }\n  });\n}\n```"
    },
    "advanced/creating-scss-modules": {
      "title": "Creating SCSS Modules",
      "description": "Guide for advanced/creating-scss-modules",
      "content": "To maintain consistency and configurability, new SCSS modules should follow the library's established patterns. This guide outlines the standard structure for a module, including how to define configuration, handle fallbacks, and output styles.\n\n## Basic Module Structure\n\nEvery module should consist of three main parts:\n1.  **Configuration:** A default `$config` map.\n2.  **Accessors:** `get` and `set` mixins/functions to manage configuration.\n3.  **Output:** A `styles` mixin that generates the CSS.\n\n### Template\n\n```scss\n////\n/// @group component-name\n////\n\n@use \"sass:map\";\n@use \"../selector\";\n@use \"../utils\";\n\n/// Module Settings\n/// @type Map\n$config: (\n  \"padding\": 1rem,\n  \"background-color\": white,\n) !default;\n\n/// Change module configuration\n/// @param {Map} $changes Map of changes\n/// @example scss\n///   @include ulu.component-name-set(( \"padding\" : 2rem ));\n@mixin set($changes) {\n  $config: map.merge($config, $changes) !global;\n}\n\n/// Get a config option\n/// @param {String} $name Name of property\n/// @example scss\n///   $padding: ulu.component-name-get(\"padding\");\n@function get($name) {\n  @return utils.require-map-get($config, $name, \"component-name [config]\");\n}\n\n/// Prints component styles\n/// @example scss\n///  @include ulu.component-name-styles();\n@mixin styles {\n  $prefix: selector.class(\"component-name\");\n\n  #{ $prefix } {\n    padding: get(\"padding\");\n    background-color: get(\"background-color\");\n  }\n}\n```\n\n## Advanced Configuration: Fallbacks\n\nSometimes, a component's default value should inherit from another part of the system (e.g., a core setting like `element.box-shadow`) *unless* the user specifically overrides it.\n\nTo achieve this, we use a private `$-fallbacks` map and `utils.function-fallback`.\n\n### Implementing Fallbacks\n\n1.  Define the `$-fallbacks` map linking properties to their source functions.\n2.  Set the default value in `$config` to `true`.\n3.  Update the `get()` function to check for fallbacks.\n\n```scss\n@use \"sass:meta\";\n@use \"../element\";\n\n// ... imports\n\n// Define fallbacks\n$-fallbacks: (\n  // If 'box-shadow' is true, get the value from element.get(\"box-shadow\")\n  \"box-shadow\" : (\n    \"function\" : meta.get-function(\"get\", false, \"element\"),\n    \"property\" : \"box-shadow\"\n  ),\n  // Example with arguments (e.g. element.get-rule-style(\"light\"))\n  \"border-bottom\" : (\n    \"function\" : meta.get-function(\"get-rule-style\", false, \"element\"),\n    \"arguments\" : (\"light\",)\n  )\n);\n\n$config: (\n  \"padding\" : (1em, 2em),\n  // set to true to trigger fallback\n  \"box-shadow\" : true, \n  \"border-bottom\" : true,\n) !default;\n\n// ... set mixin ...\n\n@function get($name) {\n  $value: utils.require-map-get($config, $name, \"component-name [config]\");\n  // Use function-fallback to resolve the value\n  @return utils.function-fallback($name, $value, $-fallbacks);\n}\n```\n\n## Best Practices\n\n-   **Namespacing:** Always use `selector.class(\"component-name\")` to generate class names. This respects the global prefix setting.\n-   **Validation:** Use `utils.require-map-get` in your getter to throw helpful errors if a config key is missing (e.g., due to a typo).\n-   **Documentation:** Use SassDoc comments (`///`) to document properties and mixins. This helps other developers understand available options."
    },
    "advanced/developing-libraries": {
      "title": "Developing Dependent Libraries",
      "description": "Guide for advanced/developing-libraries",
      "content": "If you are creating a library or another package that uses `@ulu/frontend` as a dependency (e.g., a Vue component library based on Ulu), it is **critical** to list `@ulu/frontend` as a `peerDependency` in your `package.json`.\n\n```json\n{\n  \"name\": \"my-ulu-based-library\",\n  \"version\": \"1.0.0\",\n  \"peerDependencies\": {\n    \"@ulu/frontend\": \"^1.0.0\"\n  }\n}\n```\n\n## Why is this important?\n\n@ulu/frontend includes singleton modules (like `settings`) that manage global state. If multiple copies of the library are loaded into a single project, these singletons will not be shared, leading to unexpected behavior and bugs. By using `peerDependencies`, you ensure that the consuming project provides a single, shared instance of `@ulu/frontend`."
    },
    "advanced": {
      "title": "Advanced",
      "description": "Guide for advanced",
      "content": "Advanced guides for extending the library, developing custom components, and supporting legacy environments.\n\n-   [Creating SCSS Modules](/guide/advanced/creating-scss-modules/): Standards for building new configurable SCSS modules.\n-   [Creating JS Components](/guide/advanced/creating-js-components/): How to use the `ComponentInitializer` to build standard-compliant JS widgets.\n-   [Developing Dependent Libraries](/guide/advanced/developing-libraries/): Best practices for packages that depend on `@ulu/frontend`.\n-   [Legacy & UMD Usage](/guide/advanced/legacy-umd/): Using the UMD bundle for legacy environments."
    },
    "advanced/legacy-umd": {
      "title": "Legacy & UMD Usage",
      "description": "Guide for advanced/legacy-umd",
      "content": "While we recommend using the ESM bundle with a modern build tool, @ulu/frontend also provides a Universal Module Definition (UMD) bundle for legacy environments or direct browser usage.\n\n## Available Bundles\n\nThe package provides two main entry points in the `dist/` directory:\n\n1.  **`ulu-frontend.es.js` (ESM):**\n    -   **Format:** ES Module.\n    -   **Use Case:** Modern bundlers (Vite, Webpack, Rollup).\n    -   **Benefit:** Supports tree-shaking, ensuring only the code you use ends up in your final bundle.\n2.  **`ulu-frontend.umd.js` (UMD):**\n    -   **Format:** Universal Module Definition.\n    -   **Use Case:** Direct browser usage via `<script>` tag, legacy environments, or online editors like CodePen.\n    -   **Global Variable:** Exposes the library as `ULU`.\n## Using the UMD Bundle\n\nIf you are not using a build step, you can include the UMD bundle directly in your HTML:\n\n```html\n<!-- Load the CSS -->\n<link rel=\"stylesheet\" href=\"node_modules/@ulu/frontend/dist/style.css\">\n\n<!-- Load the JS -->\n<script src=\"node_modules/@ulu/frontend/dist/ulu-frontend.umd.js\"></script>\n\n<script>\n  // The library is available as the global 'ULU' object\n  ULU.dialogInit();\n</script>\n```"
    },
    "installation": {
      "title": "Installation & Setup",
      "description": "Guide for installation",
      "content": "@ulu/frontend is distributed as an NPM package and can be integrated into your project using modern build tools.\n\n## NPM Installation\n\nInstall the package via npm:\n\n```bash\nnpm install @ulu/frontend\n```\n\n## Usage\n\nOnce installed, you can import components and utilities directly from the package in your JavaScript files:\n\n```javascript\nimport { dialogInit, updateSettings } from \"@ulu/frontend\";\n\n// Initialize dialogs\ndialogInit();\n```\n\nFor styling, you can import the pre-built CSS file or, for more control, import the SCSS modules.\n\n### Basic CSS Import\n\nIf you don't need to customize the theme, you can import the compiled CSS directly:\n\n```javascript\nimport \"@ulu/frontend/dist/style.css\";\n```\n\n### SCSS Import\n\nFor advanced customization (theming), you will want to import the SCSS modules. This is covered in detail in the [SCSS System & Theming](/guide/theming/) guide.\n\n## Next Steps\n\n-   Learn about the [JavaScript System](/guide/javascript-system/) and how initialization works.\n-   Dive into [Theming](/guide/theming/) to customize colors, typography, and components."
    },
    "javascript-system": {
      "title": "JavaScript System",
      "description": "Guide for javascript-system",
      "content": "The JavaScript layer of @ulu/frontend is designed to be lightweight, modular, and—crucially—**styling-agnostic**. It separates behavior from presentation, allowing you to attach rich interactive functionality to elements regardless of how they are styled.\n\n## Core Concepts\n\n### 1. Data Attribute Initialization\n\nInstead of targeting specific CSS classes (like `.modal` or `.accordion`), the JavaScript modules identify components using specific `data-ulu-*` attributes. This decoupling means your HTML structure defines *what* an element is, while your CSS defines *how it looks*.\n\n**Example:**\nA dialog is identified by `data-ulu-dialog`, not by a class.\n\n```html\n<dialog id=\"my-dialog\" data-ulu-dialog>\n  ...\n</dialog>\n```\n\n### 2. The `init()` Workflow\n\nMost modules export an `init()` function. When called, this function scans the document for elements with the matching data attribute and initializes them.\n\n**Usage:**\n\n```javascript\nimport { dialogInit, tabsInit } from \"@ulu/frontend\";\n\n// Initialize specific modules\ndialogInit();\ntabsInit();\n```\n\nThe initialization functions are idempotent and smart:\n-   They mark processed elements to prevent double-initialization.\n-   They automatically listen for the core `pageModified` event to handle dynamic content updates (like AJAX injections).\n\n### 3. Manual Instantiation\n\nFor more control, or when creating components dynamically in JavaScript, you can import the component class directly.\n\n**Example: Creating a Tooltip manually**\n\n```javascript\nimport { Tooltip } from \"@ulu/frontend\";\n\nconst trigger = document.querySelector(\"#my-btn\");\nconst content = \"Hello World\";\n\nnew Tooltip(\n  { trigger }, \n  { content, placement: \"top\" }\n);\n```\n\n### 4. Global Settings\n\nThe library shares a global configuration object. You can adjust these settings to change defaults across all components, such as icon classes or prefixes.\n\n**Example: Configuring Icons**\n\n```javascript\nimport { updateSettings } from \"@ulu/frontend\";\n\n// Change the default class used for close icons\nupdateSettings({\n  iconClassClose: \"fa-solid fa-times\", // e.g., for FontAwesome 6\n  iconClassNext: \"icon-arrow-right\"\n});\n```\n\n### 5. Core Events system\n\n@ulu/frontend uses a lightweight custom event system to coordinate between components and the application lifecycle.\n\n-   **`pageModified`**: Dispatch this event on `document` (or a specific container) whenever you add new content to the DOM. The library listens for this to automatically initialize new components within the new content.\n    ```javascript\n    import { dispatchCoreEvent } from \"@ulu/frontend\";\n    \n    // ... after loading HTML via fetch ...\n    container.innerHTML = newContent;\n    dispatchCoreEvent(\"pageModified\", container);\n    ```\n-   **`pageResized`**: A debounced resize event used internally by components that need to recalculate layout (like the `TabManager` for equal heights).\n\n## Component State\n\nWhile the JavaScript doesn't enforce styles, it *does* manage state classes. When a component changes state (e.g., an accordion opens), the JS adds standard classes like `.is-active` or attributes like `aria-expanded`. Your SCSS can then target these state classes to apply the appropriate visual changes."
    },
    "recommended-setup": {
      "title": "Recommended Project Setup",
      "description": "Guide for recommended-setup",
      "content": "While @ulu/frontend works out-of-the-box, we recommend a specific setup for projects that require deep customization. This \"opinionated\" approach simplifies imports and makes managing configuration much easier.\n\n## SCSS Build Configuration\n\nThe library's SCSS system relies heavily on configuration modules. To make importing these modules clean and absolute (e.g., `@use \"config\"` instead of `@use \"../../../config\"`), we recommend configuring your bundler's SCSS preprocessor.\n\n### Why Configure `loadPaths`?\n\nBy adding your project's SCSS source directory to the `loadPaths` (or `includePaths`), you can create \"hub\" files that act as central configuration points. This is essential for the [Theming workflow](/guide/theming/).\n\n### Vite Example\n\nIn your `vite.config.js`:\n\n```javascript\nimport path from \"path\";\nimport { defineConfig } from \"vite\";\n\nexport default defineConfig({\n  css: {\n    preprocessorOptions: {\n      scss: {\n        // Add your local SCSS directory to load paths\n        // This allows you to use absolute imports like @use \"config\"\n        loadPaths: [\n          path.resolve(__dirname, \"src/scss/\"), \n        ],\n        // Use modern compiler API for better performance\n        api: \"modern-compiler\", \n        quietDeps: true,\n      },\n    },\n  },\n});\n```\n\nThis simple configuration change is the key to unlocking the full power of the \"Configuration Module\" pattern described in the [SCSS System & Theming](./theming/) guide."
    },
    "theming-light-dark": {
      "title": "Theming (Light/Dark Mode)",
      "description": "Guide for theming-light-dark",
      "content": "The `@ulu/frontend` library includes a dedicated `themes` module designed to orchestrate custom property variations, most commonly used for implementing light and dark modes, or creating multiple distinct brand themes within a single project.\n\nUnlike other configuration modules that output structural styles, the `themes` module specifically manages the generation of CSS Custom Properties (`var(--...)`) scoped to `:root` or specific `.theme-[name]` classes.\n\n## How it Works\n\nThe system takes a single configuration map where the keys are the CSS custom property names, and the values are nested maps defining the variations. We refer to these entries as **Design Tokens**.\n\nA **Design Token** is a semantic name (like `color-background` or `spacing-layout`) that stores a raw value (like `#ffffff` or `16px`). In this system, a single token can hold multiple values, each corresponding to a different theme context (e.g., \"light\", \"dark\", \"high-contrast\").\n\n### 1. Define the Variations\n\nIn your project's configuration (e.g., `src/scss/config/_themes.scss`), define the map of tokens and set it using `ulu.themes-set-tokens()`. \n\nThe system uses a property-centric structure. This prevents you from having to redefine values that don't change between themes.\n\n```scss\n@use \"@ulu/frontend/scss\" as ulu;\n\n$theme-tokens: (\n  // Example: A value that changes between light and dark\n  \"color-background\" : (\n    \"light\" : white,\n    \"dark\" : black\n  ),\n  \"color-type\" : (\n    \"light\" : #333,\n    \"dark\": #eee\n  ),\n  // Example: A value that remains the same across all themes\n  \"color-error\" : (\n    \"light\" : red,\n    \"dark\": red\n  )\n);\n\n@include ulu.themes-set-tokens($theme-tokens);\n```\n\n### 2. Configure the Modules (Optional)\n\nBy default, the core `themes` module assumes your default theme is named `\"light\"`. You can change this, map theme names to valid CSS `color-scheme` properties, and even map themes to their \"inverse\" counterparts for contextual flipping.\n\n```scss\n// In config/_themes.scss\n@include ulu.themes-set((\n  \"default\": \"light\", // The default theme output to :root\n  \"color-schemes\": (\n    // Map custom theme names to native color-schemes if needed\n    // \"light\" and \"dark\" are handled automatically.\n    \"high-contrast\": \"dark\" \n  ),\n  \"inverses\": (\n    // Allows use of the .theme-inverse utility\n    \"light\": \"dark\",\n    \"dark\": \"light\"\n  )\n));\n```\n\nYou can also configure the output of the base themes module:\n\n```scss\n// In config/_base.scss\n@include ulu.base-themes-set((\n  \"output-inverse\": true, // Whether to output the .theme-inverse utility\n  \"fake-dark-color\": white, // The color reset for the .theme-dark-fake utility\n  \"fake-dark-filter\": invert(1) hue-rotate(180deg) saturate(0.7) // The filter used\n));\n```\n\n### 3. Output the CSS\n\nTo generate the CSS variables, ensure the `base` stylesheets are being output in your main `styles.scss` file. (If you are using `@use \"@ulu/frontend/scss/stylesheets/full\";`, this happens automatically).\n\n```scss\n// src/scss/styles.scss\n@use \"ulu\";\n@include ulu.base-themes-styles();\n```\n\n**What this generates:**\n1.  **`:root` / Default Theme:** The values from your default theme (e.g., \"light\") are output directly to `:root`.\n2.  **Theme Classes:** For every unique theme key found in your map (e.g., \"dark\"), a modifier class is generated (e.g., `.theme-dark`).\n\n```css\n/* Conceptual Output */\n:root, .theme-light {\n  color-scheme: light;\n  --color-background: white;\n  --color-type: #333;\n  --color-error: red;\n}\n\n.theme-dark {\n  color-scheme: dark;\n  --color-background: black;\n  --color-type: #eee;\n  --color-error: red;\n}\n```\n\n### 4. Consume the Variables\n\nOnce your custom properties are generated, you can consume them in the rest of your system using the `cssvar` module, or by configuring the `color` module to use them.\n\n```scss\n// src/scss/config/_color.scss\n@use \"@ulu/frontend/scss\" as ulu;\n\n// Tell the color module to map names to your newly generated CSS variables\n@include ulu.color-set((\n  \"background\" : ulu.cssvar-use(\"color-background\"),\n  \"type\" : ulu.cssvar-use(\"color-type\"),\n  \"error\" : ulu.cssvar-use(\"color-error\"),\n));\n```\n\n## Contextual Inversion\n\nIf you have mapped the `inverses` configuration (see step 2), the base output will automatically include a `.theme-inverse` utility class.\n\nWhen applied to an element, this class flips all custom properties to the opposite of its current context without needing to explicitly hardcode `.theme-dark` or `.theme-light`.\n\n```html\n<div class=\"theme-light\">\n  <!-- This element will be dark -->\n  <div class=\"theme-inverse\">...</div>\n</div>\n```\n\n## The Fake Dark Utility\n\nSometimes you encounter elements that need to look \"dark\" but cannot be styled with CSS variables (e.g., a `<canvas>` element drawn by a third-party script, or an iframe). \n\nThe `themes` module automatically outputs a `.theme-dark-fake` utility class. This class uses CSS `filter` to invert the element's colors while maintaining the original hues.\n\n```html\n<div class=\"theme-dark\">\n  <!-- This image/canvas will have its colors inverted to match the dark theme context -->\n  <img src=\"chart.png\" class=\"theme-dark-fake\" alt=\"Data Chart\">\n</div>\n```\n\n*Note: The `.theme-dark-fake` class uses a custom property switch and will only activate when placed inside an active dark color-scheme context.*"
    },
    "theming": {
      "title": "SCSS System & Theming",
      "description": "Guide for theming",
      "content": "The SCSS architecture of @ulu/frontend relies on a **\"Configuration Module\"** pattern. Instead of overriding variables after the fact, you configure the library's modules *before* they generate any CSS. This results in a highly customized, efficient stylesheet.\n\n## Consumption Methods\n\nThere are three primary ways to consume the SCSS library, depending on your needs:\n\n### 1. Pre-built Stylesheets (Quick Start)\nThese modules are convenience wrappers that output specific sections of the library. You can use them to quickly import the library's styles without manually calling the output mixins.\n\n-   `@use \"@ulu/frontend/scss/stylesheets/full\";` - Imports everything (Base, Components, Helpers).\n-   `@use \"@ulu/frontend/scss/stylesheets/base-styles\";` - Imports base styles (Normalize, Typography, Elements).\n-   `@use \"@ulu/frontend/scss/stylesheets/component-styles\";` - Imports component styles.\n-   `@use \"@ulu/frontend/scss/stylesheets/helper-styles\";` - Imports helper classes.\n\n**Usage:** These modules are fully compatible with configuration. You can configure the library (e.g., in your `_ulu.scss` hub file) and then `@use` these stylesheets to output the CSS with your settings applied.\n\n### 2. Direct Module Usage\nYou can import individual modules directly if you only need specific pieces.\n\n```scss\n@use \"@ulu/frontend/scss/element\";\n@use \"@ulu/frontend/scss/components/button\";\n\n.my-class {\n  // Use the module's mixin directly\n  @include button.styles(); \n  border-bottom: element.get-rule-style(\"light\");\n}\n```\n\n**Pros:** Granular control.\n**Cons:** Tedious to manage imports; requires configuring each module individually if you want to change defaults.\n\n### 3. The \"Hub\" Pattern (Recommended)\nThis is the standard way to build a theme with @ulu/frontend. The library's main entry point (`@ulu/frontend/scss`) acts as a \"hub\" that forwards all modules with a `ulu.` prefix.\n\nYou can import this directly, or (as we recommend) create a local proxy file to simplify your imports.\n\n## Understanding Namespacing\n\nWhen using the **Hub Pattern** or importing the main library entry point (`@ulu/frontend/scss`), you will notice that module names are prefixed.\n\n-   **Source:** Inside the library, the `element` module has a function `get-rule-style()`.\n-   **Usage:** In your project, you access this via `ulu.element-get-rule-style()`.\n\n**Why?**\nThe main library entry point uses Sass `@forward` rules to combine all modules into one namespace while preventing naming collisions. It prefixes every member with its module name.\n\n```scss\n// In the library's index.scss\n@forward \"element\" as element-*;\n@forward \"color\" as color-*;\n```\n\nThis means `color.get(\"primary\")` becomes `ulu.color-get(\"primary\")`. This flat namespace makes it easy to access any tool from the entire system with a single import.\n\n## Recommended Project Structure\n\nTo fully utilize the Hub Pattern while keeping your configuration organized, we recommend creating a local \"proxy\" hub. This setup allows you to import your configured library anywhere in your project using a simple `@use \"ulu\"`.\n\n> **Note:** This structure works best when you have configured your SCSS load paths. See [Recommended Project Setup](/guide/recommended-setup/) for build configuration details.\n\n```text\nsrc/scss/\n├── _ulu.scss          # Your Local Hub: Imports config, forwards library\n├── styles.scss        # Main entry point\n├── config/            # Your custom configuration modules\n│   ├── _index.scss    # Imports all config partials\n│   ├── _color.scss    # ulu.color-set(...)\n│   └── ...\n└── ...\n```\n\n### 1. The Local Hub File (`_ulu.scss`)\n\nCreate a file named `_ulu.scss` in your SCSS root. This file serves two purposes:\n1.  **Loads Configuration:** It ensures your custom settings (`config/`) are loaded *before* the library is used elsewhere.\n2.  **Exposes the Library:** It forwards the library so any file importing `\"ulu\"` gets access to all mixins and functions.\n\n```scss\n// src/scss/_ulu.scss\n\n// 1. Forward the library so it is available to importers\n@forward \"@ulu/frontend/scss\"; \n\n// 2. Load your local configuration\n@use \"config\"; \n```\n\n### 2. Configuration Partials (e.g., `config/_color.scss`)\n\nIn your config files, you import the library and apply your settings. Because we are inside the configuration phase (which `_ulu.scss` uses), we import the library directly here.\n\n```scss\n// src/scss/config/_color.scss\n@use \"@ulu/frontend/scss\" as ulu;\n\n// Set the color palette\n@include ulu.color-set((\n  \"primary\": #007bff,\n  \"secondary\": #6c757d,\n));\n```\n\n### 3. The Main Stylesheet (`styles.scss`)\n\nFinally, your main stylesheet imports your local hub (`ulu`) and outputs the styles using the pre-built stylesheets (or manual mixins).\n\n```scss\n// src/scss/styles.scss\n@use \"ulu\"; // Imports your local src/scss/_ulu.scss\n\n// Output Styles using the pre-built helpers\n// These will use the configuration loaded by \"ulu\"\n@use \"@ulu/frontend/scss/stylesheets/full\"; \n```\n\n## Core Modules\n\nThree modules form the foundation of the design system. Configuring these first ensures consistency across all components.\n\n### 1. Color (`ulu.color`)\nManages your project's color palette.\n-   **Palette:** Define colors like `\"primary\"`, `\"secondary\"`, or `\"brand-blue\"`.\n-   **Usage:** Other modules reference these colors by name (e.g., `ulu.button-set(( \"background-color\": \"brand-blue\" ))`).\n\n### 2. Typography (`ulu.typography`)\nManages fonts, sizes, and scale.\n-   **Sizes:** Define a scale (e.g., \"small\", \"base\", \"large\", \"h1\", \"h2\"). Each size can include font-size, line-height, and responsive breakpoints.\n-   **Families:** Set font stacks for sans, serif, and monospace.\n\n### 3. Breakpoints (`ulu.breakpoint`)\nManages responsive breakpoints.\n-   **Sizes:** Define your grid breakpoints (e.g., \"small\", \"medium\", \"large\").\n-   **Usage:** Used by layout utilities and component media queries.\n\n## Component Configuration\n\nEvery component (Accordion, Card, Modal, etc.) has its own configuration mixin. You can change padding, borders, colors, and layout options globally for that component.\n\n**Example: Customizing the Button**\n\n```scss\n// src/scss/config/_button.scss\n@use \"@ulu/frontend/scss\" as ulu;\n\n@include ulu.button-set((\n  \"border-radius\": 4px,\n  \"padding\": (0.5em 1.5em),\n  \"font-weight\": \"bold\",\n  \"text-transform\": \"uppercase\"\n));\n```"
    },
    "using-components": {
      "title": "Workflow: Using Components",
      "description": "Guide for using-components",
      "content": "This guide walks through the end-to-step process of adding a component to your project using the **Dialog** component as an example.\n\n## Step 1: HTML Structure\n\nFirst, create the markup. Remember, @ulu/frontend uses **data attributes** to define behavior.\n\nFor a Dialog, we use:\n-   `data-ulu-dialog`: The container (must be a `<dialog>` element).\n-   `data-ulu-dialog-close`: A button inside the dialog that triggers closing.\n-   **Trigger:** A separate button with `data-ulu-dialog-trigger=\"ID_OF_DIALOG\"`.\n\n```html\n<!-- The Trigger -->\n<button type=\"button\" class=\"button\" data-ulu-dialog-trigger=\"my-dialog\">\n  Open Dialog\n</button>\n\n<!-- The Dialog -->\n<dialog id=\"my-dialog\" class=\"modal\" data-ulu-dialog>\n  <div class=\"modal__header\">\n    <h2 class=\"modal__title\">Dialog Title</h2>\n    <button type=\"button\" class=\"modal__close button--icon\" aria-label=\"Close\" data-ulu-dialog-close>\n      <span class=\"css-icon css-icon--close\"></span>\n    </button>\n  </div>\n  <div class=\"modal__body\">\n    <p>This is the content of the dialog.</p>\n  </div>\n  <div class=\"modal__footer\">\n    <button type=\"button\" class=\"button\" data-ulu-dialog-close>Close</button>\n  </div>\n</dialog>\n```\n\n*Note: The JS automatically handles accessibility (aria-modal, focus trapping via native dialog behavior) and click-outside-to-close logic.*\n\n## Step 2: SCSS Configuration & Output\n\nEnsure the component's styles are configured and output in your SCSS. In the library, the **Dialog** behavior is typically paired with the **Modal** component styles.\n\n**1. Configure (Optional):**\nIn your config file (e.g., `src/scss/config/_modal.scss`):\n\n```scss\n@use \"@ulu/frontend/scss\" as ulu;\n\n@include ulu.component-modal-set((\n  \"background-color\": \"white\",\n  \"border-radius\": \"border-radius-large\", // Uses element config\n  \"width\": 40rem\n));\n```\n\n**2. Output:**\nEnsure the component styles are included in your main stylesheet.\n\n```scss\n// src/scss/styles.scss\n@use \"ulu\";\n\n@include ulu.component-styles(); \n// Or specifically: @include ulu.component-modal-styles();\n```\n\n## Step 3: JavaScript Initialization\n\nFinally, import and initialize the component in your JavaScript entry point.\n\n```javascript\n// src/main.js\nimport { dialogInit } from \"@ulu/frontend\";\n\n// Initialize all dialogs and triggers on the page\ndialogInit();\n```\n\n## Result\n\n1.  **Styles:** The SCSS mixin generates the necessary `.modal` classes.\n2.  **Behavior:** The `dialogInit()` function finds elements with `data-ulu-dialog` and `data-ulu-dialog-trigger`.\n3.  **Interaction:** \n    -   Clicking the trigger opens the dialog (using `showModal()`).\n    -   Clicking the backdrop or close buttons closes it.\n    -   The library handles additional features like pausing background videos on close."
    }
  }
}
